软件测试测试员的那点事测试之家

loadrunner之 post接口请求

2023-02-15  本文已影响0人  老林说测试

在使用loadrunner进行post接口性能测试时,我们经常会遇到一些post请求的数据格式问题,下面我来给大家讲一下六类不同的请求格式:

一、加密内容,未加密内容,参数化参数

    web_custom_request("service",

            url,//参数化之后的url

            "Method=POST",

            "Resource=0",

            "RecContentType=application/json",

            "Referer=",

            "Snapshot=t1.inf",

            "Mode=HTTP",

    "EncType={peyd};charset=UTF-8",//很重要,一定要加,peyd表示为请求格式

            "BodyFilePath=YOUR FILEPATH",

        LAST);

eg:"BodyFilePath=D:\\das\\test.txt"

二、常规post请求:

web_custom_request("test",

"URL=http://***:***",

"Method=POST",

"RecContentType=application/json",

"Referer=",

"Mode=HTTP",

"EncType=application/json",

"Body={\"user\":\"kentson\",\"userId\":\"345\",\"LId\":\"23\"}",

LAST);

三、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");

/* 主要针对form表单和键值对两种格式的web请求 */

web_submit_data("relateds",

"Action=http://192.168.0.184:28080/fleetapi/device/relateds",

"Method=POST",

/* 该方法支持常见的两种请求数据格式 */

/* (1)"EncType=multipart/form-data"。form表单提交数据 */

/* (1)"EncType=application/x-www-form-urlencoded"。默认使用键值对提交数据 */

//"EncType=",

"TargetFrame=",

"Referer=",

ITEMDATA,

"Name=openid", "Value={o1}", ENDITEM,

"Name=token", "Value={t1}", ENDITEM,

"Name=pageSize","Value=20", ENDITEM,

"Name=page",    "Value=1", 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;

}

四、multipart/form-data 表单

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://192.168.0.12:8080/byby/PFService/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

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.XXXX.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;

}

六、常见的有json个是或者xml格式内容,偶尔也有一些自定义内容

web_custom_request("service",

url,//请求的url地址,这里把它进行了参数化

"Method=POST",

"Resource=0",

"RecContentType=text/xml",

"Referer=",

"Snapshot=t1.inf",

"Mode=HTML",

body, //见上面的参数:postBody

LAST);

上一篇下一篇

猜你喜欢

热点阅读