一、脚本创建关联和插入检查点
脚本录制完成后,首先需运行脚本回放,验证是否可回放成功,然后找出各事务请求中的关联点!
如本例子中,录制的场景为:打开综合窗口收件-->查询事项-->窗口登记-->选择申请人-->保存办件-->选择意见-->下一步出件!完成以上场景后,会在【综合窗口出件】页面产生一条签收结果为“未签收”的办件!
运行脚本后,选择树结构,可查看各请求的请求数据和响应结果!经过分析得出,后续请求用到的controlSeq和handleSeq,是由controlSave.do这个接口产生,因此需要在这里将controlSeq和handleSeq参数值提取,以供后续接口使用!
1、参数提取--->创建关联
(1)选中对应的参数值,鼠标右键选择“创建关联”,在弹窗中点击“是”;
(2)由树结构切回脚本(Script)页面,对应接口请求前有增加了一个提取参数的函数,需修改函数中的左、右边界,拿多一点参数使提取结果更精确!(PS:使用正则表达式进行参数提取,此处不过多描述)
web_reg_save_param_ex( "ParamName=CorrelationParameter_1", "LB="controlSeq":"", "RB="}", SEARCH_FILTERS, "Scope=All", "RequestUrl=*/add.v*", "NotFound=warning", LAST);
以上步骤,完成了controlSeq的参数提取(handleSeq参数同操作),后续的事务请求中用到参数controlSeq时,其对应的值会自动替换为CorrelationParameter_1,如下图:
2、添加文本检查
LoadRunner中的文本检查,相当于Jmeter中的响应断言!
(1)在想要检查的接口请求前后添加图中的查找函数、打印函数,相关代码和解释如下:
1 web_reg_find("Search=Body", #Search用来定义查找范围 2 "SaveCount=count", #SaveCount定义查找计数变量名称,该参数用来记录在缓存中查找内容出现的次数,可以使用该值,来判断要查找的内容是否被找到; 3 "Text=骞夸笢鐪佺�瀛愮�鐞嗘€荤珯", #=后为查找的文本内容 4 LAST); #本例子的含义:在Body中查找内容为“骞夸笢鐪佺�瀛愮�鐞嗘€荤珯”的信息,并将出现次数记录在变量count中 (注意:web_reg_find()需在对应接口请求前定义)
5
6
7 lr_output_message(lr_eval_string("{count}")); #打印变量count的值
(2)将录制时产生的结束事务(对应接口请求所在的事务)的脚本屏蔽,用以下代码替换:
1 if(atoi(lr_eval_string("{count}")) > 0) 2 { 3 lr_end_transaction("综合窗口收件",LR_PASS); 4 lr_output_message("综合窗口收件事务成功!"); 5 } 6 else 7 { 8 lr_end_transaction("综合窗口收件",LR_FAIL); 9 lr_output_message("综合窗口收件事务失败!"); 10 }
#代码含义:将找到的要检查的字符串的个数存到count参数中。 通过判断count的值是否大于0来判断是否找到了所要检查的字符串。
#atoi()函数的作用是将一个ASCII字符串转换为整型
#lr_eval_string()函数作用是取得参数值,将字符串变量中的参数值替换为当前的参数值并将这个字符串返回
对应的文本检查是否找到,可在回放日志中查看打印的日志:若找到文本(count>0),则打印事务成功!(PS:一个事务中可能包含多个请求,选择其中一个代表性的请求添加文本检查,以此来判断事务是否成功即可)
3、验证脚本是否运行成功
前面介绍,完成以上场景后,会在【综合窗口出件】页面产生一条签收结果为“未签收”的办件!
(1)未运行脚本前,查看【综合窗口出件】当前页面有226条办件数据;
(2)运行脚本,再刷新【综合窗口出件】页面,办件数据变为了227条,说明脚本调试成功,正常产生办件数据!
二、运行负载
脚本调试成功后,可选择“工具”-->"创建Controller场景(L)..."打开[创建场景]弹窗,默认“手动场景”,点击“确定”打开场景设计页面;
在场景设计页面,可以看到【创建场景】弹窗中初始化的数据,可双击修改虚拟用户数及负载机;
在“全局计划”中设置启动虚拟用户、持续时间、停止虚拟用户(一般与启动虚拟用户设置一致)后,可点击【场景组】下的运行负载;页签切换到【运行】,如下图:
可以在页签中查看场景状态+运行结果以及一些报表结果。
三、分析结果
负载测试完成后,可点击“结果”-->"分析结果";
打开结果分析页面,会自动载入负载测试时的结果数据;结果分析页面包含报告+图表:
从【概要报告】中可以看出一些我们的测试数据:虚拟用户数、持续时间、事务摘要及平均响应时间等,也可切换头部页签查看具体图表数据,如“平均响应时间”:
通过整合概要报告和相关图表信息,可整理出测试的性能测试报告!!!