
# 添加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]所示。
图1模拟登录请求的POST方法   
![](https://support.huaweicloud.com/usermanualnew-cpts/zh-cn_image_0000002392784444.png "点击放大")
PATCH、PUT和DELETE的原理和POST是一样的。首先确认被测应用的协议类型、请求方式和请求链接，其次确认具体请求的内容。
#### 添加HTTP和HTTPS协议报文
1. [登录性能测试服务控制台](https://console.huaweicloud.com/cpts/#/home)。
2. 在左侧导航栏中选择"PerfTest测试工程"。
3. 在待编辑PerfTest测试工程所在行，单击工程名称进入测试工程详情页面。
4. 在"测试用例"页签左侧的"用例列表"下，选择待添加请求信息的用例。
5. 在"用例步骤"页签中，单击"添加请求"。
6. 在"报文"页签，"请求信息"选择"HTTP"或者"HTTPS"。
7. 参照[表1]设置基本信息。
   
    表1HTTP和HTTPS协议报文参数 
   | 参数       | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   |:---|:---|
   | 请求方法     | 可以选择GET、POST、PATCH、PUT或DELETE。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 请求地址     | 发送请求的URL地址，比如"http://域名/路径"，也可以包含参数的部分"http://域名/路径?key1=value1\&key2=value2"。 支持变量输入，详情请参见[在PerfTest请求信息中插入变量](https://support.huaweicloud.com/usermanualnew-cpts/cpts_02_0086.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 响应超时（ms） | 发送请求，等待服务器响应的超时时间。响应超时时间范围是20毫秒到30分钟。 如果不设置此参数，默认响应超时时间为5000毫秒。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 携带cookie | 用例下至少已有一个请求信息，添加新的请求信息时进行此参数设置。 - 自动获取：使用响应设置的cookie。  - 手动设置：只使用当前请求信息设置在头域中的cookie。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 自动重定向    | 选择是否跳转到重定向的地址，开关默认打开，即默认自动跳转到重定向的地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 请求参数     | 请求地址中的参数设置。 单击"添加请求参数"，设置"名称"和"值"。选择是否勾选"Url Encode"，默认为不勾选，勾选后对请求参数的值做URL编码。 如果您不需要添加请求参数，可以单击"删除"，删除请求参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 请求头      | 请根据压测服务器需要校验或者使用的头域来添加相关头域及内容。性能测试服务没有对必填头域做要求，仅透传用户定义的头域到压测服务器。"头域"的说明请参见[头域说明](https://support.huaweicloud.com/usermanualnew-cpts/cpts_02_0022.html)。 - 单击"添加头域"，设置"头域"和"值"，如果您不需要添加头域信息，单击"删除"，删除报文头域。  - 单击"批量编辑"，可以切换成文本框编辑模式同时对多个头域进行编辑；单击"键值编辑"，可返回"键值对"编辑模式。   "请求方法"为"POST"或"PUT"，且"头域"为"Content-Type"时，"值"有三种类型，且支持插入变量： - 自定义：直接在输入框中输入值。  - application/x-www-form-urlencoded：请求体为可添加的键值对形式，值为文本。  - multipart/form-data：请求体为可添加的键值对形式，值可为文本或文件。值为文件时，支持body体导入。   |
   | Body体    | 实体的主体部分包含一个由任意数据组成的数据块，并不是所有的报文都包含实体的主体部分。 如果已设置全局变量或响应提取的局部变量，可在报文内容部分引用变量，执行压测任务过程会将报文内容中的变量值动态替换为指定的值。 1. 在请求内容输入框内输入"$"。  2. 在"插入变量"对话框中，配置参数。详情请参见[在PerfTest请求信息中插入变量](https://support.huaweicloud.com/usermanualnew-cpts/cpts_02_0086.html)。  3. 单击"选择"。                                                                                                                                                                                                                                                                                                                                                                           |
      
   
   
8. 配置完成后，单击"保存"。
 
#### 添加TCP协议报文
1. 在"报文"页签，"请求信息"选择"TCP"。
2. 参照[表2]设置基本信息。
   
    表2TCP协议报文参数 
   | 参数     | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   |:---|:---|
   | IP     | 发送请求到被测服务器的IP地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 端口号    | 发送请求到被测服务器的端口号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 连接超时   | 发起连接，服务器无响应的超时时间。连接超时时间范围是20毫秒到60秒。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | 返回超时   | 连接建立成功，等待响应返回的超时时间。返回超时时间范围是20毫秒到30分钟。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 连接设置   | - 重复使用连接：请求响应完成后，不断开连接，复用连接发送接收下一次请求响应。  - 关闭连接：每次完成请求响应完成后，断开连接，下一次重新建立连接。                                                                                                                                                                                                                                                                                                                                                  |
   | 返回结束设置 | 通过返回结束设置，来判断本次请求的响应内容是否已经接收完成。结束符建议设置一个唯一的结束标记，如果设置的结束符在响应内容中存在多个，当接收到第一个结束符时，就认为响应内容已经接收完成，这样接收的响应数据就不完整。 - 返回数据长度：设置返回数据的长度，单位字节。当接收到此长度的响应内容时，数据接收完成。  - 结束符：设置返回数据的结束标记。当接收到结束符时，数据接收完成 。                                                                                                                                                                                                       |
   | 内容格式   | 请根据被测服务器的业务请求内容，选择"字符串"或"16进制码流"。16进制码流的内容取值范围为"0\~9"和"a\~f"，且总字符个数为双数。 如果已设置全局变量或响应提取的局部变量，可在报文内容部分引用变量，执行压测任务过程会将报文内容中的变量值动态替换为指定的值。 1. 在请求内容输入框内输入"$"。  2. 在"插入变量"对话框中，配置参数。详情请参见[在PerfTest请求信息中插入变量](https://support.huaweicloud.com/usermanualnew-cpts/cpts_02_0086.html)。  3. 单击"选择"。   |
      
   
   
3. 配置完成后，单击"保存"。
 
#### 添加UDP协议报文
1. 在"报文"页签，"请求信息"选择"UDP"。
2. 参照[表3]设置基本信息。
   
    表3UDP协议报文参数 
   | 参数     | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   |:---|:---|
   | IP     | 发送请求到被测服务器的IP地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 端口号    | 发送请求到被测服务器的端口号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | 返回结束设置 | 通过返回结束设置，来判断本次请求的响应内容是否已经接收完成。结束符建议设置一个唯一的结束标记，如果设置的结束符在响应内容中存在多个，当接收到第一个结束符时，就认为响应内容已经接收完成，这样接收的响应数据就不完整。 - 返回数据长度：设置返回数据的长度，单位字节。当接收到此长度的响应内容时，数据接收完成。  - 结束符：设置返回数据的结束标记。当接收到结束符时，数据接收完成 。                                                                                                                                                                                                  |
   | 内容格式   | 请根据被测服务器的业务请求内容，选择"字符串"或"16进制码流"。16进制码流的内容取值范围为"0\~9"和"a\~f"，且总字符个数为双数。 如果已设置全局变量或响应提取的局部变量，可在报文内容部分引用变量，执行压测任务过程会将报文内容中的变量值动态替换为指定的值。 1. 在请求内容输入框内输入"$"。  2. 在"插入变量"对话框中，配置参数。详情请参见[在PerfTest请求信息中插入变量](https://support.huaweicloud.com/usermanualnew-cpts/cpts_02_0086.html)。  3. 单击"选择"。   |
      
   
   
3. 配置完成后，单击"保存"。
 
#### 添加WebSocket协议报文
1. 在"报文"页签，"请求信息"选择"WebSocket"。
2. 参照[表4]设置基本信息。
   
    表4WebSocket协议报文参数 
   | 参数     | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   |:---|:---|
   | 请求方法   | - Connect：与压测网站建立WebSocket连接。  - DisConnect：关闭与压测网站的连接。  - Pong：向压测网站发送pong。  - Ping\&Pong：向压测网站发送pong期望返回ping。  - Request：向压测网站发送请求并接收响应。  - ReadOnly：仅接收压测网站发送的信息。  - WriteOnly：仅向压测网站发送信息。   |
   | 请求连接地址 | WebSocket连接的URL地址，比如"ws://域名/路径"，支持加密请求，即"wss://域名/路径"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 连接超时   | 当"请求方法"为"Connect"时，需要设置该参数。 发起连接，服务器无响应的超时时间。连接超时时间范围是20毫秒到60秒。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 状态码    | 当"请求方法"为"DisConnect"时，需要设置该参数。 自定义关闭连接对应的状态码。默认值为1000，输入范围为0\~4999。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | 请求类型   | 当"请求方法"为"Request/WriteOnly"时，需要设置该参数。 请根据被测服务器的业务请求内容，下拉选择"Text"或"Binary"。Binary表示十六进制。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 请求内容   | 当"请求方法"为"Request/WriteOnly"时，需要设置该参数。 根据请求类型中设定格式输入请求信息报文内容。 当请求内容为文本类型时，支持变量输入，详情请参见[在PerfTest请求信息中插入变量](https://support.huaweicloud.com/usermanualnew-cpts/cpts_02_0086.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 响应类型   | 当"请求方法"为"Request/ReadOnly"时，需要设置该参数。 请根据被测服务器的业务响应内容，下拉选择"Text"或"Binary"。Binary表示十六进制。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 响应超时   | 连接建立成功，等待响应返回的超时时间。返回超时时间范围是20毫秒到30分钟。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 请求头    | 请根据压测服务器需要校验或者使用的头域来添加相关头域及内容。性能测试服务没有对必填头域做要求，仅透传用户定义的头域到压测服务器。"头域"的说明请参见[头域说明](https://support.huaweicloud.com/usermanualnew-cpts/cpts_02_0022.html)。 - 单击"添加头域"，设置"头域"和"值"，如果您不需要添加头域信息，单击"删除"，删除报文头域。  - 单击"批量编辑"，可以切换成文本框编辑模式同时对多个头域进行编辑；单击"键值编辑"，可返回"键值对"编辑模式。                                                                                                                                                                                                                          |
      
   
   
3. 配置完成后，单击"保存"。
 
#### 添加MQTT协议报文
1. 在"报文"页签，"请求信息"选择"MQTT"。
2. 参照[表5]设置基本信息。
   
    表5MQTT协议报文参数 
   | 参数        | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   |:---|:---|
   | 请求方法      | - 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代理会自动将该遗嘱消息发布给其他订阅者。 添加遗嘱时设置以下参数： - 主题：遗嘱的主题。  - 类型：支持Text和Hex类型，可以配置是否添加时间戳。  - 内容：遗嘱的内容。  - QoS级别：服务质量等级，用于描述消息传递的可靠性。最多发送一次，适用于实时数据传输；至少发送一次，适用于需要可靠性但允许轻微延迟的应用；只发送一次，适用于需要高可靠性和较大延迟的应用。  - 保留遗嘱：打开开关，客户端订阅后马上就会收到设置的遗嘱信息；关闭开关，发布遗嘱信息的客户端发生意外断开之后，订阅了该客户端遗嘱信息的客户端才可收到遗嘱消息。     - 关闭开关，无遗嘱发送。   |
   | 请求方法为"Publish"时设置以下参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ||
   | 主题        | 发布消息的主题。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | QoS级别     | 服务质量等级，用于描述消息传递的可靠性。最多发送一次，适用于实时数据传输；至少发送一次，适用于需要可靠性但允许轻微延迟的应用；只发送一次，适用于需要高可靠性和较大延迟的应用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 请求类型      | 支持Text和Hex类型，可以配置是否添加时间戳。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 请求内容      | 请求的详细内容。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | 超时时间（ms）  | 客户端发送消息的超时时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 保留消息      | - 打开开关，客户端断开连接时发布的消息仍会保留在服务器。  - 关闭开关，客户端断开连接时发布的消息会被清除。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 请求方法为"Subscribe"时设置以下参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ||
   | 订阅主题      | 订阅消息的主题，应与发布消息的主题匹配。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | QoS级别     | 服务质量等级，用于描述消息传递的可靠性。最多发送一次，适用于实时数据传输；至少发送一次，适用于需要可靠性但允许轻微延迟的应用；只发送一次，适用于需要高可靠性和较大延迟的应用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 响应类型      | 支持Text和Hex类型，可以配置是否添加时间戳。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 超时时间（ms）  | 订阅主题的超时时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 结束条件      | 达到该条件时，结束订阅消息。 - 触发耗时上限：达到设置的耗时上限时结束订阅消息。  - 触发收到消息数上限：达到设置的收到消息数上限时结束订阅消息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 请求方法为"Disconnect"时无需设置参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ||
      
   
   
3. 配置完成后，单击"保存"。
 
#### 添加HLS协议报文
1. 在"报文"页签，"请求信息"选择"HLS"。
2. 参照[表6]设置基本信息。
   
    表6HLS协议报文参数 
   | 参数               | 参数说明                                            |
   |:---|:---|
   | 流媒体地址            | 视频源的地址，比如"http://域名/路径"。                        |
   | 播放时长（秒）          | 模拟播放的时长。用例调试时，播放时长会设置为3秒。                       |
   | 直播缓冲等待请求时间间隔（毫秒） | 直播场景下，视频播放源无新数据时候，尝试获取新数据的时间间隔。                 |
   | 直播缓冲等待请求的最大次数    | 直播场景下，视频播放源无新数据时候，尝试获取新数据的最大次数，如果超过最大次数，则判断为失败。 |
      
   
   
3. 配置完成后，单击"保存"。
 
#### 添加RTMP协议报文
1. 在"报文"页签，"请求信息"选择"RTMP"。
2. 参照[表7]设置基本信息。
   
    表7RTMP协议报文参数 
   | 参数       | 参数说明                                                                                                                                                                                                                 |
   |:---|:---|
   | 请求方式     | - 推流：将现场的视频信号传到网络的过程。  - 拉流：服务器里面有流媒体视频文件，用指定地址进行拉取的过程。   |
   | 请求方式为"推流"时设置以下参数。                                                                                                                                                                                                              ||
   | 流媒体服务器地址 | 被测流媒体服务器的IP地址。                                                                                                                                                                                                       |
   | 端口号      | 被测流媒体服务器监听的端口号，RTMP协议默认为1935。                                                                                                                                                                                        |
   | 应用名称     | 即推流URL中的AppName，直播流媒体文件存放路径，例如：live。                                                                                                                                                                                 |
   | 流名称      | 即推流URL中的StreamName，用来唯一标识一条直播流，例如：livestream。                                                                                                                                                                        |
   | 推流时长（秒）  | 模拟主播推流的时长，单位：秒。                                                                                                                                                                                                      |
   | 视频源地址    | 用来存放模拟直播推流的视频源文件的OBS地址。目前仅支持flv文件格式，且不支持H.265编码的非标准flv文件。                                                                                                                                                            |
   | 请求方式为"拉流"时设置以下参数。                                                                                                                                                                                                              ||
   | 流媒体服务器地址 | 被测流媒体服务器的IP地址。                                                                                                                                                                                                       |
   | 端口号      | 被测流媒体服务器监听的端口号，RTMP协议默认为1935。                                                                                                                                                                                        |
   | 应用名称     | 即拉流URL中的AppName，直播流媒体文件存放路径，例如：live。                                                                                                                                                                                 |
   | 流名称      | 即拉流URL中的StreamName，用来唯一标识一条直播流，例如：livestream。                                                                                                                                                                        |
   | 播放时长（秒）  | 模拟观众观看直播的时长，单位：秒。                                                                                                                                                                                                    |
      
   
   
3. 配置完成后，单击"保存"。
 
#### 添加HTTP-FLV协议报文
1. 在"报文"页签，"请求信息"选择"HTTP-FLV"。
2. 参照[表8]设置基本信息。
   
    表8HTTP-FLV协议报文参数 
   | 参数    | 参数说明                                            |
   |:---|:---|
   | 流媒体地址 | 视频源的地址，比如"http://{视频源ip}:8080/live/stream.flv"。 |
   | 播放时长  | 模拟播放的时长。用例调试时，播放时长会设置为3秒。                       |
      
   
   
3. 配置完成后，单击"保存"。
 
