51Testing软件测试论坛
标题:
LoadRunner场景执行时的用户数和事务数是怎么统计的?
[打印本页]
作者:
qicyt1812
时间:
2008-11-17 15:55
标题:
LoadRunner场景执行时的用户数和事务数是怎么统计的?
LoadRunner场景执行的时候对并发用户数和成功失败的事务数是怎么统计的,我发觉现在越来越糊涂了:
场景设计:
1、录制一个 登录 的脚本,创建一个检查点,如果登录失败,会重新登录,否则继续执行,
2、准备500个用户名参数,参数选择方式用Unique+Once
3、400个用户并发在场景中登录
4、在runtime-setting中设置:如果遇到错误继续执行
根据上面的设置在脚本(VuGen)中用断点调试的时候,if...else...语句是能够正常执行的
vuser_init(){
web_reg_find("Text=Hello",
"SaveCount=hello_count",
"Search=body",
LAST);
lr_start_transaction("login_trans");
web_submit_data("login",
"Action=http://www.test.cn:18000/login",
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://www.test.cn/proxy.html?1226893532179",
"Snapshot=t3.inf",
"Mode=HTML",
ITEMDATA,
"Name=username", "Value={username}", ENDITEM,
"Name=password", "Value=test", ENDITEM,
LAST);
lr_end_transaction("login_trans", LR_AUTO);
if(atoi(lr_eval_string("{hello_count}"))==0){
lr_log_message("=========%s login failed,execute if =======",lr_eval_string("{username}"));
lr_start_transaction("login_trans");
web_submit_data("login",
"Action=http://www.test.cn/login",
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://www.test.cn/proxy.html?1226893532179",
"Snapshot=t3.inf",
"Mode=HTML",
ITEMDATA,
"Name=username", "Value={username}", ENDITEM,
"Name=password", "Value=test", ENDITEM,
LAST);
lr_end_transaction("login_trans", LR_AUTO);
}else{
web_url("changeState",
"URL=http://www.test.cn/ImBill/changeState?bID={WCSParam_Text1}&state=Online&1226893545992",
"TargetFrame=",
"Resource=0",
"Referer=http://www.test.cn/proxy.html?1226893532179",
"Mode=HTML",
LAST);
}
return 0;
}
疑问:
1、个人认为做了上述的条件限制以后,应该所有的用户都会登录成功,但是为什么还会有失败的用户呢?这个会不会跟服务器返回500错误有关?
2、login_trans这个事务是如何做统计的,如果做了上述的条件限制后,login_trans至少应该是500次吧,但是统计的结果好像不准确,如何知道这个事务是否真的成功了呢?
3、LoadRunner场景执行的时候对并发用户数和成功失败的事务数是怎么统计的?
4、我看到在场景执行的时候Run状态的用户是500个,可是接近场景结束的时候,却有很多的用户是Failed的,这是什么原因呢?
[
本帖最后由 qicyt1812 于 2008-11-18 11:52 编辑
]
作者:
archonwang
时间:
2008-11-17 16:34
问下系统是否支持单点登陆?
作者:
qicyt1812
时间:
2008-11-18 11:26
是的,支持单点登录
作者:
qicyt1812
时间:
2008-11-18 11:26
一个用户登录后,如果再用这个用户在别的地方登录,原来登录的用户就会掉线的
作者:
archonwang
时间:
2008-11-18 12:47
我感觉你在设计这个场景的时候,需要考虑以下几个问题
1. 单点登陆意味着用户不能重复登陆,所以脚本中的用户登陆事务应该最多只能进行500次——除非有退出处理。
2. http:500错误应是内部服务器异常,请检查服务器日志
3. no match found for... 感觉是参数化错误。
作者:
qicyt1812
时间:
2008-11-18 13:08
1、我是想如果这个用户登录失败,就重新登录,应该跟单点登录没有关系吧?我在VuGen中用断点调试的时候,if...else...语句是正常执行的呢。但是在场景中就出问题了,所以觉得很纳闷呢
2、500是服务器返回了internal error呢,可能是同时有400个用户服务器响应不过来吧
3、no match found for... 这个是从response中做自动关联参数化的,如果执行100个用户就全部正常通过,执行多了的话就会出很多这个错误,因为我做了判断,所以我在想出错了说明他需要重新登录一次,应该是执行if语句了吧
搞不懂了呢,恶魔の光华 版主能否给一些比较具体的设计思路呢,期待ing
作者:
whyleave
时间:
2008-11-18 13:36
如果你第一次登陆不成功,LR报错,虽然你选择了遇到错误继续执行,但最终该用户还是被认为是fail的。
作者:
qicyt1812
时间:
2008-11-18 15:10
那如果我希望用户登录失败后重新登录,应该怎么处理呢?我希望保证我执行的所有并发用户都能够成功登录,目的就是这样的
作者:
whyleave
时间:
2008-11-18 15:33
不用检查点,换成用关联函数从服务器返回信息中取值来判断是否登陆成功。
因为检查点如果找不到信息就会报错,而关联函数可以将未找到信息设置成警告。
作者:
qicyt1812
时间:
2008-11-18 15:44
我是用检查点和从服务器返回的信息同时做的条件啊,而且在VuGen中调试也能通过,就是在场景中执行的时候感觉不正确
作者:
ym_wei
时间:
2010-12-6 16:50
学习了
作者:
zhanghongyas
时间:
2010-12-7 15:51
学习
作者:
yanxiudeng
时间:
2011-2-14 11:33
开始学习中.
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2