添加PerfTest请求信息(报文)
报文是HTTP/HTTPS/TCP/UDP/HLS/RTMP/WEBSOCKET/HTTP-FLV/MQTT应用程序之间发送的数据块。数据块以文本形式的元信息开头,元信息描述了报文的内容及含义,元信息后面跟着可选的数据部分。数据块在客户端、服务器和代理之间流动。
报文如何填写
报文通俗的解释就是用户在网站界面上的所有单击操作。每个单击操作,通过编辑成满足协议规范、带有用户请求内容格式的码流,传送给不同的第三方,最后得到一个正确的响应或者失败的响应。得到正确的响应,这个单击动作会操作成功;得到错误的响应,界面会提示一些错误信息指导用户怎么修正。
性能测试服务支持HTTP/HTTPS协议报文的请求类型分为GET、POST、PATCH、PUT和DELETE。
填写报文前,首先需要确认请求接口是一个什么动作。以查询为例,查询消息就是一个GET请求,在配置时选择GET方式即可。
其次,如果一个请求涉及到各种信息的输入,可以通过在操作时按“F12”,或抓包工具(例如wireshark)查看报文是怎么请求的,报文体是什么样的格式,如何传送到第三方接口,然后根据实际业务在压测的报文中填写。
标准的HTTP/HTTPS协议,报文的头域依照抓包的内容填写;报文体就是具体请求的内容,根据被测服务业务来判断,可以是游戏的登录请求,可以是银行的开户请求等,只要满足HTTP/HTTPS协议都可以编辑报文进行压测。一般情况这类请求方式会是一个POST,选择POST方式后,会有联动的选项展示出来。
例如,模拟登录请求的POST方法,对应的请求连接、请求方法、头域、报文内容如图1所示。
PATCH、PUT和DELETE的原理和POST是一样的。首先确认被测应用的协议类型、请求方式和请求链接,其次确认具体请求的内容。
添加HTTP和HTTPS协议报文
- 登录性能测试服务控制台。
- 在左侧导航栏中选择“PerfTest测试工程”。
- 在待编辑PerfTest测试工程所在行,单击工程名称进入测试工程详情页面。
- 在“测试用例”页签左侧的“用例列表”下,选择待添加请求信息的用例。
- 在“用例步骤”页签中,选择待添加请求信息的用例,单击“添加请求”。
- 在“报文”页签,“请求信息”选择“HTTP”或者“HTTPS”。
- 参照表1设置基本信息。
表1 HTTP和HTTPS协议报文参数 参数
参数说明
请求方法
可以选择GET、POST、PATCH、PUT或DELETE。
请求地址
发送请求的URL地址,比如“http://域名/路径”,也可以包含参数的部分“http://域名/路径?key1=value1&key2=value2”。
支持变量输入,详情请参见在PerfTest请求信息中插入变量。
响应超时(ms)
发送请求,等待服务器响应的超时时间。响应超时时间范围是20ms到5分钟。
如果不设置此参数,默认响应超时时间为5000ms。
携带cookie
用例下至少已有一个请求信息,添加新的请求信息时进行此参数设置。
- 自动获取:使用响应设置的cookie。
- 手动设置:只使用当前请求信息设置在头域中的cookie。
自动重定向
选择是否跳转到重定向的地址,开关默认打开,即默认自动跳转到重定向的地址。
请求参数
请求地址中的参数设置。
单击“添加请求参数”,设置“名称”和“值”。选择是否勾选“Url Encode”,默认为不勾选,勾选后对请求参数的值做URL编码。
如果您不需要添加请求参数,可以单击“删除”,删除请求参数。
请求头
请根据压测服务器需要校验或者使用的头域来添加相关头域及内容。性能测试服务没有对必填头域做要求,仅透传用户定义的头域到压测服务器。“头域”的说明请参见头域说明。
- 单击“添加头域”,设置“头域”和“值”,如果您不需要添加头域信息,单击“删除”,删除报文头域。
- 单击“批量编辑”,可以切换成文本框编辑模式同时对多个头域进行编辑;单击“键值编辑”,可返回“键值对”编辑模式。
“请求方法”为“POST”或“PUT”,且“头域”为“Content-Type”时,“值”有三种类型,且支持插入变量:
- 自定义:直接在输入框中输入值。
- application/x-www-form-urlencoded:请求体为可添加的键值对形式,值为文本。
- multipart/form-data:请求体为可添加的键值对形式,值可为文本或文件。值为文件时,支持body体导入。
Body体
实体的主体部分包含一个由任意数据组成的数据块,并不是所有的报文都包含实体的主体部分。
如果已设置全局变量或响应提取的局部变量,可在报文内容部分引用变量,执行压测任务过程会将报文内容中的变量值动态替换为指定的值。
- 在请求内容输入框内输入“$”。
- 在“插入变量”对话框中,配置参数。详情请参见在PerfTest请求信息中插入变量。
- 单击“选择”。
- 配置完成后,单击“保存”。
添加TCP协议报文
- 在“报文”页签,“请求信息”选择“TCP”。
- 参照表2设置基本信息。
表2 TCP协议报文参数 参数
参数说明
IP
发送请求到被测服务器的IP地址。
端口号
发送请求到被测服务器的端口号。
连接超时
发起连接,服务器无响应的超时时间。连接超时时间范围是20ms到60s。
返回超时
连接建立成功,等待响应返回的超时时间。返回超时时间范围是20ms到60s。
连接设置
- 重复使用连接:请求响应完成后,不断开连接,复用连接发送接收下一次请求响应。
- 关闭连接:每次完成请求响应完成后,断开连接,下一次重新建立连接。
返回结束设置
通过返回结束设置,来判断本次请求的响应内容是否已经接收完成。结束符建议设置一个唯一的结束标记,如果设置的结束符在响应内容中存在多个,当接收到第一个结束符时,就认为响应内容已经接收完成,这样接收的响应数据就不完整。
- 返回数据长度:设置返回数据的长度,单位字节。当接收到此长度的响应内容时,数据接收完成。
- 结束符:设置返回数据的结束标记。当接收到结束符时,数据接收完成 。
内容格式
请根据被测服务器的业务请求内容,选择“字符串”或“16进制码流”。16进制码流的内容取值范围为“0~9”和“a~f”,且总字符个数为双数。
如果已设置全局变量或响应提取的局部变量,可在报文内容部分引用变量,执行压测任务过程会将报文内容中的变量值动态替换为指定的值。
- 在请求内容输入框内输入“$”。
- 在“插入变量”对话框中,配置参数。详情请参见在PerfTest请求信息中插入变量。
- 单击“选择”。
- 配置完成后,单击“保存”。
添加UDP协议报文
- 在“报文”页签,“请求信息”选择“UDP”。
- 参照表3设置基本信息。
表3 UDP协议报文参数 参数
参数说明
IP
发送请求到被测服务器的IP地址。
端口号
发送请求到被测服务器的端口号。
返回结束设置
通过返回结束设置,来判断本次请求的响应内容是否已经接收完成。结束符建议设置一个唯一的结束标记,如果设置的结束符在响应内容中存在多个,当接收到第一个结束符时,就认为响应内容已经接收完成,这样接收的响应数据就不完整。
- 返回数据长度:设置返回数据的长度,单位字节。当接收到此长度的响应内容时,数据接收完成。
- 结束符:设置返回数据的结束标记。当接收到结束符时,数据接收完成 。
内容格式
请根据被测服务器的业务请求内容,选择“字符串”或“16进制码流”。16进制码流的内容取值范围为“0~9”和“a~f”,且总字符个数为双数。
如果已设置全局变量或响应提取的局部变量,可在报文内容部分引用变量,执行压测任务过程会将报文内容中的变量值动态替换为指定的值。
- 在请求内容输入框内输入“$”。
- 在“插入变量”对话框中,配置参数。详情请参见在PerfTest请求信息中插入变量。
- 单击“选择”。
- 配置完成后,单击“保存”。
添加WebSocket协议报文
- 在“报文”页签,“请求信息”选择“WebSocket”。
- 参照表4设置基本信息。
表4 WebSocket协议报文参数 参数
参数说明
请求方法
- Connect:与压测网站建立WebSocket连接。
- DisConnect:关闭与压测网站的连接。
- Pong:向压测网站发送pong。
- Ping&Pong:向压测网站发送pong期望返回ping。
- Request:向压测网站发送请求并接收响应。
- ReadOnly:仅接收压测网站发送的信息。
- WriteOnly:仅向压测网站发送信息。
请求连接地址
WebSocket连接的URL地址,比如“ws://域名/路径”,支持加密请求,即“wss://域名/路径”。
连接超时(ms)
当“请求方法”为“Connect”时,需要设置该参数。
发起连接,服务器无响应的超时时间。连接超时时间范围是20ms到60s。
状态码
当“请求方法”为“DisConnect”时,需要设置该参数。
自定义关闭连接对应的状态码。默认值为1000,输入范围为0~4999。
请求类型
当“请求方法”为“Request/WriteOnly”时,需要设置该参数。
请根据被测服务器的业务请求内容,下拉选择“Text”或“Binary”。Binary表示十六进制。
请求内容
当“请求方法”为“Request/WriteOnly”时,需要设置该参数。
根据请求类型中设定格式输入请求信息报文内容。
当请求内容为文本类型时,支持变量输入,详情请参见在PerfTest请求信息中插入变量。
响应类型
当“请求方法”为“Request/ReadOnly”时,需要设置该参数。
请根据被测服务器的业务响应内容,下拉选择“Text”或“Binary”。Binary表示十六进制。
响应超时(ms)
连接建立成功,等待响应返回的超时时间。返回超时时间范围是20ms到60s。
请求头
请根据压测服务器需要校验或者使用的头域来添加相关头域及内容。性能测试服务没有对必填头域做要求,仅透传用户定义的头域到压测服务器。“头域”的说明请参见头域说明。
- 单击“添加头域”,设置“头域”和“值”,如果您不需要添加头域信息,单击“删除”,删除报文头域。
- 单击“批量编辑”,可以切换成文本框编辑模式同时对多个头域进行编辑;单击“键值编辑”,可返回“键值对”编辑模式。
- 配置完成后,单击“保存”。
添加MQTT协议报文
- 在“报文”页签,“请求信息”选择“MQTT”。
- 参照表5设置基本信息。
表5 MQTT协议报文参数 参数
参数说明
请求方法
- Connect:与压测网站建立MQTT连接。
- Publish:发布消息。
- Subscribe:订阅发布的消息。
- DisConnect:关闭与压测网站的MQTT连接。
请求方法为“Connect”时设置以下参数。
MQTT版本
MQTT的版本,当前支持3.1、3.1.1版本。
传输地址
MQTT服务器地址,地址支持TCP、SSL、WS、WSS协议。
MQTT传输地址暂不支持域名绑定功能。
超时时间(ms)
客户端建立连接、发送消息等相关操作的超时时间。
客户端ID
MQTT客户端ID。通过“添加随机后缀”开关,可以设置客户端ID是否添加随机后缀。
用户名
MQTT客户端设置的用户名。用户名为敏感参数,请通过敏感参数模式的全局变量设值。
密码
MQTT客户端设置的密码。密码为敏感参数,请通过敏感参数模式的全局变量设值。
连接保活时长(s)
活动心跳间隔时间,单位为秒。
清空会话
- 打开开关,客户端和服务器之间建立连接时,会清空上一次连接所保留的会话信息。
- 关闭开关,客户端和服务器之间建立连接时,不会清空上一次连接所保留的会话信息。
添加遗嘱
- 打开开关,添加遗嘱。当客户端异常断开连接时,MQTT代理会自动将该遗嘱消息发布给其他订阅者。
- 关闭开关,无遗嘱发送。
请求方法为“Publish”时设置以下参数。
主题
发布消息的主题。
QoS级别
服务质量等级,用于描述消息传递的可靠性。最多发送一次,适用于实时数据传输;至少发送一次,适用于需要可靠性但允许轻微延迟的应用;只发送一次,适用于需要高可靠性和较大延迟的应用。
请求类型
支持Text和Hex类型,可以配置是否添加时间戳。
请求内容
请求的详细内容。
超时时间(ms)
客户端发送消息的超时时间。
保留消息
- 打开开关,客户端断开连接时发布的消息仍会保留在服务器。
- 关闭开关,客户端断开连接时发布的消息会被清除。
请求方法为“Subscribe”时设置以下参数。
订阅主题
订阅消息的主题,应与发布消息的主题匹配。
QoS级别
服务质量等级,用于描述消息传递的可靠性。最多发送一次,适用于实时数据传输;至少发送一次,适用于需要可靠性但允许轻微延迟的应用;只发送一次,适用于需要高可靠性和较大延迟的应用。
响应类型
支持Text和Hex类型,可以配置是否添加时间戳。
超时时间(ms)
订阅主题的超时时间。
结束条件
达到该条件时,结束订阅消息。
- 触发耗时上限:达到设置的耗时上限时结束订阅消息。
- 触发收到消息数上限:达到设置的收到消息数上限时结束订阅消息。
请求方法为“Disconnect”时无需设置参数。
- 配置完成后,单击“保存”。
添加HLS协议报文
- 在“报文”页签,“请求信息”选择“HLS”。
- 参照表6设置基本信息。
- 配置完成后,单击“保存”。
添加RTMP协议报文
- 在“报文”页签,“请求信息”选择“RTMP”。
- 参照表7设置基本信息。
表7 RTMP协议报文参数 参数
参数说明
请求方式
- 推流:将现场的视频信号传到网络的过程。
- 拉流:服务器里面有流媒体视频文件,用指定地址进行拉取的过程。
请求方式为“推流”时设置以下参数。
流媒体服务器地址
被测流媒体服务器的IP地址。
端口号
被测流媒体服务器监听的端口号,RTMP协议默认为1935。
应用名称
即推流URL中的AppName,直播流媒体文件存放路径,例如:live。
流名称
即推流URL中的StreamName,用来唯一标识一条直播流,例如:livestream。
推流时长(秒)
模拟主播推流的时长,单位:秒。
视频源地址
用来存放模拟直播推流的视频源文件的OBS地址。目前仅支持flv文件格式,且不支持H.265编码的非标准flv文件。
请求方式为“拉流”时设置以下参数。
流媒体服务器地址
被测流媒体服务器的IP地址。
端口号
被测流媒体服务器监听的端口号,RTMP协议默认为1935。
应用名称
即拉流URL中的AppName,直播流媒体文件存放路径,例如:live。
流名称
即拉流URL中的StreamName,用来唯一标识一条直播流,例如:livestream。
播放时长(秒)
模拟观众观看直播的时长,单位:秒。
- 配置完成后,单击“保存”。
添加HTTP-FLV协议报文
- 在“报文”页签,“请求信息”选择“HTTP-FLV”。
- 参照表8设置基本信息。
- 配置完成后,单击“保存”。
