LoadRunner 技巧之 自动关联

这一节讲loadunner 关联的问题,其实这个东西理解起来简单,但说起来比较麻烦。

关联的原理:                                                                                            

先来模拟一个场景,我去坐火车,坐火车要先检票,检票员核对火车票的时间、班次等信息正确后允许我坐火车。

过了几天,我又拿着一张票去坐火车,检票员再一次核对火车票信息,发现这张票过期了,肯定不让我坐了。那我怎么才能坐火车呢?我先看看旁边那哥们的火车票上的信息,然后把自己的查票涂改成和他一模一样再去坐火车。

在我们录制测试脚本时也经常会遇到这样的情况:录制的时候,服务器会给一个唯一的认证码来进行操作,当再次回放脚本的时候服务器又会给一个全新的认证码,而脚本录制是死的,还是拿老的认证码提交,从而导致脚本执行时失败。

下面详细来分析一下录制与回放的过程

录制过程:

1、输入用户名密码登录

2、服务器端返回一个sesiionID@@@12345

3、客户端拿着获得sesiionID@@@12345进一步请求服务器信息。

4、服务器返回客户端想要的信息

回放过程:

1、输入用户名密码登录

2、客户端返回新的sesiionID@@@23456

3、因为脚本中的sesiionID@@@12345 是写死的,所以我们会依然拿着老的sesiionID@@@12345去向服务器请求信息

4、服务器你经过验证发现你的sesiionID@@@12345 是错误的。

为了确保脚本回放的成功,我们需要获得服务器每次返回的动态的sesiionID,再将这个动态数据发回给服务器。而关联能够帮助我们将服务器返回的数据进行处理并保存为参数。

OK!通过上面的分析,我们大概明白的关联的原理,下面要解决的问题就是如何设置关联。关联的三种方法:

  • 自动关联
  • 手动关联
  • 一边录制一边关联

自动关联                                                                                                    

在录制脚本之后打开recording Options 窗口,点击correlation标签页。确保Enable correlation during recording 选项处于勾选状态。

在LoadRunner 自带WebTours为例设置关联,

访问WebTours首页,点击administration 链接, 设置 Set LOGIN form's action tag to an error page. 勾选更新。

录制WebTours登录与退出脚本:

Action()
{

web_url("WebTours",
        "URL=http://127.0.0.1:2080/WebTours/",

        "Resource=0",
       
"RecContentType=text/html",
        "Referer=",
        "Snapshot=t1.inf",
        "Mode=HTML",
        LAST);

web_url("favicon.ico",
        "URL=http://127.0.0.1:2080/favicon.ico",

        "Resource=1",
        "Referer=",
        LAST);

web_submit_data("login.pl",

        "Action=http://127.0.0.1:2080/WebTours/login.pl",

        "Method=POST",
        "Referer=http://127.0.0.1:2080/WebTours/nav.pl?in=home",

        "Mode=HTML",
        ITEMDATA,
        "Name=userSession",
"Value=110381.833940867fzHHHzfpfiDDDDDDDtAzzpfQDf", ENDITEM,
        "Name=username",
"Value=test", ENDITEM,
        "Name=password",
"Value=123456", ENDITEM,
        "Name=JSFormSubmit",
"Value=on", ENDITEM,
        LAST);

web_submit_data("login.pl_2",
        "Action=http://127.0.0.1:2080/WebTours/login.pl",

        "Method=POST",
       
"RecContentType=text/html",
        "Referer=http://127.0.0.1:2080/WebTours/nav.pl?in=home",

        "Snapshot=t2.inf",
        "Mode=HTML",
        ITEMDATA,
        "Name=userSession",
"Value=110381.833940867fzHHHzfpfiDDDDDDDtAzzpfQDf", ENDITEM,
        "Name=username",
"Value=test", ENDITEM,
        "Name=password",
"Value=123456", ENDITEM,
        "Name=JSFormSubmit",
"Value=on", ENDITEM,
        "Name=login.x",
"Value=52", ENDITEM,
        "Name=login.y",
"Value=1", ENDITEM,
        LAST);

web_image("SignOff Button",

        "Alt=SignOff Button",
        "Snapshot=t3.inf",
        LAST);

return 0;
}

回放脚本出错:

Action.c(47): Error -27987: Requested image not found      [MsgId: MERR-27987]
Action.c(47): web_image("SignOff Button") highest severity level was
"ERROR", 0 body bytes, 0 header bytes      [MsgId: MMSG-26388]

选择菜单栏Vuser ---> Scan Script for Correlations (快捷键ctrl + F8 )弹出下面窗口

扫描相关性可能需要几分钟,你想继续么? 当然,点击“YES”

选中需要关联的内容,点击“ remove
Correlation 

LoadRunner 技巧之 自动关联的更多相关文章

  1. LoadRunner脚本增强技巧之自动关联

    为什么要做关联,原理很简单,录制脚本的时候,服务器会给用户一个唯一的认证码来进行操作,当再次回放脚本的时候服务器又会给一个全新的认证码,而录制好的脚本是写死的,还是拿老的认证码提交,肯定会导致脚本执行 ...

  2. LoadRunner脚本参数化之自动关联和手动关联

    一.关联的意义  1.关联的含义 关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,以变量的 ...

  3. Loadrunner脚本自动关联和手动关联

    关于Loadrunner关联一.什么时候需要关联 1.关联的含义        关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服 ...

  4. LoadRunner 自动关联、手动关联的帖子

    https://www.guru99.com/correlation-in-loadrunner-ultimate-guide.html 这个网页里介绍了关联的概念,自动关联和手动关联的知识...

  5. LoadRunner使用之变量关联

    性能测试LR小结之参数关联(LoadRunner11.0) 关联对于LR是经常需要用到的,本章使用简单登录来介绍关联功能. 1.       Q:何为关联? 所谓的关联就是把脚本中某些写死的代码(ha ...

  6. 转:如何在 LoadRunner 脚本中做关联 (Correlation)

    如何在 LoadRunner 脚本中做关联 (Correlation) 当录制脚本时,VuGen会拦截client端(浏览器)与server端(网站服务器)之间的对话,并且通通记录下来,产生脚本.在V ...

  7. loadrunner怎样进行手动关联

    转自:http://novasblog.blog.163.com/blog/static/43713514200901341934981/ 手动关联的主要步骤为:        第一步:录制测试脚本, ...

  8. LoadRunner 技巧之 脚本设计

    LoadRunner 技巧之 脚本设计 在做性能测试时,我们可能会遇到各种不同的业务需求与用户行为,在一个系统或网站中,每个用户的操作都不完全一样.我们如何来模拟这此用户的行为?经验与能力有限,我这里 ...

  9. Qt信号与槽自动关联机制

    参考链接1:http://blog.csdn.net/skyhawk452/article/details/6121407 参考链接2:http://blog.csdn.net/memory_exce ...

随机推荐

  1. Settimer及回调函数的用法

    在网上看了settimer的一些用法发现能用的真没有,,,,可能是我没找对地方,大部分都是无脑复制粘贴,浪费了很多时间,如果你是一个对这种定时器一无所知的小白,那么请你看进来一定不会让你失望的! 实用 ...

  2. PAT Basic 1002 写出这个数 (20 分)

    读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 1. 输出格式: 在一行内输出 n 的 ...

  3. nvidia-docker安装

    如果之前安装过docker1.0版本,需要先删掉该版本和之前创建的容器 docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 ...

  4. spark源码本地调试

    1.前提条件: 1)安装jdk 版本: 2)安装scala 版本: 3)安装sbt 版本: 4)安装maven 5)安装git 版本: 6)安装idea,并配置好sbt.git.maven 2.从gi ...

  5. Redis 管道pipeline

    Redis是一个cs模式的tcp server,使用和http类似的请求响应协议. 一个client可以通过一个socket连接发起多个请求命令. 每个请求命令发出后client通常会阻塞并等待red ...

  6. 深浅拷贝(copy)

    目录 copy 模块 1.拷贝(赋值) 1). x为不可变数据类型 2). x为可变数据类型 3). 可变数据类型(比如列表)内,既有不可变元素,又有容器类型可变元素(比如列表) 2.浅拷贝 3.深拷 ...

  7. matplotlib绘图时显示额外的“figure”浮窗

    引自 https://blog.csdn.net/weixin_41571493/article/details/82690052 问题:现在默认的Pycharm绘图时,都会出现下面的情况: 不能弹出 ...

  8. AcWing:139. 回文子串的最大长度(字符串Hash + 前缀和 + 后缀和 + 二分)

    如果一个字符串正着读和倒着读是一样的,则称它是回文的. 给定一个长度为N的字符串S,求他的最长回文子串的长度是多少. 输入格式 输入将包含最多30个测试用例,每个测试用例占一行,以最多1000000个 ...

  9. R_Studio(关联)对dvdtrans.csv数据进行关联规则分析

    dvdtrans.csv数据:该原始数据仅仅包含了两个字段(ID, Item) 用户ID,商品名称(共30条) #导入arules包 #install.packages("arules&qu ...

  10. JS框架_(Qrcode.js)将你的内容转换成二维码格式

    百度云盘 传送门 密码:304e 输入网址点击按钮生成二维码,默认为我的博客首页 二维码格式演示 <!DOCTYPE html> <html lang="en"& ...