一、需求
使用Loadrunner压测目标接口,要求支持1000并发数。
目标接口:https://www.xxx.com/digitaldata/api/signer/1.0/signerRegist
返回结果:结果返回中code的值为1则为保存成功,为4001则为参数异常,为0时则是保存异常。
执行设备:Win10(教育版),Loadrunner11破解中文版
二、 概述
使用Loadrunner进行压力测试一般分为3步,第一是创建/编辑脚本,第二是运行负载测试,第三是分析测试结果。
三、 创建/编辑脚本
点击“创建/编辑脚本”,打开HP Virtual User Generator窗口。点击“新建脚本”或者打开已有的脚本
选择协议类型,这里选择Web(HTTP/HTML)类型,新建一个脚本。
点击“创建”后,会出现录制的对话框。因我们是提交请求给接口,再接受返回值即可。因此无需录制,我们手动添加脚本即可。
接下来我们在Action里面添加脚本,内容为:
Action()
{
web_reg_save_param("return_code",
"LB=\"code\":",
"RB=,",
LAST);
lr_start_transaction("发送请求事务");
web_submit_data("web_submit_data",
"Action=https://www.xxxx.com/digitaldata/api/signer/1.0/signerRegist",
"Method=POST",
"TargetFrame=",
"Referer=",
"RecContentType=application/json",
ITEMDATA,
"Name=signerName", "Value=xx", ENDITEM,
"Name=signerType", "Value=个人", ENDITEM,
"Name=country", "Value=cn", ENDITEM,
"Name=organization", "Value=xxx", ENDITEM,
"Name=organizationUnit", "Value=xxx", ENDITEM,
"Name=signerIDType", "Value=身份证", ENDITEM,
"Name=signerIDNo", "Value=xxx", ENDITEM,
LAST);
lr_end_transaction("发送请求事务", LR_AUTO);
if (atoi(lr_eval_string("{return_code}"))==1){
lr_output_message("操作成功");
}
else{
lr_output_message(lr_eval_string("{return_code}"));
}
return 0;
}
脚本的简单解释:
web_reg_save_param:主要是获取返回值中某些符合规则的值。
lr_start_transaction("发送请求事务"):是添加一条名为“发送请求事务”名称的事务,便于统计,与lr_end_transaction("发送请求事务", LR_AUTO); 配合使用。
web_submit_data:向接口提交数据,格式类似于键值对。
【注:如需在某个时间点达到1000的并发,需要设置集合点】
脚本编写完成后进行保存,保存后点击“运行”。
我们在条件判断中设定了如果返回值为1,则显示操作成功。由图可知,结果显示为操作成功,则说明我们编写的脚本正确且接口返回了正确的值。
四、 设置场景运行负载测试
点击“运行负载测试”,在弹出的页面选择可用脚本,如果没有则点击文件夹图标打开已有的脚本。
设置场景计划,双击全局计划中的操作可进行设置,双击“启动Vuser”来设置虚拟用户的总数。同理设置“停止Vuser”。
另外还需要设置Load Generator为localhost,不然会报错执行不了,报错为提示你 脚本是否可以执行
点击运行即可开始设置的场景,运行的过程可在运行的tab页中查看。
五、 查看分析结果
在运行界面的结果菜单中点击,结果——分析结果,可自动生成分析结果。
点击页面中的“报告”——“报告模板”——生成报告可生成一定模板的压测报告。