51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 18090|回复: 29
打印 上一主题 下一主题

[原创] LoadRunner模拟100个不同用户登录,这100个用户是如何和数据库进行交互?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-6-16 09:52:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一直不明白LoadRnner是如何和数据库进行交互的,我在测试时,发现我的脚本错误的用户名和密码,都能正常执行。在负载的时候也能正常运行,明明是错误的用户名和密码为什么还能模拟出很多个用户同时登录,都能Pass。不明白为什么?loadruner的工作原理是什么呢?
我怎么总觉得用loadruner测试有很多不确定的因素。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-6-16 10:24:00 | 只看该作者
有道理值得提出疑问
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-6-16 10:28:23 | 只看该作者
我也遇到过,疑惑!不解!
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-6-16 10:35:31 | 只看该作者
你有没有看到你的日志里有warning的信息?你有没有看到你回放时的reponse?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-6-16 10:36:12 | 只看该作者
LR并不判断业务逻辑的正确性。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-6-16 10:43:28 | 只看该作者
事务是否执行成功,是根据服务器是否有正确的回应,而与业务逻辑本身没有关系
比如说测试登录
参数化登录脚本后,第一组用户名、密码是正确的,第二组是错误的,在回放脚本时,每个事物的状态都是PASS,而实际第二次登陆是失败的,loadrunner在判断是否成功时是根据发出的请求是否得到服务器的回应,哪怕是错误的回应,loadrunner也认为事物是通过的,除非请求没有相应!
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-6-16 11:12:02 | 只看该作者
做个检查点就知道是否成功了,或者查看response,返回值是什么就知道了,再或者输出一个返回值看看
int i=0;
i=web_submit_data("login.pl",
                "Action=http://127.0.0.1:2080/mercuryWebTours/login.pl",
                "Method=POST",
                "TargetFrame=body",
                "RecContentType=text/html",
                "Referer=http://127.0.0.1:2080/mercuryWebTours/nav.pl?in=home",
                "Snapshot=t2.inf",
                "Mode=HTML",
                ITEMDATA,
                "Name=userSession", "Value={WCSParam_Diff1}", ENDITEM,
                "Name=username", "Value={username}", ENDITEM,
                "Name=password", "Value=tester1", ENDITEM,
                "Name=JSFormSubmit", "Value=off", ENDITEM,
                "Name=login.x", "Value=17", ENDITEM,
                "Name=login.y", "Value=4", ENDITEM,
                LAST);

lr_output_message("===返回值:%d==",i);

如果i=0表示成功,i=1则表示失败了

再或者:
int httpcode=0;
web_submit_data("login.pl",
                "Action=http://127.0.0.1:2080/mercuryWebTours/login.pl",
                "Method=POST",
                "TargetFrame=body",
                "RecContentType=text/html",
                "Referer=http://127.0.0.1:2080/mercuryWebTours/nav.pl?in=home",
                "Snapshot=t2.inf",
                "Mode=HTML",
                ITEMDATA,
                "Name=userSession", "Value={WCSParam_Diff1}", ENDITEM,
                "Name=username", "Value={username}", ENDITEM,
                "Name=password", "Value=tester1", ENDITEM,
                "Name=JSFormSubmit", "Value=off", ENDITEM,
                "Name=login.x", "Value=17", ENDITEM,
                "Name=login.y", "Value=4", ENDITEM,
                LAST);
   httpCode = web_get_int_property(HTTP_INFO_RETURN_CODE); //紧随web_submit_data()函数后面,获取该函数的http返回值
   
   lr_output_message("===httpcode返回值:%d==",httpCode );

如果返回200,则表示通过,返回其他的,可根据具体返回值的意思来判定。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-6-16 11:17:52 | 只看该作者
tooles->General Options->display->show browser during display勾选上,就可以看到回放过程中到底成功还是失败了
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-6-16 11:39:06 | 只看该作者

kding

正在学习,顶了
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2008-6-16 11:39:40 | 只看该作者

回复 5# 的帖子

恩,是的。LR并不判断业务逻辑的正确性。可是要确定服务器的性能,必须确定多少个用户可以同时访问该系统。要比较真实的模拟很多用户同时访问该系统,就必须让不同的用户成功登录。而不是简单的一个请求一个响应
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2008-6-16 11:45:35 | 只看该作者

回复 6# 的帖子

那仅仅靠通过事务的通过率,能判断服务器的性能吗?
可是这些事务它只是通过了,并不表明就是正确的呀。要模拟的是用户的真实操作,这里面有错误的数据算是真实的吗
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2008-6-16 11:55:33 | 只看该作者

回复 6# 的帖子

性能测试 和 业务逻辑 没有关系吗?
性能测试,测试的就是服务器对请求的响应吗,如果服务器有响应那么就算事务通过吗
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2008-6-17 11:23:25 | 只看该作者
应该是正确的响应才算是事务通过吧,服务器的响应也可能有失败的返回,这个时候,事务不符合要求就失败了吧。
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2008-7-16 15:33:19 | 只看该作者
学习了
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2016-4-28 05:52
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]测试营长

    15#
    发表于 2008-7-16 16:11:08 | 只看该作者
    道理一大堆,我得好好消化一下了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2008-11-27 10:43:29 | 只看该作者
    感谢,学习中
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2009-6-18 15:16:04 | 只看该作者

    回复 4# 的帖子

    在吗?能不能帮帮忙啊?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2009-6-18 17:53:40 | 只看该作者
    赞同7#说法,在脚本中添加个检查点来进行一下判断,判断是否真的成功登陆了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2009-6-18 18:11:22 | 只看该作者
    lr是根据服务器返回的http200代码来判断事务的成功的,如果返回的是200则认为是事务通过,(除非你加了脚本判断检查),譬如发一个请求到web服务器,而web服务器再根据请求去数据库中查询,如果这个时候请求未从数据库中查询,那么web服务器可能就会返回一个默认错误页面,但这个返回对于lr来说,http代码也是200,会认为是事务成功的。所以说它只能判断web服务的返回,但不能够判断返回的正确性。通常是需要加上检查点。

    [ 本帖最后由 ttyttt 于 2009-6-18 18:13 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2009-8-13 15:59:21 | 只看该作者
    检查点 怎么加啊
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-19 02:24 , Processed in 0.088952 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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