一、需求

使用Loadrunner压测目标接口,要求支持1000并发数。

目标接口:https://www.xxx.com/digitaldata/api/signer/1.0/signerRegist

返回结果:结果返回中code的值为1则为保存成功,为4001则为参数异常,为0时则是保存异常。

 执行设备:Win10(教育版),Loadrunner11破解中文版

二、     概述

使用Loadrunner进行压力测试一般分为3步,第一是创建/编辑脚本,第二是运行负载测试,第三是分析测试结果。

 

java 接口 压力测试 接口压力测试脚本_压测

 

 

三、     创建/编辑脚本

点击“创建/编辑脚本”,打开HP Virtual User Generator窗口。点击“新建脚本”或者打开已有的脚本

 

java 接口 压力测试 接口压力测试脚本_虚拟用户_02

 

选择协议类型,这里选择Web(HTTP/HTML)类型,新建一个脚本。

 

java 接口 压力测试 接口压力测试脚本_虚拟用户_03

 

点击“创建”后,会出现录制的对话框。因我们是提交请求给接口,再接受返回值即可。因此无需录制,我们手动添加脚本即可。

 

java 接口 压力测试 接口压力测试脚本_虚拟用户_04

 

接下来我们在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的并发,需要设置集合点】

 

脚本编写完成后进行保存,保存后点击“运行”。

java 接口 压力测试 接口压力测试脚本_压测_05

 

我们在条件判断中设定了如果返回值为1,则显示操作成功。由图可知,结果显示为操作成功,则说明我们编写的脚本正确且接口返回了正确的值。

 

 

 

四、     设置场景运行负载测试

点击“运行负载测试”,在弹出的页面选择可用脚本,如果没有则点击文件夹图标打开已有的脚本。

 

java 接口 压力测试 接口压力测试脚本_压测_06

 

设置场景计划,双击全局计划中的操作可进行设置,双击“启动Vuser”来设置虚拟用户的总数。同理设置“停止Vuser”。

 

java 接口 压力测试 接口压力测试脚本_压测_07

java 接口 压力测试 接口压力测试脚本_压测_08

 

 

另外还需要设置Load Generator为localhost,不然会报错执行不了,报错为提示你 脚本是否可以执行

 

java 接口 压力测试 接口压力测试脚本_java 接口 压力测试_09

java 接口 压力测试 接口压力测试脚本_java 接口 压力测试_10

java 接口 压力测试 接口压力测试脚本_虚拟用户_11

 

 

 

点击运行即可开始设置的场景,运行的过程可在运行的tab页中查看。

 

java 接口 压力测试 接口压力测试脚本_条件判断_12

 

 

五、     查看分析结果

在运行界面的结果菜单中点击,结果——分析结果,可自动生成分析结果。

 

java 接口 压力测试 接口压力测试脚本_条件判断_13

 

点击页面中的“报告”——“报告模板”——生成报告可生成一定模板的压测报告。

 

java 接口 压力测试 接口压力测试脚本_压测_14