51Testing软件测试论坛

标题: 关于用户登录的一个领人相当困惑的问题--希望高手能帮忙解答一下 [打印本页]

作者: guxin6000    时间: 2007-11-14 16:48
标题: 关于用户登录的一个领人相当困惑的问题--希望高手能帮忙解答一下
1. 录制了一个脚本,把登录部分录在init部分,再我把脚本中的登录的用户名与密码设为错误的用户名及密码,但是在进行脚本回放的时候还是可以回放成功,并且未检测到错误,并且用控制器加载后还可以进行测试,未报错
2. 并且如果在进行登录时,有验证码,验证码在脚本中是不变的,但是通过控制器加载后还是在可以进行测试,未报错,但是实际上并没有进行操作,比如脚本中进行了数据操作,但是这样在测试过程中实际上并未在进行数据的操作

上述的问题是loadrunner的缺陷吗????希望有高手帮忙解答一下下,不胜感激~~~~~~~~
作者: pbulic    时间: 2007-11-14 18:24
LR只是发包和收包,而不是决断包的内容.这不是LR的缺陷.
你应该加入相应的判断条件.
作者: wangyh    时间: 2007-11-14 22:18
应该设置检查点吧!
作者: supercleaner    时间: 2007-11-16 11:51
原帖由 wangyh 于 2007-11-14 22:18 发表
应该设置检查点吧!


检查点正式测试时候是影响效果的,净出馊主意。

自己调试好了确定代码运行正确就行了。
2楼回复的很好,1楼的好好理解一下。
作者: pupu840323    时间: 2007-11-16 11:57
怎么我有点不明白了
作者: cherubim    时间: 2007-11-16 12:14
LR其实就是一个中间代理工具.它与服务器之间只进行包信息的交互.
个人是这么理解的
作者: supercleaner    时间: 2007-11-16 13:08
6楼说的完全正确,你申请数据,正常得到返回,即使你在返回页面写个登录不成功。
lr也算你执行成功。
工具就是工具。
作者: bluemoon1999    时间: 2007-11-20 11:01
不明白
从来没遇到过错误密码 还能登陆的问题!
你回放下..如果密码错误还能登陆.就是你的工具有问题..
作者: supercleaner    时间: 2007-11-20 18:36
原帖由 bluemoon1999 于 2007-11-20 11:01 发表
不明白
从来没遇到过错误密码 还能登陆的问题!
你回放下..如果密码错误还能登陆.就是你的工具有问题..


密码错误当然不能登陆,但是返回一个页面lr仍然算做成功。
所以不是工具问题,好好研究一下lr的工作原理,不要误导人家。
by design,not bug。绝不能和你录制的时候返回的一摸一样,否则就太不灵活了,例如参数化查询。。。
作者: TransferForTest    时间: 2007-11-20 23:36
不明白, 不理解. 如果脚本中还有除了登陆之外其它登陆后的后续动作, 怎么能运行成功呢?
不过我试了, 真的能运行通过呢.

[ 本帖最后由 TransferForTest 于 2007-11-20 23:39 编辑 ]
作者: supercleaner    时间: 2007-11-21 11:18
原帖由 TransferForTest 于 2007-11-20 23:36 发表
不明白, 不理解. 如果脚本中还有除了登陆之外其它登陆后的后续动作, 怎么能运行成功呢?
不过我试了, 真的能运行通过呢.

不是说了吗,问题关键的在于你程序的处理方式,如果登录不成功,程序直接给你个404错误,lr肯定算你不成功。
但是这样的界面不友好。
作者: guxin6000    时间: 2007-12-3 20:14
原帖由 supercleaner 于 2007-11-21 11:18 发表

不是说了吗,问题关键的在于你程序的处理方式,如果登录不成功,程序直接给你个404错误,lr肯定算你不成功。
但是这样的界面不友好。

   就算说loadrunner是一个中转站,负责发送各接收包,登录后的操作是要正常登录后才能操作的吧,
那么也就是说登录后脚本里的数据包也是正常登录后才能正常发送与接收,即跟服务正常进行交互,那么既然没有
进行正常的交互,为什么登录后的部分的脚本还能loadrunner里正常运行下去
作者: qiguojie    时间: 2007-12-4 10:01
打开log回放一下,查查提交的值,跟踪一下。

有可能是session不过期,登录成功的用户还是上次的用户,不是新的用户吧?
作者: 423799223    时间: 2007-12-4 10:41
同意6楼的说法
我也遇到过
加检查点就行了  注意检查点一般不建议加地事务中
作者: 板砖    时间: 2007-12-4 10:44
你对LR的原理还不了解.
作者: joetree    时间: 2007-12-4 15:34
原帖由 qiguojie 于 2007-12-4 10:01 发表
打开log回放一下,查查提交的值,跟踪一下。

有可能是session不过期,登录成功的用户还是上次的用户,不是新的用户吧?



我同意小齐说的,很可能还是上次登陆的用户,这个也要看你程序的实现机制.你可以手动试试,先登陆个正确的,再登陆个错误的,然后直接复制连接打开试试
作者: cjp110212    时间: 2010-8-4 16:53
我想你说的意思是:如果登录失败,那么事务应该显示是失败的,你可以添加一个文本检查点,然后手工添加事务,对事务加以判断,可以达到你说的目的。以下是我的代码:
Action()
{

        web_reg_find("Text=Web Tours Error - Incorrect Password",
                "SaveCount=check_count",
               
                LAST);

        lr_start_transaction("登录");


        web_submit_data("login.pl",
                "Action=http://127.0.0.1:1080/WebTours/login.pl",
                "Method=POST",
                "TargetFrame=body",
                "RecContentType=text/html",
                "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
                "Snapshot=t2.inf",
                "Mode=HTML",
                ITEMDATA,
                "Name=userSession", "Value={WCSParam_Diff1}", ENDITEM,
                "Name=username", "Value=jojo", ENDITEM,
                "Name=password", "Value=bean", ENDITEM,
                "Name=JSFormSubmit", "Value=off", ENDITEM,
                "Name=login.x", "Value=49", ENDITEM,
                "Name=login.y", "Value=5", ENDITEM,
                LAST);

        if (atoi(lr_eval_string("{check_count}")) > 0)
        lr_end_transaction("登录", LR_FAIL);
        else
                lr_end_transaction("登录", LR_PASS);


   /*  if (atoi(lr_eval_string("{check_count}")) > 0){

        lr_error_message("Login failed");
                return -1;

        }

     else{

        lr_output_message("Login successful.");

        return(0);

     }
*/


        return 0;
}




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2