loadrunner请求API,http POST三种请求格式的脚本
本篇文章主要针对POST请求的三种数据请求格式,组织不同的脚本:
(1)、application/x-www-form-urlencoded 键值对
(2)、multipart/form-data 表单
(3)、application/json Json串
PS:loadrunner body参数中的引号,需要自己加\
转义。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| 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"); /* 主要针对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; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| 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"); /* 主要针对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; }
|
application/json Json串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| 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"); /* 主要针对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; }
|