检查点问题(已解决)
经过检查,发现问题所在。conut找不到的原因在于未对登录用户的动态值进行关联!刚玩LR,自己录了下自带的网站登录脚本,在加入检查点后,为什么我这里的count数量不会加上去,查看日志一直显示0!预期结果应该是第一个登录成功,第二个用户登录失败!
还请各位帮我看看~小弟在此多谢了!:handshake
这个是我录制的脚本:
Action()
{
lr_start_transaction("用户登录");
lr_rendezvous("点击登录");
web_reg_find("Text=jojo",
"SaveCount=count",
"Search=Body",
LAST);
web_submit_data("login.pl",
"Action=http://localhost:1080/WebTours/login.pl",
"Method=POST",
"RecContentType=text/html",
"Referer=http://localhost:1080/WebTours/nav.pl?in=home",
"Snapshot=t2.inf",
"Mode=HTML",
ITEMDATA,
"Name=username", "Value={username}", ENDITEM,
"Name=password", "Value=bean", ENDITEM,
"Name=JSFormSubmit", "Value=off", ENDITEM,
"Name=login.x", "Value=33", ENDITEM,
"Name=login.y", "Value=10", ENDITEM,
LAST);
lr_end_transaction("用户登录", LR_AUTO);
lr_log_message("用户名:%s", lr_eval_string("{username}"));
if (atoi(lr_eval_string("{count}"),0) == 0)
lr_log_message("登录失败");
else
lr_log_message("登录成功");
return 0;
}
这个是回放日志:
Running Vuser...
Starting iteration 1.
Warning -27077: The "vuser_init" section contains web function(s) when the "Simulate a new user on each iteration" Run-Time Setting is ON.This may produce unpredictable results with multiple iterations
Starting action Action.
Action.c(4): Notify: Transaction "用户登录" started.
Action.c(6): Rendezvous 点击登录
Action.c(8): Registering web_reg_find was successful
Action.c(12): Notify: Parameter Substitution: parameter "username" ="jojo"
Action.c(12): Registered web_reg_find successful for "Text=jojo"
Action.c(12): Notify: Saving Parameter "count = 0"
Action.c(12): web_submit_data("login.pl") was successful, 741 body bytes, 225 header bytes
Action.c(27): Notify: Transaction "用户登录" ended with "Pass" status (Duration: 0.9780 Wasted Time: 0.0000).
Action.c(29): Notify: Parameter Substitution: parameter "username" ="jojo"
用户名:jojo
Action.c(31): Notify: Parameter Substitution: parameter "count" ="0"
登录失败
Ending action Action.
Ending iteration 1.
Starting iteration 2.
Notify: Next row for parameter username = 2 .
Notify: Getting new value for parameter 'username': table = 'username.dat' column = '0' row = '2'.
Starting action Action.
Action.c(4): Notify: Transaction "用户登录" started.
Action.c(6): Rendezvous 点击登录
Action.c(8): Registering web_reg_find was successful
Action.c(12): Notify: Parameter Substitution: parameter "username" ="222222"
Action.c(12): Registered web_reg_find successful for "Text=jojo"
Action.c(12): Notify: Saving Parameter "count = 0"
Action.c(12): web_submit_data("login.pl") was successful, 741 body bytes, 225 header bytes
Action.c(27): Notify: Transaction "用户登录" ended with "Pass" status (Duration: 0.9621 Wasted Time: 0.0000).
Action.c(29): Notify: Parameter Substitution: parameter "username" ="222222"
用户名:222222
Action.c(31): Notify: Parameter Substitution: parameter "count" ="0"
登录失败
Ending action Action.
Ending iteration 2.
Ending Vuser...
[ 本帖最后由 Tesherlock 于 2009-2-22 15:22 编辑 ] 兄弟你太有才了。这个问题都发现了。我刚试验了下
如果
web_reg_find("Text=jojo",
"SaveCount=count",
"Search=Body",
LAST);
这里面的文字被不能被检查到,比如随便填gogoogo,
或者页面只有一个被检测到,比如你代码里面的jojo。
count转换后的值都是0
如果页面有两个被检测到,比如你设置成to,这个时候count转换后的值就是1
算不算bug还是??
应该是你插入检查点的位置不对
应该是你插入检查点的位置不对 应该是登陆之后检查用户名回复 2# 的帖子
够郁闷的,按照帮助文档里面的例子,也一样~count数就是不会加上去,你说的多个重复to会变1,我试试看,挑个页面上出现最多的单词看看~难道count数不会累加?回复 3# 的帖子
web_reg_find属于注册函数,必须放在响应页面之前的。在说放在后面也试过的。:Q 不会累加。他的意思是单次查找到的个数
不是你所谓的迭代一次就加一
他是页面上面有几个,就显示多少个。你迭代多少次都和那个没关系 按提示的错误就是在 你迭带过程中 出现初始化错误,具体嘛:lol ,自己找:lol web_reg_find("Text=jojo",
"SaveCount=count",
"Search=Body",
LAST);
改成
web_reg_find("Text="{username}",
"SaveCount=count",
"Search=Body",
LAST);
count值应该为1,每次页面只能找到一个这个值
回复 7# 的帖子
哈哈,谢谢love_yebin兄弟。已经知道原因了!:lol 我还是没看明白原因方便把完整代码传上来吗
页:
[1]