LoadRunner VuGen脚本增强之关联

LoadRunner学习笔记4-LoadRunner VuGen脚本增强之关联

关联其实就是动态地获取服务器返回的某些值,很多人觉得获取的是服务器返回的动态值,其实即使是不动态的值,也完全可以用关联。

一般出现以下几种情况需要考虑是否使用关联:
1)服务器返回中存在动态变化的值,一般就是类似Session的无规则数据。
2)运行后没有报错,但是也没有产生记录。
3)后续的操作要使用到之前的数据。例如,回帖操作要知道之前发帖子的tid才能实现。

关联函数用法:
web_reg_save_param(“关联的名称,可自定义”,”LB=左边界”,”RB=右边界”,LAST);
关联函数就是通过指定的左右边界来获取值的。

一、设置WebTours关联

如下图设置之后,就可以使用WebTours(LoadRunner提供的示例程序,启动菜单为“开始->HP LoadRunner->Samples->web”)的登录练习关联了。

这里写图片描述

这里写图片描述

二、自动关联

LoadRunner中的关联可以通过自动与手动两种方式来完成,先学习自动关联。首先录制一次设置关联后的登录、退出操作。关键代码如下:

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",//多了一个UserSession     "Value=119857.223572296zVzfVffpQDHfDzQQApQDfzcf", ENDITEM, 
        "Name=username", "Value=besttest", ENDITEM, 
        "Name=password", "Value=besttest", ENDITEM, 
        "Name=JSFormSubmit", "Value=on", ENDITEM, 
        "Name=login.x", "Value=43", ENDITEM, 
        "Name=login.y", "Value=15", ENDITEM, 
        LAST);

观察上面代码发现,提交登录请求的函数中比之前多了一个userSession,这就是需要关联的。此时,回放脚本会出现错误。

这里写图片描述

1.扫描关联,选择菜单中的Vuser->Scan Script for Correlations选项,出现如下提示后,单击Yes按钮。

这里写图片描述

2.等待一会儿后便可以扫描出关联,然后单击右侧的Remove Correclation按钮完成,回到代码中即可看到关联函数出现了。

提示:loadRunner中自动关联存在问题,有时候会出现无法扫描关联的情况,具体原因未知。所以不推荐用此方法,推荐使用手动关联。

三、手动关联

找到需要关联的地方,可以使用如下几种技巧:
1)根据经验,一般需要关联的值会在HTML的hidden标签中出现。
2)录制两份相同业务流程的脚本,然后利用Tools菜单下的Compare with Script功能来对比,一般不一样的地方需要考虑是否关联。

利用上述技巧,手动关联的步骤如下:
1.单击Tree按钮切换到Tree视图。
2.因为userSession是在提交请求后返回的,所以以web_submit_data为起点查看需要关联的值到底在哪里。
3.单击左侧Action树中的Url:WebTours,再切换到HTTP View视图,从上到下查看Path中是否存在userSession。在Path为/WebTours、nav.pl?in=home下找到userSession,果然藏在了hidden标签里,如下图所示:

这里写图片描述

4.找到后要分析它的左右边界。这里有个小技巧是,一般以需要关联的值为中心,以“向左走,向右走”来划定边界。那么左边界就是“name=userSession value=”,右边界就是“>”。
5.在代码中添加关联函数,并在web_submit_data中使用{userSession}来替换一长串数字字母,关键代码如下所示:

    //关联userSession
    //<input type=hidden name=userSession value=119857.223572296zVzfVffpQDHfDzQQApQDfzcf>
    web_reg_save_param("userSession",
    "LB=userSession value=",
    "RB=>",
    LAST);
    //打开首页
    web_url("WebTours", 
        "URL=http://127.0.0.1:1080/WebTours/", 
        "Resource=0", 
        "RecContentType=text/html", 
        "Referer=", 
        "Snapshot=t4.inf", 
        "Mode=HTML", 
        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=t5.inf", 
        "Mode=HTML", 
        ITEMDATA, 
        "Name=userSession", "Value={userSession}", ENDITEM, //此处替换
        "Name=username", "Value=besttest", ENDITEM, 
        "Name=password", "Value=besttest", ENDITEM, 
        "Name=JSFormSubmit", "Value=on", ENDITEM, 
        "Name=login.x", "Value=33", ENDITEM, 
        "Name=login.y", "Value=9", ENDITEM, 
        LAST);

另外,还可以选择Vuser菜单下的Insert->New Step来插入关联函数。

四、关联函数扩展

LoadRunner中有如下两个函数对关联进行了扩展,其实就是增加了正则表达式和Xpath的识别。

//可以识别正则表达式
web_reg_save_param_ex("ParamName=关联名",
"LB/RE=LL[0-9]*",//加上RE,表示可以使用正则表达式
"RB?RE=.RR",
LAST);

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。具体可查找相关资料学习。

//可以识别Xpath
web_reg_save_param_xpath("ParamName=关联名",
"QueryString=xpath路径值",
LAST);

Xpah是一门在XML文档中查找信息的语言。Xpath用于在Xpath文档中通过元素和属性进行导航。具体用法与web_reg_save_param类似,只是特性上做了扩展。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值