51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 7529|回复: 12
打印 上一主题 下一主题

[原创] LoadRunner场景执行时的用户数和事务数是怎么统计的?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-11-17 15:55:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2018-2-28 18:04
  • 签到天数: 40 天

    连续签到: 1 天

    [LV.5]测试团长

    2#
    发表于 2008-11-17 16:34:04 | 只看该作者
    问下系统是否支持单点登陆?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2008-11-18 11:26:09 | 只看该作者
    是的,支持单点登录
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2008-11-18 11:26:57 | 只看该作者
    一个用户登录后,如果再用这个用户在别的地方登录,原来登录的用户就会掉线的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-2-28 18:04
  • 签到天数: 40 天

    连续签到: 1 天

    [LV.5]测试团长

    5#
    发表于 2008-11-18 12:47:54 | 只看该作者
    我感觉你在设计这个场景的时候,需要考虑以下几个问题
    1. 单点登陆意味着用户不能重复登陆,所以脚本中的用户登陆事务应该最多只能进行500次——除非有退出处理。
    2. http:500错误应是内部服务器异常,请检查服务器日志
    3. no match found for... 感觉是参数化错误。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2008-11-18 13:08:57 | 只看该作者
    1、我是想如果这个用户登录失败,就重新登录,应该跟单点登录没有关系吧?我在VuGen中用断点调试的时候,if...else...语句是正常执行的呢。但是在场景中就出问题了,所以觉得很纳闷呢

    2、500是服务器返回了internal error呢,可能是同时有400个用户服务器响应不过来吧

    3、no match found for... 这个是从response中做自动关联参数化的,如果执行100个用户就全部正常通过,执行多了的话就会出很多这个错误,因为我做了判断,所以我在想出错了说明他需要重新登录一次,应该是执行if语句了吧

    搞不懂了呢,恶魔の光华 版主能否给一些比较具体的设计思路呢,期待ing
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2008-11-18 13:36:16 | 只看该作者
    如果你第一次登陆不成功,LR报错,虽然你选择了遇到错误继续执行,但最终该用户还是被认为是fail的。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2008-11-18 15:10:13 | 只看该作者
    那如果我希望用户登录失败后重新登录,应该怎么处理呢?我希望保证我执行的所有并发用户都能够成功登录,目的就是这样的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2008-11-18 15:33:06 | 只看该作者
    不用检查点,换成用关联函数从服务器返回信息中取值来判断是否登陆成功。
    因为检查点如果找不到信息就会报错,而关联函数可以将未找到信息设置成警告。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2008-11-18 15:44:49 | 只看该作者
    我是用检查点和从服务器返回的信息同时做的条件啊,而且在VuGen中调试也能通过,就是在场景中执行的时候感觉不正确
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2010-12-6 16:50:31 | 只看该作者
    学习了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2010-12-7 15:51:21 | 只看该作者
    学习
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2011-2-14 11:33:30 | 只看该作者
    开始学习中.
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-14 21:06 , Processed in 0.090360 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表