一、需求
使用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页中查看。
五、 查看分析结果
在运行界面的结果菜单中点击,结果——分析结果,可自动生成分析结果。
点击页面中的“报告”——“报告模板”——生成报告可生成一定模板的压测报告。