LoadRunner 9 关联

1)关联的定义

很多时候,当时录完之后,没有问题。过一段时间再跑脚本,就不会成功。比如session,过期了,再一次使用,就会出错。这个时候,需要在每次访问的时候动态的拿到session,这种情况就需要用到关联。

2)参数化和关联的区别的阐述

参数化变的是提交的东西。关联的值是从服务器响应中拿到

3)什么时候需要关联?

服务器返回的动态变化且对业务有影响的

关联小例子

演示WebTours登录时,如果总是用同一个session,可能登录不成功,需要对session关联。

Action()
{
    web_url("WebTours",
        "URL=http://127.0.0.1:1080/WebTours/",
        "TargetFrame=",
        "Resource=0",
        "RecContentType=text/html",
        "Referer=",
        "Snapshot=t8.inf",
        "Mode=HTML",
        EXTRARES,
        "URL=http://www.bing.com/favicon.ico", ENDITEM,
        LAST);

    web_submit_data("login.pl",
        "Action=http://127.0.0.1:1080/WebTours/login.pl",
        "Method=POST",
        "TargetFrame=body",
        "RecContentType=text/html",
        "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
        "Snapshot=t9.inf",
        "Mode=HTML",
        ITEMDATA,
        "Name=userSession", "Value=121391.541595788zcttAHHptcAiDDDDDHtztptztfcf", ENDITEM,
        "Name=username", "Value=jojo", ENDITEM,
        "Name=password", "Value=bean", ENDITEM,
        "Name=JSFormSubmit", "Value=off", ENDITEM,
        "Name=login.x", "Value=54", ENDITEM,
        "Name=login.y", "Value=16", ENDITEM,
        LAST);

    web_url("SignOff Button",
        "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1",
        "TargetFrame=body",
        "Resource=0",
        "RecContentType=text/html",
        "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
        "Snapshot=t10.inf",
        "Mode=HTML",
        LAST);
return 0;
}

找到usersession是从哪个页面返回的。

右键value的值添加关联。

关联后代码变化:

Action()
{
    web_reg_save_param_ex(
        "ParamName=CorrelationParameter_1",
        "LB=userSession value=",
        "RB=>\n<table border",
        SEARCH_FILTERS,
        "Scope=All",
        "IgnoreRedirections=Yes",
        "RequestUrl=*/nav.pl*",
        LAST);

    web_url("WebTours",
        "URL=http://127.0.0.1:1080/WebTours/",
        "TargetFrame=",
        "Resource=0",
        "RecContentType=text/html",
        "Referer=",
        "Snapshot=t8.inf",
        "Mode=HTML",
        EXTRARES,
        "URL=http://www.bing.com/favicon.ico", ENDITEM,
        LAST);

    web_submit_data("login.pl",
        "Action=http://127.0.0.1:1080/WebTours/login.pl",
        "Method=POST",
        "TargetFrame=body",
        "RecContentType=text/html",
        "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
        "Snapshot=t9.inf",
        "Mode=HTML",
        ITEMDATA,
        "Name=userSession", "Value={CorrelationParameter_1}", ENDITEM,
        "Name=username", "Value=jojo", ENDITEM,
        "Name=password", "Value=bean", ENDITEM,
        "Name=JSFormSubmit", "Value=off", ENDITEM,
        "Name=login.x", "Value=54", ENDITEM,
        "Name=login.y", "Value=16", ENDITEM,
        LAST);

    web_url("SignOff Button",
        "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1",
        "TargetFrame=body",
        "Resource=0",
        "RecContentType=text/html",
        "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
        "Snapshot=t10.inf",
        "Mode=HTML",
        LAST);
return 0;
}

可运行成功。

关联位置,在请求之前。只要是web_reg开头的函数,是注册函数,都放在请求之前。

web_reg_save_param_ex(
"ParamName=参数名",
"LB=左边界",
"RB=右边界",
SEARCH_FILTERS,
"Scope=All", //搜索区域

All - Search the entire buffer
Headers - Search only the headers
Body - Search only body data
Cookies - Search only in cookies

"IgnoreRedirections=Yes", //忽略重定向。
"RequestUrl=*/nav.pl*",
LAST);

关联的其他方法:

自动关联(不推荐使用)


在运行时扫描脚本中的关联。(不建议使用)

集合点 

1、集合点的概念:需要在某一点多个user同时执行。

2、解析集合点函数:

lr_rendezvous("test"); 只有在control里面起作用。

3、只能在action中添加集合点。不能添加到init和end

4、事务中添加集合点呢。如果不满足条件,会在集合点处停止,拉长事物响应时间。所以尽量不要添加到事务里面。

时间: 2024-10-19 03:33:05

LoadRunner 9 关联的相关文章

Loadrunner手动关联详解

Loadrunner手动关联详解 一.关联的含义: 关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联. 二.关联的过程: 以登陆场景为例,客户端发出获得登录页面的请求,服务器端得到该请求后,返回登录页面,同时动态生成一个Session Id,当用户输入用户名密码,请求登录时,该Sessi

LoadRunner:关联HTTP请求

LoadRunner:关联HTTP请求 本例通过一个使用HTTP/HTML协议发送.获取服务器数据的vuser脚本,分析LoadRunner如何进行HTTP关联. 下面这个例子包括两个事务:上传数据到服务器.下载服务器数据,通过关联将服务器返回的数据保存下来,方便就行分析. 1.定义变量 在Action最前面定义变量,否则会报错. 代码: merc_timer_handle_t timer; double wasteTime=0; char *ActualBuffer; int NumberOf

LoadRunner脚本关联动态数据的最简单方法

为什么要关联动态数据呢?举个例子,在对我们平台的工作流性能测试时, 在待办任务里面选择一条记录执行发送操作,LoadRunner VuGen会详细记录下来流程发送操作的细节,但在回放脚本的时候会有问题.待办任务里面找不到那条记录了,已经发送到下一个环节了.另一个更易理解的例 子,在初始化查询页面,选择一条记录进行删除,录下脚本进行回放的时候会出错,记录已经删除了,回放脚本的时候服务器返回的记录不再包含那条记录,再向服 务器发送删除那条记录的请求,就报错了.关联动态数据需要我们在脚本中设置一个变量

LoadRunner中关联技术使用说明

1.LoadRunner在实名情况下用关联技术? 答:loadRunner中的VUG在录制脚本的时候执行正常,在回放脚本的时候执行失败,存在动态数据信息,考虑做关联 2.什么是关联技术? 答:把脚本中的硬编码(写死的数据),转变为服务器发送的动态,每次都在改变的数据, 3.在LoadRunner中如何做关联? 答:1.同一个业务场景,录制两次脚本数据 2.用WDiff 做对比发现脚本中的动态数据 3.复制动态数据的一段,在Generation log中搜索到第一个相应包,找到相应的请求,根据相应

loadrunner取出关联数组中的所有元素

方法一: int num; char nameVar[100]; char nameValue[100]; lr_save_string("AAA","name_1"); lr_save_string("BBB","name_2"); lr_save_string("CCC","name_3");   lr_save_string("3","name_cou

Loadrunner中关联的作用:

获取并保存变化的request值{1.sessionid;2.获取上个请求的响应值,用于下个请求参数} 作为检查点 脚本调试工具

LoadRunner读取关联数组的个数和内容

web_reg_save_param_ex( "ParamName=response_header1", "LB=Set-Cookie: ", "RB=;", "Ordinal=All", //多个条件符合就是返回数组 SEARCH_FILTERS, "RelFrameID=1", //这个是有重定向的时候有用 "Scope=Headers", LAST); web_url("

Loadrunner关联

学习LoadRunner之关联(二) Lr学习之关联-随机删除一行数据和全部删除数据 录制一个系统,我录制的是一个交通方面的系统,登陆到系统里面,查询车牌颜色,将其中一条数据删除. "Name=__EVENTTARGET", "Value=", ENDITEM, "Name=__EVENTARGUMENT", "Value=", ENDITEM, "Name=__VIEWSTATEENCRYPTED", &

LoadRunner 性能测试脚本

1   概述 脚本录制编写是性能测试的一个重要环节.在性能测试过程中,虚拟用户模拟真实用户使用被测系统,这个"模拟"的过程正是通过性能测试脚本来实现的.因此,编写一个准确无误的脚本对性能测试有至关重要的意义.完成性能测试脚本包括两个步骤:脚本录制和脚本编写,本文重点关注脚本编写. 2   脚本录制 2.1.录制方式 HTTP协议脚本录制可选两种方式:基于HTML和基于URL.选择哪种录制方式的原则如下:基于浏览器的HTTP应用系统选择HTML,基于其他方式的HTTP应用系统选择URL.