静默测试框架

本文档的目的是提供管理公司网络广播平台的技术团队,说明如何使用 Microsoft eCDN 静默测试工具来审核其公司网络 () ,以便为实际事件做准备。

Microsoft eCDN 静默测试框架允许在多个设备上轻松运行模拟,以便模拟和检查给定网络在视频事件负载下的行为方式。

静默测试是在最终用户设备上 (静音) 后台运行的真实视频会话。 用户可在不知道测试正在运行的情况下继续在计算机上工作,但可能会与视频带宽相关的网络连接速度变慢。

注意

无提示测试模拟事件内容托管在 *.ecdn.teams.microsoft.com 域中。 因此,静默测试不应用作市政厅或任何其他直播活动产品的整体测试。

该框架由三个main组件组成:

  • 运行器设备
  • 管理仪表板
  • 分析

以下部分逐一介绍这些组件。

运行器设备

连接到框架的每个设备都被视为“运行器”。 每个运行器模拟单个查看器,并与Microsoft eCDN 后端通信,以获取应执行哪个测试的说明。 大多数情况下,不会执行测试,在这种情况下,运行器将等待空闲,直到测试开始。 Microsoft eCDN 利用最终用户计算机上通常安装的现有软件在后台启动运行器,而不是在每台计算机上部署指定的代理应用程序来充当运行器。

由于运行器本质上是一个网页,因此可以在任何浏览器或类似浏览器的环境中打开它。 有两种方法可以实例化运行器。

重要

Microsoft Edge 或 Google Chrome 必须安装在最终用户的计算机上。 此外,设备必须打开并连接到 Internet 才能参与无提示测试。

直接运行器

使用以下 URL 手动打开运行器页面,注意在浏览器中将占位符 TENANT_ID_HERE 替换为租户的 ID,被视为“直接运行器”。

https://st-sdk.ecdn.teams.microsoft.com/?customerId=TENANT_ID_HERE&adapterId=Direct

警告

尽管 静默运行器 使用必要的参数来实例,以便向Microsoft eCDN 服务公开计算机的 IP 地址,但 直接运行程序 使用计算机的全局设置。 因此,如果尚未 禁用 mDNS IP 模糊处理,则直接运行器不太可能对等互连。

静默运行器

我们提供 PowerShell & Bash 脚本,这些脚本在后台启动带有运行器页的无外设Chromium浏览器,该页面被视为“无声运行器”。 然后,可以在一组用户上执行脚本,以将其连接到框架。

有关详细信息,请参阅 附录 B:使用无外设浏览器集成运行器

管理仪表板

管理仪表板允许计划、修改和取消测试,还显示连接的运行器数。 “main”窗口列出了挂起的测试、正在进行的测试和已结束的过去测试。 完成的测试会显示 24 小时,然后从列表中隐藏。

无提示测试管理仪表板 UI 的图像。

分析

计划测试时,它设置为“挂起”模式。 到达开始时间后,将激活测试,并向所有联机运行器发送激活信号。 然后,每个运行器都会启动目标页面, (静音) 视频开始在隐藏的窗口中播放。 Microsoft eCDN SDK 收集分析仪表板中各种图表和图形中显示的网络和 UX 指标。 在测试运行时报告分析,因此管理员甚至可以在测试结束之前检查状态。

并发

标题为“唯一查看器”的示例图。随时间推移显示两个序列的图形,分别显示两个序列、已启用对等互连和禁用对等互连的查看者。

并发图显示一段时间内的活动用户数。 用户必须正在播放视频才能被视为活动。

HTTP + P2P 速度

标题为“网络吞吐量”的示例图。随时间推移,条形图分别以深蓝色、橙色和点绿线显示三个序列、使用的 HTTP 数据、消耗的 P2P 数据和 P2P 配给百分比。

网络吞吐量图显示了 HTTP 和 P2P 中的网络消耗细分。

表示为 说明 Axis
深蓝色条 HTTP 带宽 左边
橙色条 P2P 带宽 左边
绿色虚线 P2P 占总数的比率(百分比)

例如,90% 的 P2P 比率意味着只有 10% 的流量通过 HTTP 下载,其余流量在用户之间对等互连。

如果 P2P 低于预期,则意味着用户并发性不够高,或者网络需要更多优化。 有关故障排除,请参阅 对等互连效率低的故障排除 文档。

用户体验

标题为“播放和重新缓冲区时间”的示例图。随时间推移,显示三个序列的图,分别以深绿色、红色和蓝色虚线显示三个序列、播放、重新缓冲区和重新缓冲区比率。

用户体验图显示播放时间与 (冻结视频) 时间的组合。

表示为 说明 Axis
绿色条形 聚合播放时间(以分钟为单位) 左边
红条 已花费的重新缓冲区时间(以分钟为单位) 左边
蓝色虚线 退出总时间的比率(百分比)

例如,2% 的退声率意味着视频在 98% 的时间内正确播放,而视频停滞的时间为 2%。

理想情况下,重新缓冲区应低于 1%。 重新缓冲区中的高数量或峰值可能表明网络拥塞、服务器过载或内容配置错误。

网络要求

静默测试框架使用以下域和端口:

主机名称 端口 协议 说明
*.ecdn.teams.microsoft.com 443 HTTPS 运行器页 & 资源
*.ecdn.teams.microsoft.com 443 WSS Microsoft eCDN 后端的 WebSocket 连接
任意 高端口 10,000 + SCTP 这是 WebRTC 对等连接所必需的。 只能限制为 LAN。 

安全性

无提示测试框架通过向运行器分配测试来运行。 虽然运行器是连接到 eCDN 后端Microsoft静态页面,但执行的测试是动态的,可以运行任何目标页。 因此,运行器在浏览器沙盒化并依赖于内置于新式浏览器中的安全机制的网页中运行。 无论集成 (排除自定义集成) ,目标页面始终使用 iframe 在安全、干净的上下文中执行。

网络权限还受浏览器的限制,仅限于常见的 Web API,包括 HTTP、WebSocket、WebRTC 等。

在等待执行测试时,运行器通过 WSS) 的安全 TLS 连接 (维护持久性 WebSocket 连接。

附录

附录 A:如何计划无提示测试

  1. 转到无提示测试仪表板

  2. 选择 + 符号

    静默测试器 UI

  3. 填写必填字段

    无提示测试选项 UI 的图像。

    • 名称 - 所选的任意名称。

    • 时间 & 日期 - 测试开始的特定时间。

    • 持续时间 - 测试的持续时间。 建议至少 20 分钟,以便进行适当的模拟。

    • 目标 URL - 在模拟事件期间播放视频的事件页的公开 URL。 可以使用我们的内置页面或创建自己的页面。

      • 内置Stream - Microsoft eCDN 包含一个已集成的内置页面,其中包含包含多个呈现形式和可自定义的流式处理协议的实时流。

      • 自定义Stream - 你可能只想提供自己的实时流,并使用 eCDN 的自动集成页面Microsoft。 流必须公开可用,并且必须包含 CORS 标头,以便运行器能够加载它。 测试开始时会自动播放流。

      • 自定义页面 - 你自己的自定义页面。 页面需要包含播放器和实时流,并与 Microsoft eCDN 集成。 由于测试期间没有用户交互,因此播放器必须自动开始播放视频。 某些浏览器会限制自动播放视频的功能。 因此,建议将音频静音,以缓解限制。 默认情况下,内置页面处于静音状态。

    • 设备筛选器 - 将测试限制为特定设备组。 在某些情况下,你可能希望在连接的设备的子集上运行测试。 例如,仅在美国的办公室或仅直接运行器设备上运行测试。

      • 国家/地区筛选器 - 仅包括来自特定国家/地区的设备 (GeoIP) 。

      • 集成筛选器 - 仅包括通过特定集成连接的设备。

      • 设备 ID 筛选器 - 仅针对特定设备 ID 运行测试。 此筛选器主要用于本地调试目的。

  4. 选择“ 计划 ”,然后创建测试。

  5. 达到无提示测试的开始时间时,将在分配的连接设备上执行测试。

附录 B:使用无外设浏览器集成运行器

Microsoft eCDN 提供无安装静默测试器脚本。

此脚本在指定持续时间内在特定页面上的计算机后台启动 chromium 浏览器,然后关闭后台浏览器进程。

此外,Microsoft eCDN 提供了一个脚本,用于在 Active Directory 中列出的远程计算机上运行静默测试器。

注意

重启计算机不会自动还原运行器,并且需要使用脚本再次启动浏览器。

Windows 环境的运行说明

  1. 下载 silent-tester-runner-windows.ps1 - 一个 PowerShell 脚本,如果 24 小时在后台) 找不到 Edge,则启动基于 Chromium 的浏览器 (Microsoft Edge 或 Google Chrome。

  2. 编辑 silent-tester-runner-windows.ps1

    • $TenantID - 将 替换为 TENANT_ID Microsoft租户 ID。

    • $TestID - 将 替换为 TEST_ID 唯一 ID 字符串。 此字符串用于创建日志文件,允许静默测试管理员唯一标识测试结果。

    重要

    每个测试必须具有唯一$TestID。 如果脚本检测到它以前使用与当前实例相同的$TestID运行,它将退出而不执行无提示测试。

    • (可选) $scenarioDuration - 将浏览器运行时间持续时间设置为所需的值(以秒为单位)。 在此持续时间内,你可以在目标计算机上运行无提示测试。 由于浏览器处于空闲状态,因此将此值增加到几天没有任何问题,以便更灵活地运行测试。 此过程在系统重新启动后不会继续执行。 默认为 86,400 秒 (24 小时) 。

    • (可选) $customChromePath - 如果Microsoft Edge 或 Google Chrome 未安装在默认路径 (C:\Program FilesC:\Program Files (x86)) 将此变量设置为浏览器的可执行文件路径。 例如: C:\Custom Path\Edge\msedge.exe

  3. 使用所选方法(例如以下选项之一)在目标计算机上执行脚本。

    • 使用 GPO

    • 使用 SCCM

    • 或手动从域控制器。 为方便起见,我们提供了一个调用脚本示例。

      1. 下载 remote-invocation.ps1 - 在 Active Directory 中的所有计算机上执行 silent-tester-runner-windows.ps1 的 PowerShell 脚本

      2. (可选) 编辑脚本以根据需要将 Active Directory 查询限制为特定计算机组。 有关高级筛选, Get-ADComputer 请参阅 cmdlet 文档

      注意

      确保 silent-tester-runner-windows.ps1 位于运行调用脚本的同一目录中。

      警告

      为了获得最佳结果,请在 用户上下文中执行运行器脚本。 不建议在 SYSTEM 帐户下执行运行器脚本。

  4. 转到无提示测试仪表板,确保目标计算机现在显示为联机运行器。

显示四个联机运行器的图像示例。

针对 Mac 环境的运行说明

  1. 下载 silent-tester-runner-mac.sh - 在后台启动 Google Chrome 24 小时的 Bash 脚本。

  2. 编辑 silent-tester-runner-mac.sh

    1. ecdnCustomerId - 将 替换为 CUSTOMER_ID Microsoft租户 ID。

    2. (可选) 方案Duration - 将浏览器运行时间持续时间设置为所需的值(以秒为单位)。 在此持续时间内,你可以在目标计算机上运行无提示测试。 由于浏览器处于空闲状态,因此将此值增加到几天没有任何问题,以便更灵活地运行测试。 默认为 86,400 秒 (24 小时) 。

  3. 例如,根据用于管理站点设备的工具,Jamf Pro 可以采用不同的方式在不同的计算机上执行脚本。