loadrunner断言多结果返回
loadrunner传k-v,用web_custom_request函数。
init里面执行登录,根据返回获取到tokenId,action中,执行登录后的操作。
详细脚本如下:
vuser_init
vuser_init()
{
//获取response响应信息
//web_reg_save_param("response","LB=","RB=",LAST); //获取tokenId值
web_reg_save_param("tokenId","Search=Body","LB=\"tokenId\":\"","RB=\"",LAST); //添加头文件
//web_add_header("Content-Type","application/json;charset=utf-8");
web_add_header("imei","{userAccount}");
//web_add_header("Pragma","no-cache");
//web_add_header("appversion","2.1.1.2");
//web_add_header("systemversion","android:5.0.2"); web_custom_request("login",
"URL=http://127.0.0.1:8081/login",
"Method=POST",
"Resource=0",
"RecContentType=application/json",
"Referer=",
"Mode=HTTP", // O5WDjUwauLx3cACPSkczsElnGiD8n0RDGunFQDMecI96lmBzR5xc2VQhPV0NZbFdaik8tkZsq+kedFdomJ3A9fRklLkJT11IV45mZa9\/R45UslH\/hJqzPVShm\/9vVptgpwYbJZkhkcPx1LSeXJLPwg==|MTIzNDU2Nzg5MDk4NzY1NA==|9eU7qirx0+uJKqcedCzyBQ==
"EncType=application/json",
"Body={\"userAccount\":\"{userAccount}\",\"userPassword\":\"O5WDjUwauLx3cACPSkczsElnGiD8n0RDGunFQDMecI96lmBzR5xc2VQhPV0NZbFdaik8tkZsq+kedFdomJ3A9fRklLkJT11IV45mZa9\\/R45UslH\\/hJqzPVShm\\/9vVptgpwYbJZkhkcPx1LSeXJLPwg==|MTIzNDU2Nzg5MDk4NzY1NA==|9eU7qirx0+uJKqcedCzyBQ==\"}",
LAST);
//输出code值
//lr_output_message("输出code值:%s",lr_eval_string("{code}")); //输出tokenId值
//lr_output_message("输出tokenId值:%s",lr_eval_string("{tokenId}")); //对获取response信息进行转码
//lr_convert_string_encoding(lr_eval_string("{response}"),LR_ENC_UTF8,"GBK","result"); //输出response响应信息
//lr_output_message( "返回response响应信息:%s",lr_eval_string("{result}"));
return 0;
}
Action
Action()
{
int res = 0;
//int int_res = 0;
//char * string_res = (char*)calloc(100,sizeof(char)); // 请求存储空间 //设置检查点
web_reg_find("Text=\"code\":\"00\"","SaveCount=c00",LAST);
web_reg_find("Text=\"code\":\"8016\"","SaveCount=c8016",LAST);
web_reg_find("Text=\"code\":\"8017\"","SaveCount=c8017",LAST);
//web_reg_find("Text=\"code\":\"8001\"",LAST); //获取response响应信息
//web_reg_save_param("response","LB=","RB=",LAST); lr_start_transaction("payPause");
web_custom_request("activityHandler",
"URL=http://127.0.0.1:8081/payPause",
"Method=POST",
"Resource=0",
"RecContentType=application/json",
"Referer=",
"Mode=HTTP",
"EncType=application/json",
"Body={\"tokenId\":\"{tokenId}\",\"cardNo\":\"62010101{userAccount}\"}",
LAST); res = atoi(lr_eval_string("{c00}"))+atoi(lr_eval_string("{c8016}"))+atoi(lr_eval_string("{c8017}")); //下面四行是调试信息,int和string需要互转
//sprintf(string_res,"%d",res); //int转string
//lr_output_message("string_res = %s",string_res);
//int_res = atoi(string_res); //string转int,其实这里不需要转了,因为res已经是int,这里只是再次体现string如何转int
//lr_output_message("int_res = %d",int_res); if (res > 0){
//lr_output_message("事务成功");
lr_end_transaction("payPause",LR_PASS);
} else{
//lr_error_message("事务失败");
lr_end_transaction("payPause",LR_FAIL);
} //lr_convert_string_encoding(lr_eval_string("{response}"),LR_ENC_UTF8,"GBK","result");
//输出response响应信息
//lr_output_message( "返回response响应信息:%s",lr_eval_string("{result}")); //lr_end_transaction("payPause", LR_AUTO); return 0;
}
vuser_end
vuser_end()
{
return 0;
}
loadrunner断言多结果返回的更多相关文章
- loadrunner关联——对服务器返回的数据选择性提交
在跟进项目的过程中,才体会到自己之前闷头看书再写小小的测试程序验证的学习方式很没有效率,知道动态关联,却也只是会参数化式的动态关联,这种关联是我们预先知道要提交的数据而进行的关联:更高一级的可能就是使 ...
- LoadRunner断言:正确结果有多种情况
用过lr的都知道,我们可以用web_reg_find这个注册函数判断某个请求的返回中是否有我们要找的内容. 但是,如果正常的情况有多种,该如何断言呢? 设置多个检查点 把每个检查点获取到的结果数量相加 ...
- 【Jmeter测试】如何使用BeanShell断言判断请求返回的Json相应结果
脚本结构上图中,queryMaterialApiDTOListByPkIds是返回Json格式响应结果的请求,然后添加BeanShell断言详细判断Json结果中的值是否正确. Json格式的相 ...
- 使用BeanShell断言判断请求返回的Json相应结果(不同json格式整理)
第一种json格式 { "code": 0, "msg": "success", "success": true, &q ...
- loadrunner 怎么能得到返回的http状态?
loadrunner如何保存从服务器传回来的http头的信息? Action() { int HttpRetCode; web_url("www.hao123.com", &quo ...
- loadrunner怎么打印接口返回的参数
//首先使用web_reg_save_param方法保存服务器返回的参数,如下: web_reg_save_param ("S_respond","LB=",& ...
- jmeter(八)断言
jmeter中有个元件叫做断言(Assertion),它的作用和loadrunner中的检查点类似: 用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致. 使用断言 ...
- Jmeter(四)-断言/检查点
断言就类似LoadRunner中的检查点.对上一个请求返回的信息,做字符串.数据包大小.HTML.XML.图片等做判断,确保返回的信息的准确性. 添加响应断言:欢迎您 如果登陆页登陆成功,则后台会返回 ...
- jmeter - 断言
jmeter中有个元件叫做断言(Assertion),它的作用和loadrunner中的检查点类似: 用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致. 使用断言 ...
随机推荐
- .net core 使用MD5加密解密字符串
/// <summary> /// 加密 /// </summary> /// <param name="Text">要加密的文本</pa ...
- Spring入门(三):通过JavaConfig装配bean
上一篇博客中,我们讲解了使用组件扫描和自动装配实现自动化装配bean,这也是最好的使用方式. 但是某些场景下,我们可能无法使用自动装配的功能,此时就不得不显式的配置bean. 比如我们引用了一个第三方 ...
- mysql 设置自增主键id的起始值
修改user表,主键自增从20000开始 alter table user AUTO_INCREMENT=20000;
- PHP+nginx 启动后访问超时
场景 在Windows上, nginx配置并启动后, 访问报504超时 解决 很尴尬, php-cgi没启动 php-cgi -b
- EF时,数据库字段和实体类不一致问题
场景:由于一些原因,实体中属性比数据库中字段多了一个startPage属性.PS:controllers中用实体类去接收参数,但是传入的参数比数据库中实体表多了一个字段, 这种情况下,应该建一个vie ...
- socket通信如何处理每次包长度不定问题
说起来,这是一个漫长的问题: 客户端和服务器通信的结构是:包头+数据长度+数据 客户端请求服务器发送200包数据.包头=request:长度=4(一个int),数据=200: 服务器在收到客户端的请求 ...
- mysql(mariadb)主从配置
环境: 内核版本:uname -r 系统版本:cat /etc/redhat-release
- Windows Server(r12) - 配置 MySQL 远程访问
Windows Server(r12) - 配置 MySQL 远程访问 工作主要为两部分, 一部分是 Windows 防火墙, 一部分是 MySQL 自身 Windows 端口远程访问 其实就是在 W ...
- .Net Core 在Linux服务器下部署程序--(4). 前端ReactWeb应用部署
确认第二步中的软件已经安装完成 Nodejs前端Web服务器 Zip与UnZip压缩包软禁 nrm前端包源管理器 PM2前端Web程序守护进程 创建部署文件夹 如果已经执行过( 3. 租户平台后端程序 ...
- Ubuntu 16.04 安装Google 浏览器
Ubuntu安装好后,自带Firefox浏览器,有时我们需要再安装几个浏览器,那么Google Chrome,就是首选, 安装如下: 下载浏览器安装包, 下载链接:https://dl.google. ...