事务
测试人员可以将一个或多个操作步骤定义为一个事务,
可以通俗的理解为“人为定义的一系列请求(请求可以是一个或者多个)”
在程序上,事务表现为被开始标记和结束标记圈定的一段代码区块。
Loadrunner根据事务的开头和结尾标记,计算事务的响应时间、成功/失败的事务数
int a;
开始事务:lr_start_transaction(“login”);
结束事务:lr_end_transaction(“login”,LR_AUTO);
LR_AUTO判断的是服务器的返回状态码,而没有判断该业务是否成功
LR_AUTO的实现方式:
a=web_get_int_property(HTTP_INFO_RETURN_CODE);
if(a==200){
lr_end_transaction(“login”,LR_PASS);
}else{
lr_end_transaction(“login”,LR_FALL);
}
手工判断事务状态
可以通过添加检查点的方式来验证业务是否成功,如果存在要检查的内容那么就给一状态LR_PASS,否则给LR_FALL
检查点函数:web_reg_find()—带有reg的为注册型函数,特点:如果某一请求的响应数据中有想要的数据,那么就将该函数放在该请求前面
web_reg_find(“Search=ALL”,“SaveCount=number”,“Text=Welcome,xxxx”,LAST);
text的数据要在抓包工具里面抓,number是一个变量存次数,all是查找范围
if(atoi(lr_eval_string("{number}"))>0){
lr_end_transaction(“login”,LR_PASS);
}else{
lr_end_transaction(“login”,LR_FALL);
}
事务时间:函数自身、Think Time、Wasted Time、响应时间
响应时间—浏览器服务器
通过web_find函数检查内容是否存在
直接把网页上的内容复制过去,不用抓包,必须启用iamge and text checks图片和文本检查项,不能使用事务
图片检查点—web_image_check函数
填写alt属性、src属性
web_find和web_reg_find的区别
1.这两个函数类型不同,web_find是普通函数,web_reg_find是注册函数
2.web_find使用时必须开启内容检查项,而web_reg_find没有此限制
3.web_find只能用在基于HTML模式录制脚本中,而web_reg_find没有此限制
4.web_find是在返回的页面中进行内容查找,web_reg_find是在响应中进行查找
5.web_find在执行效率上不如web_reg_find
思考时间:
更加真实模拟用户发出请求之间的延迟,也就是用户暂停发请求的时间
函数:lr_think_time(秒数);
注意:
1.实际情况下,获取真实场景的系统的性能指标时一般加入思考时间(1-2s);如果是做压力测试获取系统的峰值指标时,一般忽略思考时间
2.一般情况下,思考时间函数不要放入事务内,以免后期影响计算事务响应时间
集合点—放在事务的外面
设集合点就是为了更好模拟并发操作,设了集合点后运行过程中多个用户可以在集合点等待一定条件后再一起发后续的请求
设置策略:
Controller—scenario—Rendezvous—policy
1.当x%的全部用户到达集合点时,开始释放
2.当x%的正在运行的用户到达集合点时,开始释放
3.当x个用户到达集合点时,开始释放
限制模拟用户之间的超时时间为xxS(秒)