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

在 Azure 负载测试中向基于 URL 的负载测试添加请求

本文介绍如何在 Azure 负载测试中将 HTTP 请求添加到基于 URL 的负载测试。 使用基于 URL 的负载测试来验证 HTTP 终结点(例如 Web 应用程序或 REST 终结点),而无需事先了解负载测试工具和脚本。

Azure 支持在基于 URL 的负载测试中定义 HTTP 请求的两种方法。 可以在负载测试中合并这两种方法。

  • 指定 HTTP 终结点详细信息,例如终结点 URL、HTTP 方法、标头、查询参数或请求正文。
  • 输入 HTTP 请求的 cURL 命令。

如果有从属请求,可以从一个请求中提取响应值,并将其作为输入传递给后续请求。 例如,你可能首先检索客户详细信息,并提取客户 ID 以检索客户订单详细信息。

如果在 CI/CD 工作流中使用基于 URL 的负载测试,则可以将包含 HTTP 请求的 JSON 文件传递给负载测试。

最多可以向基于 URL 的负载测试添加五个请求。 对于更复杂的负载测试,可以通过 上传 JMeter 测试脚本来创建负载测试。 例如,如果有 5 个以上的请求,如果使用非 HTTP 协议,或者需要使用 JMeter 插件。

先决条件

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

添加包含 HTTP 详细信息的请求

可以通过提供 HTTP 请求详细信息为基于 URL 的负载测试指定 HTTP 请求。 下表列出了可在 Azure 负载测试中为 HTTP 请求配置的字段:

字段 详细信息
URL HTTP 终结点 URL。 例如 https://www.contoso.com/products
方法 HTTP 方法。 Azure 负载测试支持 GET、POST、PUT、DELETE、PATCH、HEAD 和 OPTIONS。
Query parameters (可选)输入要追加到 URL 的查询字符串参数。
HTTP 头 (可选)输入 HTTP 标头以包含在 HTTP 请求中。 最多可为请求添加 20 个标头。
请求正文 (可选)根据 HTTP 方法,可以指定 HTTP 正文内容。 Azure 负载测试支持以下格式:原始数据、JSON 视图、JavaScript、HTML 和 XML。

按照以下步骤将 HTTP 请求添加到基于 URL 的负载测试:

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

  2. 在左侧导航中,选择“测试以查看所有测试。

  3. 在列表中选择你的负载测试,然后选择“编辑”

    请确保从列表中选择基于 URL 的负载测试,并在“基本信息”选项卡上启用“高级设置”。

  4. 转到 “测试计划 ”选项卡,然后选择“ 添加请求”。

    Screenshot that shows how to add a request to a URL-based load test in the Azure portal.

  5. UI 中选择“添加输入”以输入 HTTP 请求详细信息。

  6. 输入 HTTP 请求详细信息,然后选择“ 添加 ”以将请求添加到负载测试。

    字段 说明
    请求格式 在 UI 中选择“添加输入”,通过Azure 门户中的字段配置请求详细信息。
    请求名称 输入请求的唯一名称。 定义测试失败条件,可以引用此请求名称。
    URL 应用程序终结点的 URL。
    方法 从列表中选择 HTTP 方法。 Azure 负载测试支持 GET、POST、PUT、DELETE、PATCH、HEAD 和 OPTIONS。
    Query parameters (可选)输入要追加到 URL 的查询字符串参数。
    标头 (可选)输入 HTTP 标头以包含在 HTTP 请求中。
    正文 (可选)根据 HTTP 方法,还可以指定 HTTP 正文内容。 Azure 负载测试支持以下格式:原始数据、JSON 视图、JavaScript、HTML 和 XML。

    Screenshot that shows the details page to add an HTTP request by using UI fields in the Azure portal.

  7. 选择“应用”以保存负载测试。

使用 cURL 添加请求

还可以为基于 URL 的负载测试中的 HTTP 请求提供 cURL 命令,而不是提供 HTTP 请求详细信息。 cURL 是基于 URL 的请求的命令行工具和库。

按照以下步骤使用 cURL 命令将 HTTP 请求添加到负载测试。

  1. 在测试列表中,选择负载测试,然后选择“ 编辑”。

    请确保从列表中选择基于 URL 的负载测试,并在“基本信息”选项卡上启用“高级设置”。

  2. 转到 “测试计划 ”选项卡,然后选择“ 添加请求”。

  3. 选择“ 添加 cURL”命令 以使用 cURL 创建 HTTP 请求。

  4. cURL 命令字段中输入 cURL 命令 ,然后选择“ 添加 ”将请求添加到负载测试。

    以下示例使用 cURL 执行 HTTP GET 请求,并指定 HTTP 标头:

    curl --request GET 'http://www.contoso.com/customers?version=1' --header 'api-token: my-token'
    

    Screenshot that shows the details page to add an HTTP request by using a cURL command in the Azure portal.

  5. 选择“应用”以保存负载测试。

在 HTTP 请求中使用变量

可以使用 HTTP 请求中的变量使测试更加灵活,或避免在测试计划中包括机密。 例如,可以将环境变量与终结点的域名一起使用,然后在单个 HTTP 请求中使用变量名称。 变量的使用使测试计划更加灵活且可维护。

在 Azure 负载测试中使用基于 URL 的负载测试,可以使用变量来引用以下信息:

引用请求中的变量的语法为: ${variable-name}

以下屏幕截图显示了如何使用 HTTP 标头${token}引用token变量。

Screenshot that shows the request details page in the Azure portal, highlighting a variable reference in an HTTP header.

注意

如果指定证书,Azure 负载测试会自动在每个 HTTP 请求中传递证书。

对依赖请求使用响应变量

若要创建对上一个请求进行反击的 HTTP 请求,可以使用响应变量。 例如,在第一个请求中,可以从 API 检索项列表,从第一个结果中提取 ID,然后生成后续 ID,并将此 ID 作为查询字符串参数传递。

Azure 负载测试支持以下选项,用于从 HTTP 请求中提取值并将其存储在变量中:

  • JSONPath
  • XPath
  • Regular expression

例如,以下示例演示如何使用 XPathExtractor 在响应变量中 token 存储请求的正文。 然后,可以在其他 HTTP 请求中使用 ${token} 来引用此值。

"responseVariables": [
    {
        "extractorType": "XPathExtractor",
        "expression": "/note/body",
        "variableName": "token"
    }
]