若需指定特殊请求来进行压测,可以通过定义 Header 来实现。本文介绍如何定义 Header 及相关示例。

背景信息

在实际压测场景中,经常需要特定请求来进行压测,例如在压测某网页登录场景时,需要指定鉴权通过的请求来进行压测。使用 PTS 发起的压测均为 HTTP 协议的请求,在进行场景配置时,通过定义 Header 的 Key 和 Value 来指定特殊的访问请求。若需更精确地指定请求,可以通过定义 Body 来实现,详情请参见定义 Body

对 API Header 的定义,可以通过以下三种方式,使定义在不同范围内生效。

说明
  • 若通过以上方式设置的 Header 的 Key 相同,则范围小的 Header 定义生效。
  • 若通过以上方式设置的 Header 的 Key 均不相同,则三种 Header 定义均生效。

设置单个 API Header

若为单个压测请求定义 Header 信息,需在每个 API 的 Header定义 页签下编辑 KeyValue

sc_config_header
  • Value 中可以填写参数化的表达式。

    函数、字符串的组合嵌套等更高级的参数编写方法,请参见系统函数及字符串如何组合嵌套使用?

  • 单击 Header 定义页签右上角文本编辑,可切换为文本形式,查看已输入 Key 和 Value。您也可以在文本编辑形式下,批量写入多个 Header。示例如下:

    token : 123abc
    Cookie : session=12345
    					
  • Key 输入框中,会根据填入的信息模糊匹配通用的 HTTP Request Header,帮助您快速选择目标 Header。

  • Content-type 需要在 Body 定义页签进行设置。

设置串联链路 Header

若某串联链路中的多个压测 API 需要同一个 Header,可以通过设置串联链路 Header 的方式实现 Header 批量添加。

例如:在线选课业务中需要区分一年级学生、二年级学生。若需压测该选课业务,则需为一年级、二年级学生分别创建串联链路并设置串联链路 Header,以区分选课学生类型。

设置串联链路 Header 操作步骤如下:

  1. 场景配置页签串联链路区域最右侧选择 > 链路 Header

    link_header
  2. 单击串联链路 Header 行,并在展开区域编辑 Header 的 KeyValue

    link_header_key_value
    • Value 中可以填写参数化的表达式。

      函数、字符串的组合嵌套等更高级的参数编写方法,参见系统函数及字符串如何组合嵌套使用?

    • 单击 Header 定义页签右上角文本编辑,可切换为文本形式,查看已输入 Key 和 Value。您也可以在文本编辑形式下,批量写入多个 Header。示例如下:

      Grade : 1
      Cookie : abc
      							
    • Key 输入框中,会根据填入的信息模糊匹配通用的 HTTP Request Header,帮助您快速选择目标 Header。

    • Content-type 需要在 Body 定义页签进行设置。

设置全局 Header

如果整个压测场景中的所有请求都需要同一个 Header,可以设置全局 Header 参数。

例如:对某页面进行压测时,为区分页面在 Chrome 和 Firefox 浏览器中的不同表现,可以创建两个压测场景,同时在每个压测场景中设置全局 Header,以区分每个请求所属场景。

设置全局 Header 操作步骤如下:

  1. 创建场景编辑场景页面,单击页面右上角的数据源管理

  2. 全局自定义参数对话框中,选择下方的全局 Header

  3. 填写全局 Header 的 KeyValue。示例如下:

    注意 全局 Header 的 Value 需填写确定值,不支持参数化表达式的解析。
    pg_global_header
    • 单击 Header 定义页签右上角文本编辑,可切换为文本形式,查看已输入 Key 和 Value。您也可以在文本编辑形式下,批量写入多个 Header。示例如下:

      explorer_identification : chrome
      Cookie : 123abc
      							
    • Key 输入框中,会根据填入的信息模糊匹配通用的 HTTP Request Header,帮助您快速选择目标 Header。