性能测试Json脚本编写教程
》》》推荐阅读《《《
1、
2、
3、
4、
本篇文章主要针对POST请求的三种数据请求格式,组织不同的脚本,较为基础,入手较简单
(1)、application/x-www-form-urlencoded 键值对
(2)、multipart/form-data 表单
(3)、application/json Json串
注意:loadrunner参数中的引号,需要自己加"\"。
1. application/x-www-form-urlencoded 键值对
- Action() 
- { 
- lr_start_transaction("checkPerson"); 
- /* 注册获取返回参数,该方法可以配合打印返回数据,检测数据内容 */ 
- web_reg_save_param("Para", 
- "LB=", 
- "RB=", 
- LAST); 
- /* 注册断言:Text=断言内容 */ 
- /* 该方法会判断后面的web请求方法的返回值 */ 
- web_reg_find("Text=成功", 
- LAST); 
- /* 汉字进行UTF-8编码 */ 
- lr_convert_string_encoding("需要进行UTF-8加密的中文字符串",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"result"); 
- /* 向后面的web请求函数增加请求头 */ 
- /* 如果web请求方法中已经设置了相同的头,则优先使用web请求方法中的头,例如web请求方法中的EncType参数,对应请求投中的Content-Type。由于下面的方法已经设置了EncType参数,所以这里的设置并没有什么X用 */ 
- /* 表单直接使用方法自带参数,键值对和json建议使用该方法 */ 
- web_add_header("Content-Type", 
- "application/x-www-form-urlencoded; charset=utf-8"); 
- /*针对一些接口开发规则,token需要在header内添加*/ 
- web_add_auto_header("token", "79faf82271944fe38c4f1d99be71bc9c"); 
- /* 主要针对form表单和键值对两种格式的web请求 */ 
- web_submit_data("checkPerson", 
- "Action=http://130.1.11.105:9080/ibis/faceService/checkPerson", 
- "Method=POST", 
- /* 该方法支持常见的两种请求数据格式 */ 
- /* (1)"EncType=multipart/form-data"。form表单提交数据 */ 
- /* (1)"EncType=application/x-www-form-urlencoded"。默认使用键值对提交数据 */ 
- //"EncType=", 
- "TargetFrame=", 
- "Referer=", 
- ITEMDATA, 
- "Name=Name1", "Value=Value1", ENDITEM, 
- "Name=Name2", "Value=Value2", ENDITEM, 
- LAST); 
- /* 打印相应结果 */ 
- /* lr_eval_string("{result}") 使用loadrunner引用外部函数,只有这样才能取出上面web_reg_save_param方法的返回值 */ 
- lr_log_message(lr_eval_string("{result}")); 
- lr_end_transaction("checkPerson", LR_AUTO); 
- return 0; 
- } 
2. multipart/form-data 表单
[plain] < class="ViewSource" data-linktype="2" rel="nofollow" style="background-position: left top;border: medium;width: 16px;background-image: url("https://mmbiz.qpic.cn/mmbiz_png/2j5DcS1ub5qJ3cYlI7hvGy6wicWiatTePOAoAuMh1K10h8GRDpSS1XxpSGGGM9voncWEYzfR6bnutQV2mbBicQJ0Q/640?wx_fmt=gif");text-indent: -2000px;background-repeat: no-repeat;background-color: inherit;" title="view plain">view plain < class="CopyToClipboard" data-linktype="2" rel="nofollow" style="background-position: left top;border: medium;width: 16px;background-image: url("https://mmbiz.qpic.cn/mmbiz_png/2j5DcS1ub5qJ3cYlI7hvGy6wicWiatTePOOgZdcYV9sVP9EuVUvnaY6Vph9SU2yL44kHMgYZic1PGSyMenoibNatbw/640?wx_fmt=gif");text-indent: -2000px;background-repeat: no-repeat;background-color: inherit;" title="copy">copy
- Action() 
- { 
- lr_start_transaction("checkPerson"); 
- /* 注册获取返回参数,该方法可以配合打印返回数据,检测数据内容 */ 
- web_reg_save_param("Para", 
- "LB=", 
- "RB=", 
- LAST); 
- /* 注册断言:Text=断言内容 */ 
- /* 该方法会判断后面的web请求方法的返回值 */ 
- web_reg_find("Text=成功", 
- LAST); 
- /* 汉字进行UTF-8编码 */ 
- lr_convert_string_encoding("需要进行UTF-8加密的中文字符串",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"result"); 
- /* 向后面的web请求函数增加请求头 */ 
- /* 如果web请求方法中已经设置了相同的头,则优先使用web请求方法中的头,例如web请求方法中的EncType参数,对应请求投中的Content-Type。由于下面的方法已经设置了EncType参数,所以这里的设置并没有什么X用 */ 
- /* 表单直接使用方法自带参数,键值对和json建议使用该方法 */ 
- //web_add_header("Content-Type", 
- // "multipart/form-data; boundary = --------BORN3QKNRTS4; charset=UTF-8"); 
- /*针对一些接口开发规则,token需要在header内添加*/ 
 web_add_auto_header("token", "79faf82271944fe38c4f1d99be71bc9c");
- /* 主要针对form表单和键值对两种格式的web请求 */ 
- web_submit_data("checkPerson", 
- "Action=http://130.1.11.105:9080/ibis/faceService/checkPerson", 
- "Method=POST", 
- /* 该方法支持常见的两种请求数据格式 */ 
- /* (1)"EncType=multipart/form-data"。form表单提交数据 */ 
- /* (1)"EncType="。默认使用键值对提交数据 */ 
- "EncType=multipart/form-data", 
- "TargetFrame=", 
- "Referer=", 
- ITEMDATA, 
- "Name=Name1", "Value=Value1", ENDITEM, 
- "Name=Name2", "Value=Value2", ENDITEM, 
- LAST); 
- /* 打印相应结果 */ 
- /* lr_eval_string("{result}") 使用loadrunner引用外部函数,只有这样才能取出上面web_reg_save_param方法的返回值 */ 
- lr_log_message(lr_eval_string("{result}")); 
- lr_end_transaction("checkPerson", LR_AUTO); 
- return 0; 
- } 
3.  application/json Json串
[plain] < class="ViewSource" data-linktype="2" rel="nofollow" style="background-position: left top;border: medium;width: 16px;background-image: url("https://mmbiz.qpic.cn/mmbiz_png/2j5DcS1ub5qJ3cYlI7hvGy6wicWiatTePOAoAuMh1K10h8GRDpSS1XxpSGGGM9voncWEYzfR6bnutQV2mbBicQJ0Q/640?wx_fmt=gif");text-indent: -2000px;background-repeat: no-repeat;background-color: inherit;" title="view plain">view plain < class="CopyToClipboard" data-linktype="2" rel="nofollow" style="background-position: left top;border: medium;width: 16px;background-image: url("https://mmbiz.qpic.cn/mmbiz_png/2j5DcS1ub5qJ3cYlI7hvGy6wicWiatTePOOgZdcYV9sVP9EuVUvnaY6Vph9SU2yL44kHMgYZic1PGSyMenoibNatbw/640?wx_fmt=gif");text-indent: -2000px;background-repeat: no-repeat;background-color: inherit;" title="copy">copy
- Action() 
- { 
- lr_start_transaction("checkPerson"); 
- /* 注册获取返回参数,该方法可以配合打印返回数据,检测数据内容 */ 
- web_reg_save_param("Para", 
- "LB=", 
- "RB=", 
- LAST); 
- /* 注册断言:Text=断言内容 */ 
- /* 该方法会判断后面的web请求方法的返回值 */ 
- // web_reg_find("Text=成功", 
- // LAST); 
- /* 汉字进行UTF-8编码 */ 
- lr_convert_string_encoding("需要进行UTF-8加密的中文字符串",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"result"); 
- /* 向后面的web请求函数增加请求头 */ 
- /* 如果web请求方法中已经设置了相同的头,则优先使用web请求方法中的头,例如web请求方法中的EncType参数,对应请求投中的Content-Type。由于下面的方法已经设置了EncType参数,所以这里的设置并没有什么X用 */ 
- /* 表单直接使用方法自带参数,键值对和json建议使用该方法 */ 
- web_add_header("Content-Type", 
- "application/json; charset=UTF-8"); 
- /*针对一些接口开发规则,token需要在header内添加*/ 
 web_add_auto_header("token", "79faf82271944fe38c4f1d99be71bc9c");
- /* 主要针对form表单和键值对两种格式的web请求 */ 
- web_custom_request("web_custom_request", 
- "URL=http://www.baidu.com", 
- "Method=POST", 
- "TargetFrame=", 
- "Resource=0", 
- "Referer=", 
- "Mode=HTTP", 
- /* json和键值对数据格式,建议使用web_add_header方法添加Content-Type头 */ 
- //"EncType=application/json", 
- "Body={\"Name1\":\"Value1\",\"Name2\":\"Value2\"}", 
- LAST); 
- /* 打印相应结果 */ 
- /* lr_eval_string("{result}") 使用loadrunner引用外部函数,只有这样才能取出上面web_reg_save_param方法的返回值 */ 
- lr_log_message(lr_eval_string("{result}")); 
- lr_end_transaction("checkPerson", LR_AUTO); 
- return 0; 
- } 
 3. swagger接口参数转为loadrunner请求报文示例:
》》》推荐阅读《《《
1、
2、
3、
4、
6、
7、
8、
9、
10、
11、
12、
13、
14、
15、
16、
17、
18、
19、
20、
22、
23、
24、
25、
26、
27、
28、
