51Testing软件测试论坛

标题: 脚本执行时不该成功,却报告成功,为什么??? [打印本页]

作者: lyw20086911    时间: 2008-11-25 11:55
标题: 脚本执行时不该成功,却报告成功,为什么???
我是这样操作的:
    在一个系统的用户管理功能里面,系统中已有了五个用户名分别为xing1,xing2,xing3,xing4,xing5;而且他们的密码都一样,系统中不充许用户名相同的用户;我只是想试着录增加用户这个很简单的功能,录完脚本确实能增加不存在的用户能够成功;但我想测试一下loadrunner的报错功能,所以我在脚本中的参数化用户名的地方,仍然增加数据已有的五个用户xing1,xing2,xing3,xing4,xing5,然后执行增加用户这个脚本;我想loadrunner应该报错,不能成功的.但结果却在执行事务的结果和报告中是pass,并没有出现任何error;
当然我数据库中肯定没有增加成功,因为不充许用户名相同。但为什么loadrunner却不报错呢?
     麻烦哪位高手指点一下。
作者: archonwang    时间: 2008-11-25 12:05
脚本拿来看下。如果说是发出的post请求能发出server有响应,一般不处理就不会报错误信息。
作者: lyw20086911    时间: 2008-11-25 12:47
标题: 脚本如下
脚本如下:多谢楼上
#include "web_api.h"


Action()
{
        web_url("index.do",
                "URL=http://119.255.1.54:9080/admin/index.do",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=",
                "Snapshot=t1.inf",
                "Mode=HTML",
                EXTRARES,
                "Url=images/login_03.jpg", ENDITEM,
                LAST);

        lr_think_time( 6 );

        web_submit_form("loginAction.do",
                "Snapshot=t2.inf",
                ITEMDATA,
                "Name=userName", "Value=mepaytest", ENDITEM,
                "Name=password", "Value=mepaytest", ENDITEM,
                "Name=submit", "Value=login", ENDITEM,
                EXTRARES,
                "Url=images/top_bg.jpg", "Referer=http://119.255.1.54:9080/admin/head.do", ENDITEM,
                "Url=images/LeftBg.jpg", "Referer=http://119.255.1.54:9080/admin/left.do", ENDITEM,
                LAST);

        lr_think_time( 1 );

        web_link("add admin",
                "Text=add admin",
                "Snapshot=t3.inf",
                EXTRARES,
                "Url=../images/ButtonBg.jpg", ENDITEM,
                LAST);

        lr_think_time( 15 );

        web_submit_form("save.do",
                "Snapshot=t4.inf",
                ITEMDATA,
                "Name=admin.name", "Value={name}", ENDITEM,
                "Name=admin.password", "Value=123123", ENDITEM,
                "Name=password2", "Value=123123", ENDITEM,
                "Name=admin.actualname", "Value=", ENDITEM,
                "Name=admin.telephone", "Value=", ENDITEM,
                "Name=groupId", "Value=13", ENDITEM,
                "Name=admin.state", "Value=Active", ENDITEM,
                EXTRARES,
                "Url=../images/Gbg.jpg", ENDITEM,
                "Url=../images/ButtonBg.jpg", ENDITEM,
                LAST);

        lr_think_time( 1 );

        web_link("[Log out ]",
                "Text=[Log out ]",
                "Snapshot=t5.inf",
                LAST);

        web_url("quitAction.do",
                "URL=http://119.255.1.54:9080/admin/quitAction.do",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=",
                "Snapshot=t6.inf",
                "Mode=HTML",
                EXTRARES,
                "Url=images/login_03.jpg", ENDITEM,
                LAST);

        return 0;
作者: jlsv    时间: 2008-11-25 14:02
loadrunner 中的pass意思只是表示服务器对请求有回应, 并没有发生网络传输失败, 端口访问出错, 没有找到对应资源 等等 一般性问题吧

如果具体到业务是否正确完成, 这个是需要我们自己设置进行校验, 比如设置检查点, 或者保存服务器数据等手段来验证的.
作者: mr.bee    时间: 2008-11-25 22:26
因为VuGen对pass的定义与我们对pass的定义是不一样的。我们对pass的定义是指脚本做了“应该做的”。而VuGen对pass的定义是依照所录制脚本和服务器进行通讯模拟过程中,服务器没有返回错误信息(服务器没有返回HTTP 4XX、HTTP5XX、请求也没有超时),也就是说VuGen是站在服务器响应结果的角度看pass。


更详细:http://user.qzone.qq.com/348436747/blog/1224841852
作者: 在测试中成长    时间: 2008-11-27 10:42
同意4L。。。
作者: robbie850110    时间: 2008-11-28 12:35
标题: robbie.j
1、可能是你参数策略设置不对,后面的5个根本没有读取到
2、加入检查点判断结果
3、打印出log,判断结果
4、cache不知道有没有影响
作者: archonwang    时间: 2008-11-28 12:40
原帖由 robbie850110 于 2008-11-28 12:35 发表
1、可能是你参数策略设置不对,后面的5个根本没有读取到
2、加入检查点判断结果
3、打印出log,判断结果
4、cache不知道有没有影响



楼上正解。
作者: xjcool    时间: 2008-12-3 14:59
事务的返回结果是不管你的结果是不是正确,只要事务能正确返回,就是Pass!
作者: tjswk2008    时间: 2008-12-4 12:24
把{name}参数设置贴出来看看就知道了
作者: lester0820    时间: 2008-12-4 14:28
事务的pass与否和业务是没有关系的,如果真的需要确认事务成功执行了,建议添加检查点,登陆后查询页面上是否有刚才登陆的用户名,并且,手工设置事务pass与否的判断,不要用LR_AUTO选项。
建议脚本如下(录制部分省略了)



login()
{
        web_url(省略·····);

        lr_rendezvous("登陆");

        lr_start_transaction("登陆");

        web_reg_find("Text={username}",//检查登陆后是否有和刚才同一用户名的字段存在
                "SaveCount=usr",//如果存在,usr计数+1
                "Search=All",
                LAST);

        web_submit_data(省略·····);

        lr_end_transaction("登陆", LR_AUTO);

        lr_start_transaction("登陆检查");
        if (atoi(lr_eval_string("{usr}"))==1) //如果usr等于1,说明登陆成功
        lr_end_transaction("登陆检查",LR_PASS);//显示事务成功
        else
        lr_end_transaction("登陆检查",LR_FAIL);//否则显示失败

        return 0;
}

[ 本帖最后由 lester0820 于 2008-12-4 14:33 编辑 ]




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