注意:loadrunner参数中的引号,需要自己加"\"

post 请求,分为header 和body两个部分处理

header部分比较容易处理,使用函数实现,如web_add_header("pid","1")即可,具体参数可参见接口文档。

body部分:

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

 (1)如char body[1024]= "body=*****":

web_custom_request("service",

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

"Method=POST",

"Resource=0",

"RecContentType=text/xml",

"Referer=",

"Snapshot=t1.inf",

"Mode=HTML",

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

LAST);

(2)加密内容,未加密内容,参数化参数

web_custom_request("service",

url,//参数化之后的url

"Method=POST",

"Resource=0",

"RecContentType=application/json",

"Referer=",

"Snapshot=t1.inf",

"Mode=HTTP",

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

"BodyFilePath=YOUR FILEPATH", //见上面的参数:postBody

LAST);

eg:"BodyFilePath=c:\\yong.hu\\test.txt"

(3)常规post请求:

web_custom_request("test",
"URL=http://***:***",
"Method=POST",
"RecContentType=application/json",
"Referer=", 
"Mode=HTTP",
"EncType=application/json",
"Body={\"CId\":\"***\",\"CUId\":\"***\",\"TId\":\"5\"}", 
LAST);

(4)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("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;
}

(5)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://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;
}

(6) application/json 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.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;
}

Ps:4~6内容引用https://blog.csdn.net/xieyuemin/article/details/52642924

loadrunner post请求的更多相关文章

  1. LoadRunner web请求和响应中文乱码解决办法

    先来认识下lr_convert_string_encoding: int lr_convert_string_encoding( const char *sourceString, const cha ...

  2. LoadRunner中请求HTTPS页面。

    哎,真是服了.国内网站上写的解决方法如此的粗糙. 如果用loadrunner访问HTTPS网页时出现:shut connection during attempt to negotiate SSL s ...

  3. LoadRunner模拟REST接口的json请求

    LoadRunner模拟REST接口的json请求 现在很多手机应用的性能测试,REST接口调用通过json格式,在用loadrunner模拟这些json请求时,需要开发提供 1.供接口地址 2.提交 ...

  4. Loadrunner手动编写包含事务、检查点、关联等元素的脚本实例

    一.前言: 本文适合初学者,包含很多细节,包括 二.准备: 1.以虚拟机中的Linux系统作为服务器,开启bugfree服务. 2.以fiddler作为抓包工具,辅助脚本开发. 3.脚本流程:bugf ...

  5. LoadRunner【第二篇】原理及使用流程

    loadrunner工作原理 性能测试只关注底层数据,不关注业务,不关注客户端动作.所以,脚本运行正确不一定业务就正确(业务是否正确,如果是查询,我们可以通过检查点来判断:如果是增删改操作,可以看通过 ...

  6. 通过LoadRunner - Analyze详细分析页面元素请求

    众所周知LoadRunner录制某个链接,包括动态请求与js.css.jpg等静态请求. web_custom_request("动态请求", "URL=http://w ...

  7. loadrunner录制脚本如何选择使用get请求和post请求的方式

    在loadrunner工具里录制脚本时常常会用到get请求和post请求,有关loadrunner常用的这两类的请求主要有: get请求: web_url 和 web_link post请求: web ...

  8. Loadrunner模拟JSON接口请求进行测试

    Loadrunner模拟JSON接口请求进行测试     一.loadrunner脚本创建 1.Insert - New step -选择Custom Request -  web_custom_re ...

  9. Loadrunner请求自定义的http(json)文件and参数化

    Loadrunner请求自定义的http(json)文件and参数化      研究啦好些天这个东西啦 终于出来答案啦 嘿嘿 给大家分享一下 : 请求自定义的http文件用函数:web_custom_ ...

随机推荐

  1. 大牛都在用的IDEA调试技巧

    导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点条件?那孩子懵了,想了好一会对我说没用过,甚至 ...

  2. Mol Cell Proteomics. | MARMoSET – Extracting Publication-ready Mass Spectrometry Metadata from RAW Files

    本文是马克思普朗克心肺研究所的三名研究者Marina Kiweler.Mario Looso和Johannes Graumann发表在8月刊的MCP的一篇文章. 由于Omics实验经常涉及数百个数据文 ...

  3. SQL的分类使用(增删改查)

    1.SQL的分类使用(*代表重点的程度)    DDL ** (Data Definition Language)数据库定义语言        用来定义数据库对象: 库 表 列 等    DCL (D ...

  4. python编写“求最大值”

    # 求最大值 def large(*num): # 定义一个large函数,函数的参数为可变参数 ma = num[0] # 初始化最大值 for n in num: if ma < n: # ...

  5. hdu3336 Counting the string kmp的next数组的应用

    题目链接:http://icpc.njust.edu.cn/Problem/Hdu/3336/ 题意就是要求一个字符串的所有前缀在字符串中出现的次数之和,我们容易想到kmp中的next数组,next[ ...

  6. 单调栈-Maximum Width Ramp

    2020-01-23 19:39:26 问题描述: 问题求解: public int maxWidthRamp(int[] A) { Stack<Integer> stack = new ...

  7. RNN,GRU,LSTM

    2019-08-29 17:17:15 问题描述:比较RNN,GRU,LSTM. 问题求解: 循环神经网络 RNN 传统的RNN是维护了一个隐变量 ht 用来保存序列信息,ht 基于 xt 和 ht- ...

  8. Python NLP库top6的介绍和比较

    文章来源:ActiveWizards https://medium.com/activewizards-machine-learning-company/comparison-of-top-6-pyt ...

  9. DOM 操作成本到底高在哪儿?

    从我接触前端到现在,一直听到的一句话:操作DOM的成本很高,不要轻易去操作DOM.尤其是React.vue等MV*框架的出现,数据驱动视图的模式越发深入人心,jQuery时代提供的强大便利地操作DOM ...

  10. 扩展KMP(记录学习过程)

    首先看了几篇博客,发现还得耐下心来理解,动手画图 ,才能理解俩字符串还有数组之间神奇的关系 这篇博客图不错:https://segmentfault.com/a/1190000008663857 /* ...