51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2652|回复: 10
打印 上一主题 下一主题

[原创] 脚本执行时不该成功,却报告成功,为什么???

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-11-25 11:55:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是这样操作的:
    在一个系统的用户管理功能里面,系统中已有了五个用户名分别为xing1,xing2,xing3,xing4,xing5;而且他们的密码都一样,系统中不充许用户名相同的用户;我只是想试着录增加用户这个很简单的功能,录完脚本确实能增加不存在的用户能够成功;但我想测试一下loadrunner的报错功能,所以我在脚本中的参数化用户名的地方,仍然增加数据已有的五个用户xing1,xing2,xing3,xing4,xing5,然后执行增加用户这个脚本;我想loadrunner应该报错,不能成功的.但结果却在执行事务的结果和报告中是pass,并没有出现任何error;
当然我数据库中肯定没有增加成功,因为不充许用户名相同。但为什么loadrunner却不报错呢?
     麻烦哪位高手指点一下。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

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

    连续签到: 1 天

    [LV.5]测试团长

    2#
    发表于 2008-11-25 12:05:45 | 只看该作者
    脚本拿来看下。如果说是发出的post请求能发出server有响应,一般不处理就不会报错误信息。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2008-11-25 12:47:09 | 只看该作者

    脚本如下

    脚本如下:多谢楼上
    #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;
    回复 支持 反对

    使用道具 举报

    该用户从未签到

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

    如果具体到业务是否正确完成, 这个是需要我们自己设置进行校验, 比如设置检查点, 或者保存服务器数据等手段来验证的.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2008-11-25 22:26:46 | 只看该作者
    因为VuGen对pass的定义与我们对pass的定义是不一样的。我们对pass的定义是指脚本做了“应该做的”。而VuGen对pass的定义是依照所录制脚本和服务器进行通讯模拟过程中,服务器没有返回错误信息(服务器没有返回HTTP 4XX、HTTP5XX、请求也没有超时),也就是说VuGen是站在服务器响应结果的角度看pass。


    更详细:http://user.qzone.qq.com/348436747/blog/1224841852
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2008-11-27 10:42:58 | 只看该作者
    同意4L。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2008-11-28 12:35:54 | 只看该作者

    robbie.j

    1、可能是你参数策略设置不对,后面的5个根本没有读取到
    2、加入检查点判断结果
    3、打印出log,判断结果
    4、cache不知道有没有影响
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.5]测试团长

    8#
    发表于 2008-11-28 12:40:30 | 只看该作者
    原帖由 robbie850110 于 2008-11-28 12:35 发表
    1、可能是你参数策略设置不对,后面的5个根本没有读取到
    2、加入检查点判断结果
    3、打印出log,判断结果
    4、cache不知道有没有影响



    楼上正解。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2008-12-3 14:59:07 | 只看该作者
    事务的返回结果是不管你的结果是不是正确,只要事务能正确返回,就是Pass!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2008-12-4 12:24:28 | 只看该作者
    把{name}参数设置贴出来看看就知道了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2008-12-4 14:28:07 | 只看该作者
    事务的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 编辑 ]
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-27 02:49 , Processed in 0.087214 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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