脚本调试之事务、参数化、集合点、检查点

上一篇 / 下一篇  2013-04-20 15:50:03 / 个人分类:工具详解

针对网校,做了100用户登录并搜索 + 400游客直接搜索的脚本。

一、添加事务:
脚本A:用户登录并搜索;(事务:登录+搜索)
脚本B:不登陆直接搜索。(事务:搜索)

注意点:
1、思考时间放在事务开始之前。
否则在回放思考时间设置被允许的情况下,思考时间将被算入事务的执行时间,从而影响了对事务正确的执行时间的分析和统计。

2、事务必须是成对出现,即:一个事务有事务开始必然要求也有事务结束。 

3、事务结束函数共包括两个参数,第一个参数是事务的名称,第二个参数是事务的状态。事务状态可以为:
LR_PASS:返回“Succeed”返回代码 ;
LR_FAIL:返回“Fail”返回代码 ;
LR_STOP:返回“Stop”返回代码 ;
LR_AUTO:自动返回检测到的状态。 

二、参数化:
对用户名密码进行参数化,需要注意和虚拟用户的区别~

三、集合点:
脚本A和脚本B在搜索时需要添加集合点:
lr_rendezvous("chaxunkecheng"); 
并且集合点名称需要保持一致,来实现多个脚本同时并发的效果!

四、检查点:
注意web_reg_find函数和web_find函数的区别!

1、这两个函数类型不同,web_find是普通函数,web_reg_find是注册函数;

2、这两种函数在运行机制不同,当客户端向服务器发出一个请求的时候,服务器进行响应;当响应的数据在缓存中的时候,注册函数可以在缓存中查找所要查找的内容;而普通函数(例如:web_find)需要等我们请求的显示页面完全显示出来后,从这个显示页面中进行查找制定的字符串内容
3、web_find使用时必须开启内容检查选项,而web_reg_find则没有此限制
4、web_find只能只用在基于HTML模式录制的脚本中,而web_reg_find没有此限制
5、web_find是在返回的页面中进行内容查找,web_reg_find是在缓存中进行查找
6、web_find在执行效率上不如web_reg_find

常用web_reg_find函数!~

如:

web_reg_find("Fail=NotFound",

    "Search=Body",  // 定义查找范围

    "SaveCount=loginst",  // 定义查找计数的变量名称

    "Text={username}",  // 定义查找内容

     LAST);  

运行时报错:Error -26366 : Text={username} not found。。。

改成:

web_reg_find("Search=Body",

    "SaveCount=loginst",

    "Text={username}",

     LAST);  


lr_output_message("loginst=%s",lr_eval_string("{loginst}"));

if(atoi(lr_eval_string("{loginst}"))>0)   // 判断要查找的字符出现次数

        lr_end_transaction("login", LR_PASS);

else

        lr_end_transaction("login", LR_FAIL);  

结果:loginst = 1,表示查找到了。事务PASS。
这里也比较晕! 

注意:
1、web_reg_find放置的位置!web_reg_find是注册函数,放在显示页面请求之前~
通常情况下写在如下六个函数之前:

web_castom_request();
web_image();
web_link();
web_submit_data();
web_submit_form();
web_url();

2、脚本通过和事务Pass是两回事。

TAG:

 

评分:0

我来说两句

Open Toolbar