排查 Windows HLK 测试失败问题

我们建议你使用本指南作为排查 Windows Hardware Lab Kit (Windows HLK) 测试失败问题的起点。 本文介绍可能的测试失败,并提供有关如何对其进行故障排除的分步说明。 必须按规定的顺序执行故障排除步骤。

故障排除步骤:

  1. 安装最新的更新和筛选器

  2. 查看状态图标

  3. 确保测试正确运行

  4. 检查配置更改

  5. 确定失败类别

  6. 联系 Windows HLK 支持

1. 安装最新的更新和筛选器

验证是否已为 Windows HLK 提供最新更新和筛选器。 测试失败问题可能已通过发布的筛选器或更新得到解决。 可以在 Windows Hardware Lab Kit 筛选器中获取 Windows HLK 的最新内容。

观看视频演示。

2. 查看状态图标

在 Windows HLK Studio 中,查看“结果”选项卡上的测试状态图标。状态图标如下所述。 要遵循 5. 确定失败类别中列出的测试失败类别,你必须了解每个图标表示的内容。

状态图标 含义 说明
测试已排队状态图标 已排队 测试已排队但未运行。 如果测试长时间处于此模式,则可能指示网络基础结构或 Windows HLK 基础结构问题。 在大多数情况下,这并不表示测试本身存在问题。
测试正在运行状态图标 正在运行 测试正在运行。 在“测试”选项卡上,“长度”列指示预期的测试运行时。 此信息也可用于特定测试的测试参考主题。 如果设备在测试过程中遇到问题,则测试可以运行三到四倍的预期运行时。
测试通过状态图标 Passed 测试通过。
使用筛选器时测试通过状态图标 使用筛选器时通过 测试通过。
测试失败状态图标 失败 测试失败。
使用筛选器时测试失败状态图标 使用筛选器时失败 测试失败。
由于系统故障,测试失败状态图标 由于系统故障而失败

系统在测试运行过程中发生故障。 可以右键单击此测试以查看错误检查信息。

有关查看系统故障的详细信息,请参阅排查 Windows HLK 测试失败问题(系统故障)

测试已取消状态图标 已取消 用户取消了测试,或任务已取消,因为前面的任务失败。

注意

  如果状态图标表明你遇到了 Windows HLK 基础结构问题,请参阅排查 Windows HLK 环境问题

3. 确保测试正确运行

请确保测试正确运行,如以下各部分中所述:

观看视频演示。

验证需要特殊配置的测试

应检查测试是否需要特殊配置,如果是,则验证是否满足所有特殊配置要求。

某些 Windows HLK 测试需要出于大小或安全原因未包含在 Windows HLK 中的其他文件。 Windows HLK Studio 将这些测试表示为需要特殊配置。 如果未安装补充数据,这些测试将失败。

需要特殊配置的测试由工具箱图标 (特殊配置) 在“测试”窗格和 Windows HLK Studio 中的“结果”窗格中的“类型”列中表示。 各测试的测试参考主题中介绍了特殊配置的详细信息。 有关特定测试参考文档,请参阅 HLK 测试参考,或从 Windows HLK Studio 中,在“测试”或“结果”选项卡上,选择特定测试,然后按“F1”。

注意

  帮助内容的联机版本通常是最新的。

验证需要用户交互的手动测试

应该确定测试是否需要用户交互。

需要用户交互的测试由人员图标表示, (需要在 Windows HLK Studio 的“测试”窗格和“结果”窗格中的“类型”列中) 用户交互。 有关如何运行手动测试的说明,请参阅特定测试的测试参考主题中的“正在运行测试”部分。 有关特定测试参考文档,请参阅 HLK 测试参考,或从 Windows HLK Studio 中,在“测试”或“结果”选项卡上,选择特定测试,然后按“F1”。

将多设备测试作为单个测试运行

如果将测试作为多设备测试运行,请将测试作为单个测试重新运行。

多设备测试是一项 Windows HLK 功能,受某些测试支持。 此功能通过同时测试多个设备来减少测试运行的时间, (而不是为每个设备计划单独的测试运行。) 尽管这是减少总体测试时间的好方法,但它会使故障排除变得困难,因为所有设备的结果都记录在同一日志文件中。

如果在多设备测试运行过程中测试失败,我们建议你针对每个设备分别重新运行测试,并相应地对每个测试运行进行故障排除。 若要在 Windows HLK Studio 中单独运行测试,请选择上下文菜单项“单独运行测试”。 此菜单项可在作为多设备测试运行的测试的“结果”窗格中找到。

4. 检查配置更改

确认选择测试目标后 Windows HLK 基础结构或设备配置未发生更改。 Windows HLK 获取选择测试目标时的 Windows HLK 客户端系统配置信息。 如果在选择测试目标后更改系统或设备配置,则必须重新选择测试目标。

警告

请注意,重新选择测试目标会使以前所有的测试结果作废并被删除。 我们强烈建议在开始测试后不进行任何设备或基础结构更改。

观看视频演示。

5. 确定失败类别

Windows HLK Studio 中的“结果”选项卡按运行顺序列出了测试任务。 失败的测试包括可用于帮助排查测试失败问题的错误选项。 有关“结果”选项卡的详细信息,请参阅“使用‘结果’选项卡管理测试结果”。

下表描述了测试类别及其指标;“失败类别”列链接到本文中的故障排除帮助。 若要访问测试错误、执行日志、任务日志和其他关联的文件,请右键单击 Windows HLK Studio“结果”选项卡上的失败测试。

失败类别 状态图标 标识符 说明

由于测试结果,测试失败

失败

任务错误,任务日志

任务日志

任务错误

日志文件中的任务 <> 被标记为失败

无法确定任务 & lt;> 通过/失败 无论情况如何,任务都将被标记为失败。

原因:使用 <> 执行任务失败,并显示退出代码<错误代码>

系统故障

失败

Windows 事件日志,Windows 故障转储文件

系统事件日志条目和(如果启用)故障转储文件是在系统故障期间创建的。 “任务错误”可能会指出:任务取消是因为发生意外重启。

可以右键单击与系统故障关联的测试,以查看关联的错误检查信息。

测试故障

失败

Windows 事件日志,用户模式故障转储文件

当用户模式组件故障时,会在 Windows HLK 客户端上创建一个应用程序事件日志条目;如果启用,还会创建用户模式转储文件。

测试因运行时间过长而被取消

失败

任务执行日志

任务执行日志中指出了此问题。

客户端系统无响应

正在运行

无指示器

如果 Windows HLK 客户端未响应,则测试可以无限期运行。

用户在 Windows HLK 客户端上结束了测试。

失败

任务错误

此类错误通常不会生成日志文件。

有关特定错误消息的其他信息,请参阅 Windows HLK Studio 任务错误消息参考

以下部分完整描述了上表中列出的故障类别:

由于测试结果,测试失败

测试结果失败是最常见的故障类型。 如果收到测试结果失败,请查看以下信息:

  • Windows HLK Studio 中“结果”选项卡中的“任务日志”文件和“其他文件”。

  • 测试参考主题中的“故障排除”部分。 在 Windows HLK Studio 中选择此测试,然后按 F1。

  • 关联的特定于技术的故障排除指南,其中包含特定功能或技术区域中所有测试的一般故障排除指南。 有关特定于技术的故障排除指南列表,请参阅 Windows HLK 故障排除

测试失败,无未通过的任务,执行日志被禁用

如果没有未通过的任务,但一个或多个任务被标记为已取消,则已知的 HLK 客户端问题可能会导致测试失败。 应检查测试结果的执行日志。

检查执行日志

  1. 在 Windows HLK Studio 中,右键单击失败的测试结果中的任务结果。

  2. 使用“基础结构”菜单项查看日志类型。

  3. 检查“执行日志”选项是否被禁用(变灰)。

如果执行日志缺失,则此失败可能是由已知问题导致的。 解决方法就是重新运行测试,以便将日志复制回控制器。

系统故障

当 Windows 遇到影响安全系统操作的情况时,系统会停止。 这种情况通常称为错误检查、系统故障、内核错误、停止错误或 BSOD。 硬件设备及其驱动程序或相关软件可能会导致此错误。

错误检查摘要信息

系统崩溃图标 (系统崩溃图标) 指示系统在测试运行期间崩溃。 可以右键单击与系统故障关联的测试,以查看关联的错误检查信息:

Bug 检查摘要信息对话框

当 Windows 发生故障时,它会将事件写入 Windows 系统事件日志。 若要启动事件查看器并查看事件,请对客户端系统执行以下操作:

  1. 在“开始”屏幕上,键入“事件日志”。

  2. 在“设置”下,单击“查看事件日志”。

  3. 在事件日志查看器中,选择“Windows 日志”。

  4. 选择关注的特定日志。 若要排查大多数用户模式故障(包括 Windows HLK 测试问题),请选择“应用程序日志”。 对于内核模式问题,请选择“系统日志”。

  5. 在 Windows 系统事件日志文件中,查找类似于以下内容的事件:

    Level = Critical
    Source = Kernel-Power 
    Event ID 41 
    Description:
    The system has rebooted without cleanly shutting down first. This error could be caused if the system stopped responding, crashed, or lost power unexpectedly.
    
    

分析故障转储文件

除了错误检查摘要信息对话框之外,还可以使用故障转储文件和 Windows 调试程序来调试系统故障。 若要了解如何分析故障转储文件,请参阅故障转储文件分析内核模式转储文件。 有关 Windows 调试工具,请参阅 Windows HLK 故障排除

必须确定故障是由你尝试验证的驱动程序引起的,还是 Windows 的问题。 可以使用 Windows 调试程序“!analyze”扩展来识别这一点。 在内核调试程序中,使用“!analyze -v”命令查看失败组件相关数据。

若要详细了解如何使用“!analyze”扩展,请参阅使用 !analyze 扩展。 有关高级故障排除帮助,请参阅调试技术。 若要详细了解错误检查,请参阅解读错误检查代码。 有关错误检查错误代码的列表,请参阅错误检查代码参考

如果问题是由 Windows 引起的,请收集转储文件和调试数据,并按照 Windows HLK 支持中的说明执行操作。

测试故障

此类别中的测试显示为测试失败,无任务日志文件。 在客户端计算机上启动 Windows 事件查看器。 (若要启动 Windows 事件查看器,请在“开始”屏幕上键入“事件日志”,然后选择“设置”下的“查看事件日志”。) 在 Windows 事件查看器的 Windows 应用程序事件日志中,查找类似于以下内容的事件:

Level      = ErrorSource     = Application ErrorEvent ID   = 1000Description: Faulting application name: Testname.exe, … 

按照收集用户模式转储中所述收集用户模式故障转储,然后按照 Windows HLK 支持中的说明进行提交。

测试因运行时间过长而被取消

如果测试在预期运行时的三倍时间之后仍在运行,则 Windows HLK 会自动取消测试运行。 Windows HLK Studio 显示每个测试的预估测试运行时。

可以使用以下标准识别因运行时间过长而取消的测试:

  • 测试没有关联的任务日志。

  • 测试在 Windows HLK Studio 中没有任务错误。

  • 在 Infrastructure\Execution Log 下,在 WttEa.log 文件中查找错误:由于任务运行超时,运行测试失败,如以下示例中所示:

    1872 3868 2012:3:3 3:43:7:898 Error: 0x8201adb1, Error 0x8201adb1   CExecutionTask::Cleanup()::(null)::CAUSE:INFORMATION: Task "Run Test" Failed Because the Task With TaskTimeout Flag Was running after the Timeout period 10800000 MilliSeconds    File=d:\branches\fbl\tools\wtt\rel25\dtm\sdktools\wtt\jobs\runtime\wttexecutionagent\coreea\executiontask\src\executiontask.cpp Line=1686
    

使用 Windows HLK Studio 查看 Wttea.log 文件

  1. 在 Windows HLK Studio 中,单击“结果”。

  2. 右键单击失败的测试。

  3. 依次单击“基础结构”、“执行日志”和“WttEa.log”。

验证设备的基本功能是否仍然正常工作。

客户端系统无响应

使用 Windows HLK 管理器中的“作业监视器”查看“计算机”窗口中的“上次检测信号”列。 如果上次检测信号长时间未注册,则 Windows HLK 控制器与 Windows HLK 客户端之间可能存在通信问题。 如果 Windows HLK 客户端没有检测信号,则可能需要很长时间才能取消测试。 要解决此问题,请考虑以下问题:

  • 网络问题。 请参阅排查 Windows HLK 环境问题

  • 客户端系统无响应。 此状态是通过以下方式指示的:

    • 鼠标指针移动,但不能执行任何操作。

    • 所有视频均已冻结;鼠标指针不移动;分页继续。

    • 鼠标、键盘和磁盘均无响应。

    如果测试似乎正在进行,但进度较慢,请查看控制台日志记录,从而确定原因。

    启用系统以进行调试,并按照强制系统故障调试已停止系统中的说明进行操作。

    驱动程序开发人员应通过使用内核调试程序来调查这些问题。 如果测试未响应,请启动内核调试程序,然后 Windows HLK 取消测试运行。 在内核调试程序中,查找测试过程中所有无响应线程。

6. 联系 Windows HLK 支持

有关如何向 Windows HLK 支持报告以下问题的说明,请参阅 Windows HLK 支持

  • 报告不准确的状态图标。

  • 无法确定失败的原因。

  • 故障是由无法解决的系统故障引起的。

  • 故障是由 Windows 问题导致的。

如何获取测试名称

若要获取 Windows HLK Studio 中的测试名称,请执行以下步骤:

  1. 在 Windows HLK Studio 中,在“结果”选项卡上,右键单击测试名称。

  2. 键入“Ctrl-C”将测试数据复制到剪贴板。

  3. 将测试数据粘贴到记事本或其他文本编辑器中。 数据类似于“图 2. 示例测试数据”,其中 DF - PNP(禁用和启用),带 IO 之前和之后(基本)是测试名称,“03m”是预期测试运行时,“USB 输入设备”是受测设备,“MYSYSTEM”是 Windows HLK 客户端名称。

    示例测试数据

Windows HLK Studio 任务错误消息参考

本部分介绍 Windows HLK Studio 由于某些测试失败返回的任务错误消息。

日志文件中的任务 <> 被标记为失败

这是最常见的错误消息。 查看任务日志文件。

无法确定任务 <> 通过/失败 无论情况如何,任务都将被标记为失败。

此错误通常意味着测试生成了日志,但并未记录注释以外的任何内容。 某些日志失败不会导致任务错误。 日志指示失败或日志不完整。

原因:使用 <> 执行任务失败,并显示退出代码<错误代码>

并非所有任务都会返回日志;故障由 exe 退出代码指示。 此代码可以是任何错误类型。 确定错误代码对于 win32 错误或 HRESULT 错误是否有意义。

由于意外重启,任务已取消

这是一个常见的错误,错误原因可能有很多,包括但不限于受测系统重启或故障。

排查图形测试问题

图形支持 CAB

对于所有图形测试,都需要在测试客户端上按需提供图形功能 (FOD) 包。 可从 HLK 补充内容下载页面上的 MSDN 下载 \\BUILD OS 的 DLL。 CAB 可以部署在运行的客户端上,或在部署到客户端之前注入到 OS 映像。

例如,若要在运行的客户端上安装,请使用以下命令:

dism /online /add-package /packagepath:<path to package>\Microsoft-OneCore-Graphics-Tools-Package.cab

排查 Windows HLK 问题

诊断 (Windows)

收集用户模式转储