你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

诊断 Azure 负载测试中的失败负载测试

本文介绍如何诊断和排查 Azure 负载测试中失败的负载测试问题。 Azure 负载测试提供了多个选项来识别失败负载测试的根本原因。 例如,可以使用负载测试仪表板,或下载测试结果或测试日志文件进行深入分析。 或者,配置服务器端指标以识别应用程序终结点的问题。

Azure 负载测试使用两个指标来确定负载测试的结果:

  • 测试状态:指示负载测试是否能够成功启动并运行测试脚本,直到结束。 例如,如果 JMeter 测试脚本中出现错误,或者自动停止侦听器因请求过多而中断负载测试,则测试状态为“失败”。

  • 测试结果:指示评估 测试失败条件的结果。 如果至少满足其中一个测试失败条件,则测试结果设置为 “失败”。

根据指示器,可以使用不同的方法来识别测试失败的根本原因。

先决条件

  • 具有活动订阅的 Azure 帐户。 如果没有 Azure 订阅,请在开始之前创建一个免费帐户
  • 已完成测试运行的 Azure 负载测试资源。 如果需要创建 Azure 负载测试资源,请参阅创建并运行负载测试

确定负载测试的结果

使用以下步骤获取负载测试的结果:

  1. Azure 门户中,转到负载测试资源。

  2. 在左窗格中选择“测试以查看测试列表。

  3. 从列表中选择一个测试,以查看该测试的所有测试运行。

    测试运行列表显示 “测试结果 ”和 “测试状态 ”字段。

    Screenshot that shows the list of test runs in the Azure portal, highlighting the test result and test status columns.

  4. 或者,选择测试运行以查看测试运行仪表板负载测试。

    Screenshot that shows the load test dashboard, highlighting status information for a failed test.

诊断测试失败

可以使用不同的方法来诊断负载测试失败,具体取决于 Azure 负载测试是否能够运行和完成测试脚本。

负载测试无法完成

负载测试无法完成时, 测试运行的测试状态 设置为 “失败”。

负载测试可能由于多种原因而无法完成。 负载测试未完成的原因示例:

  • JMeter 测试脚本中存在错误。
  • 测试脚本使用 Azure 负载测试不支持的 JMeter 功能。 了解 支持的 JMeter 功能
  • 测试脚本引用在测试引擎实例上不可用的文件或插件。
  • 自动停止功能中断了负载测试,因为请求过多且错误率超过阈值。 详细了解 Azure 负载测试中的自动停止功能。

使用以下步骤帮助诊断未完成的测试:

  1. 验证负载测试仪表板的错误详细信息。
  2. 下载并分析测试日志 ,以确定 JMeter 测试脚本中的问题。
  3. 下载测试结果 以识别单个请求的问题。

负载测试已完成

负载测试可能会运行测试脚本,直到结束(测试状态等于 完成),但可能不会通过所有 测试失败条件。 如果至少一个测试条件未通过,测试运行测试结果将设置为失败”。

使用以下步骤帮助诊断测试未能满足测试条件:

  1. 查看负载测试仪表板中的测试失败条件
  2. 查看负载测试中的采样器统计信息仪表板进一步确定测试脚本中的哪些请求可能会导致问题。
  3. 查看负载测试仪表板中的客户端指标。 (可选)可以使用筛选器控件筛选特定请求的图表。
  4. 下载测试结果 以获取单个请求的错误信息。
  5. 验证测试 引擎运行状况指标 ,以确定测试引擎上可能存在的资源争用。
  6. (可选) 添加应用组件并监视服务器端指标 ,以确定应用程序终结点的性能瓶颈。

下载用于负载测试的 Apache JMeter 辅助角色日志

当你运行负载测试时,Azure 负载测试测试引擎会执行你的 Apache JMeter 测试脚本。 在负载测试期间,Apache JMeter 会将详细的日志记录存储在工作器节点日志中。 可以在 Azure 门户中为每个运行的测试下载这些 JMeter 工作器日志。 Azure 负载测试为每个 测试引擎实例生成辅助角色日志。

注意

Azure 负载测试仅记录工作器日志中具有 WARNERROR 级别的日志记录消息。

例如,如果 JMeter 脚本出现问题,负载测试状态为 “失败”。 在工作器日志中,你可能会找到有关问题原因的其他信息。

若要下载 Azure 负载测试测试运行的工作器日志,请执行以下步骤:

  1. Azure 门户中,转到 Azure 负载测试资源。

  2. 选择“测试以查看测试列表,然后从列表中选择负载测试。

  3. 在测试运行列表中,选择测试运行以查看负载测试仪表板。

  4. 在仪表板上,依次选择“下载”、“日志”

    浏览器现在应开始下载包含每个 测试引擎实例的 JMeter 工作器节点日志文件的压缩文件夹。

    Screenshot that shows how to download the test log files from the test run details page.

  5. 可以使用任何 zip 工具提取文件夹并访问日志文件。

    worker.log 文件可帮助诊断负载测试失败的根本原因。 在屏幕截图中,可以看到测试由于缺少文件而失败。

    Screenshot that shows the JMeter log file content.