性能测试loadrunner
Posted hally
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能测试loadrunner相关的知识,希望对你有一定的参考价值。
一,脚本增强
参数化:为什么要做参数化?(简单点说就是1,模拟不同的数据,2,模拟不同的用户)
专业角度讲:被业务场景所迫:所有的用户都输入相同的数据,不能体现出真实的业务环境
被系统体系所迫:存在缓存,不能体现出真正的性能
被系统业务约束所迫:有些系统禁止一个用户多次登录的系统,也就是严重到无法测试的地步了
用户在录制脚本操作系统的过程中输入提交的数据,实际运行虚拟多用户的时候为了符合实际业务需要提交不同的值,参数化输入是一种不错的解决方法
掌握参数化的几种方法
如果参数化错误了,不想参数化了,可以选择脚本回滚:在Tools---->Regenerate Script,点击即可,这个是脚本回滚到录制时的初始化脚本
下面是两个随机数和时间参数化的列子:
Action()
{
//随机格式数据
lr_output_message("第一次=======%s",lr_eval_string("{P_num}{P_num1}{P_num2}"));
lr_output_message("第二次=======%s",lr_eval_string("{P_num}{P_num1}{P_num2}"));
lr_output_message("第三次=======%s",lr_eval_string("{P_num}{P_num1}{P_num2}"));
//日期格式数据
lr_output_message("第一次时间%s",lr_eval_string("{P_time}"));
lr_output_message("第二次时间%s",lr_eval_string("{P_time1}"));
return 0;
}
参数化取值方式:
顺序取值
随机取值
唯一取值
Select next row 选项: Sequential 按照顺序,每一个虚拟用户都会按照相同的顺序读取。
Random 在每次循环里随机的读取一个 Unique 唯一的数。注意:使用该类型必须注意数据表有足够多的数。
Same Line As 某个参数(比如Username):和前面定义的参数取同行的值
Update value on 选项: each iteration 每次迭代(循环)都要取新值 each occurrence 只要发现该参数就要重新取值,也就是如果一个action中有多个该参数,每遇到一个就要重新取一个值 Once 在所有的反复中都使用同一个值
When out of values 选项: Abort vuser 数据不够时退出执行,用户停止。
Continue in a cyclic manner 数据不够时,重新开始从第一个参数取值循环利用
Continue with last value 数据不够时取最后一个参数值。
Allocate Vuser values in the Controller 选项: Automatically allocate block size 系统根据迭代次数自动分配参数块 Allocate XX values for each Vuser 为每个用户分配XX条数据
二,关联:为什么要做关联?
关联:取得响应返回的值,当后面的请求需要这个值的时候,且这个值是变化的,就可以使用关联
常见的关联场景:1,cookie,session,token------认证信息,2,删除订单,再次删除订单号不存在
关联函数的位置,关联函数如何写
通过手工去查找需要关联的数据,手动编写脚本完成的关联
录制两份相同操作的脚本----》通过WinDiff工具比较两份脚本----》web_reg_save_param函数手动建立关联
WinDiff工具为Loadrunner自带工具,也可以使用Uedit比较,目的就是找出两次录制过程中变化的值
web_reg_save_param语法:
int web_reg_save_param(const char * ParamName,<list of Attributes>,LAST);
注意:关联完成后需要用关联定义的参数名称{ParamName}去替换脚本中所有需要此关联的参数值
web_reg_save_param("outFlightVal",//参数名称
“LB=outboundFlight value=”," RB=>",//参数左右边界,该属性必须有,并且区分大小写。
“ORD=ALL”,//查询参数位置的序号,当ORD=1时,只匹配第一个出现的参数,当ORD=ALL时,所有匹配保存到一个数组,可以用outFlightVal_1,outFlightVal_2,....把所有匹配的数据取出
“RelFrameID=ALL”,//相对于所有请求URL的html页面的层级,可能的值是ALL或者数字,all会查找本url下所有的HTML页面,默认是查找最后一个页面
“Notfound=error”,//没有找到关联参数时报错类型,默认为error,可以指定是error或者warning,warning一般在不想出现错误提示且脚本想继续执行时会用到
“Savelen=18”.//参数字符串长度
“SaveOffset=0”,//从查到参数的第几个字符开始保存参数,默认是0
“Search=ALL”,//搜索参数的范围,可以是Header,Body,NoResouce,
ALL(缺省)。
LAST);//参数属性列表结束
一般关联函数放到获取值的请求的上面,不能放到下面
以上是关于性能测试loadrunner的主要内容,如果未能解决你的问题,请参考以下文章
LoadRunner 性能测试总结,LoadRunner 性能测试实例