51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4255|回复: 16
打印 上一主题 下一主题

[原创] 进来看看lr关联函数总报错!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-9-21 15:53:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用lr录制它自带的飞机订票例子,然后做关联
代码如下:
//我写的关联函数,觉得没有问题啊。可是回放时,还是跑不过去!请高手指点一下,哪的问题啊?
web_reg_save_param("UUU",
"LB=userSession value=",
"RB=>",
"Ord=1",                 
"Search=Body",          
LAST);

web_submit_data("login.pl",
                "Action=http://127.0.0.1:1080/WebTours/login.pl",
                "Method=POST",
                "RecContentType=text/html",
                "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
                "Snapshot=t2.inf",
                "Mode=HTML",
                ITEMDATA,
                "Name=userSession", "Value={UUU}", ENDITEM,
                "Name=username", "Value=zhuxiao", ENDITEM,
                "Name=password", "Value=123456", ENDITEM,
                "Name=JSFormSubmit", "Value=on", ENDITEM,
                "Name=login.x", "Value=47", ENDITEM,
                "Name=login.y", "Value=11", ENDITEM,
                LAST);
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2009-9-21 16:02:29 | 只看该作者
知道的给说声啊。别总飘过……
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-9-21 16:24:46 | 只看该作者
具体报什么错啊 要发下log啊
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-9-21 16:37:41 | 只看该作者
很明显的。。你关联函数放的地方有错误。你是想通过关联拿到userSession,但却把关联函数放在提交表单的前面(此表单已经存在了已知的userSession),所以这个提交表单的请求并不是从服务器返回userSession的请求。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-9-21 16:43:45 | 只看该作者
恩 楼上的见教了 我也对Loadrunner的几个函数不是很熟悉,刚才查了下帮助,web_reg_save_param应该放在web_submit_form等函数之前,然后才会将类似session之类的保存到变量中

/*This web_reg_save_param call applies to the following action function: web_submit_form. */

    web_reg_save_param("outFlightVal",

    "LB=outboundFlight value=", "RB= checked >", LAST);

    web_submit_form("reservations.pl",

        "Snapshot=t4.inf",

        ITEMDATA,

        "Name=depart", "Value=London", ENDITEM,

        "Name=departDate", "Value=11/20/2003", ENDITEM,

        "Name=arrive", "Value=New York", ENDITEM,

        "Name=returnDate", "Value=11/21/2003", ENDITEM,

        "Name=numPassengers", "Value=1", ENDITEM,

        "Name=roundtrip", "Value=<OFF>", ENDITEM,

        "Name=seatPref", "Value=None", ENDITEM,

        "Name=seatType", "Value=Coach", ENDITEM,

        "Name=findFlights.x", "Value=83", ENDITEM,

        "Name=findFlights.y", "Value=16", ENDITEM,

        LAST);

/*

The result of the web_reg_save_param having been called before the web_submit_form is:

Action.c(15): Notify: Saving Parameter "outFlightVal = 230;378;11/20/2003"

*/

// Now use the saved outFlightVal

    web_submit_form("reservations.pl_2",

        "Snapshot=t5.inf",

        ITEMDATA,

        "Name=outboundFlight", "Value={outFlightVal}", ENDITEM,

        "Name=reserveFlights.x", "Value=92", ENDITEM,

        "Name=reserveFlights.y", "Value=10", ENDITEM,

        LAST);

/*

Action.c(34): Notify: Parameter Substitution: parameter "outFlightVal" = "230;378;11/20/2003" */
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-9-21 21:00:12 | 只看该作者
waiting the reply log
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2009-9-22 09:58:50 | 只看该作者
reply log没什么用!关联函数没设置好,会报各种错误。即可能会把不是错误的地方,报成错!
我是这么理解的:由于web_reg_save_param是一个注册类型的函数,所以把这个关联函数放在了action中的起始位置。那么在后面用到时,这个函数就能起作用了。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2009-9-22 10:12:09 | 只看该作者
同意5楼的说法
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2009-9-22 10:12:59 | 只看该作者
原帖由 samllyn 于 2009-9-21 16:43 发表
恩 楼上的见教了 我也对Loadrunner的几个函数不是很熟悉,刚才查了下帮助,web_reg_save_param应该放在web_submit_form等函数之前,然后才会将类似session之类的保存到变量中

/*This web_reg_save_param call app ...


你仔细看看例子与LZ发的案例,确实web_reg_save_param都在请求之前,但你的例子是拿到返回的数据进行关联,然后在把关联的数据在下一个请求中发出,例子一起是2个请求,也就是1个请求是拿数据进行关联,另一个是把关联数据做参数发请求。
而LZ的只有一个请求,怎么可能又用这个请求拿数据,又用他发数据 ? 所以web_reg_save_param放错了地方,应该在LZ的那个请求之前的某个请求产生的返回数据
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2009-9-22 10:27:40 | 只看该作者
web_reg_save_param("WCSParam_Diff1",
                "LB=userSession value=",
                "RB=>",
                "Ord=1",
                "RelFrameId=1.1",
                "Search=Body",
                "IgnoreRedirections=Yes",
                LAST);
       
web_url("welcome.pl",
                "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=http://127.0.0.1:1080/WebTours/",
                "Snapshot=t1.inf",
                "Mode=HTML",
                LAST);
        lr_think_time(11);


        web_submit_data("login.pl",
                "Action=http://127.0.0.1:1080/WebTours/login.pl",
                "Method=POST",
                "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=zhuxiao", ENDITEM,
                "Name=password", "Value=111111", ENDITEM,
                "Name=JSFormSubmit", "Value=on", ENDITEM,
                "Name=login.x", "Value=51", ENDITEM,
                "Name=login.y", "Value=11", ENDITEM,
                LAST);
这是我用lr中的自动关联功能,lr自动写的关联函数,看看它与我第一次发的代码。我觉得它添加的函数位置以及参数化的位置,与我自己手写的也没什么区别啊。可是这个脚本就能跑过去。我自己写的就跑步过去……

[ 本帖最后由 zhuxiaoyan003 于 2009-9-22 10:28 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2009-9-22 10:34:14 | 只看该作者
这个还差别不大啊。。。没发现中间多了一个请求吗
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2009-9-22 11:10:39 | 只看该作者
web_reg_save_param("UUU",
                 "LB=userSession value=",
                 "RB=>",
                 "Ord=1",                 
                 "Search=Body",          
                 LAST);
       
web_url("WebTours",
                "URL=http://127.0.0.1:1080/WebTours/",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=",
                "Mode=HTML",
                LAST);

        web_url("header.html",
                "URL=http://127.0.0.1:1080/WebTours/header.html",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=http://127.0.0.1:1080/WebTours/",
                "Mode=HTML",
                LAST);

        web_url("welcome.pl",
                "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=http://127.0.0.1:1080/WebTours/",
                "Snapshot=t1.inf",
                "Mode=HTML",
                LAST);
       
        lr_think_time(11);

        web_submit_data("login.pl",
                "Action=http://127.0.0.1:1080/WebTours/login.pl",
                "Method=POST",
                "RecContentType=text/html",
                "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
                "Snapshot=t2.inf",
                "Mode=HTML",
                ITEMDATA,
                "Name=userSession", "Value={UUU}", ENDITEM,
                "Name=username", "Value=zhuxiao", ENDITEM,
                "Name=password", "Value=123456", ENDITEM,
                "Name=JSFormSubmit", "Value=on", ENDITEM,
                "Name=login.x", "Value=47", ENDITEM,
                "Name=login.y", "Value=11", ENDITEM,
                LAST);
这个是我第一个帖子的完整代码!!也就是那个一直跑不过去的代码!并不是中间有几个web_url()的问题!

[ 本帖最后由 zhuxiaoyan003 于 2009-9-22 11:11 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2009-9-22 11:12:22 | 只看该作者
郁闷……资质愚钝,还没弄明白呢!
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2009-9-24 14:37:52 | 只看该作者
我昨天又重新录制了一次,自己手写的关联函数,就能跑过去了!
跟这个一模一样!
可为什么这个就跑不过去,还是没解……
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2009-9-24 14:55:55 | 只看该作者
把跑步过去和跑的过去的脚步做了比较比较不出不一致的地方吗?
可以都贴上来吗?(做一个说明哪个是过哪个是不过的)
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2009-10-12 14:12:20 | 只看该作者
关联函数放置的位置不对

不是在submit_data之前

而应该是在web_url("webtours",之前的

只要用httpwatch看下就知道了,sessionid是在登录页面产生的,而不是在提交数据的时候产生的。
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2009-10-12 16:36:41 | 只看该作者
发下你的Server response,
应该是位置问题
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-18 22:53 , Processed in 0.074480 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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