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 ;
}

可运行成功。

关联位置,在请求之前。只要是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、事务中添加集合点呢。如果不满足条件,会在集合点处停止,拉长事物响应时间。所以尽量不要添加到事务里面。

检查点函数:

通过检查点函数,可以来验证结果是否符合预期。

web_reg_find("Fail=NotFound",
"Search=Body",
"Text=Congratulations!",
LAST);

在viewtree模式下,找到需要检查内内容,右键:

Search for specific Text :需要查询的标准文本,与word 中的查找功能十分相似。

Search Text by start and end of string : 文本检查点函数也同样提供了根据左便捷进行查找的功能,选项参考上一节关联函数。

Search in : 设置在服务器返回的哪部分数据中进行查询。

Save count : 这是文本检查点很特别的功能,它将记录查找内容的出现次数并且存放到一个参数中,这里可以填写一个参数名称来存放计数结果

Fail if :设置在什么情况下文本检查点函数错误,提供了两个选项:Found、NotFound 。 Found 也就是说如果在服务器返回中存在需要检查的对象,那么文本检查点函数出错;选择NotFound 则相反,如果没有找到对应的内容,那么文本检查点函数出错。

  检查点函数的错误会导致整个脚本运行结果的失败,通过这个功能可以方便地定位脚本运行中的逻辑错误。

失败

成功

LoadRunner 关联和集合点、检查点的更多相关文章

  1. Loadrunner关联取参及设置检查点

    Loadrunner关联取参及设置检查点: 获取post的响应值当作参数存储,要在此post请求之上添加 web_reg_save_param("sign", "LB=m ...

  2. LoadRunner可以把关联取值当作检查点来使用

    在性能测试过程中,很多人都会想通过使用检查点来检查系统响应是否正常,LR的51Testing软件测试网E$S ]:x(d a6h.G \(y 检查点对“死”的,静态的 可以做到检查作业,但是对于动态时 ...

  3. Loadrunner 关联 web_custom_request综合实例

    Loadrunner 关联 web_custom_request综合实例 Loadrunner 关联web_custom_request,针对自带的订票系统的一个综合实例,相信看了本文大家对学习loa ...

  4. loadrunner 关联匹配多个值

    loadrunner 关联获取从服务器返回相关值,如果需要把所有匹配的值都获取并且把这些值打印出来,怎么做呢? 1.首先要把把所有的匹配值都保存起来,需要在关联函数里面多传递一个参数:"Or ...

  5. 品味性能之道<八>:Loadrunner关联技巧与字符处理

    一.概述       Loadrunner作为HP出品的性能测试工具,拥有太多奇妙魔法甜点供予性能测试人员享用,其中吃起来比较有嚼劲的那就是关联了.当然在关联之后我们还需要一些简单的字符处理,用以生成 ...

  6. Android ORMLite ForeignCollection关联外部集合

     <Android ORMLite ForeignCollection关联外部集合>    Android ORMLite ForeignCollection关联外部集合的功能,适合层 ...

  7. LoadRunner 技巧之 集合点设置

    LoadRunner 技巧之 集合点设置 Loadrunner 技巧已经整理4篇了,你个一定疑问,这些知识点,网上随处可见.确实,由于长时间没有使用这个工具,造成我的一些概念开始在大脑中模糊,我只是用 ...

  8. LoadRunner关联通用函数的学习

    LoadRunner关联通用函数的学习 写这篇文章的时候,我先声明一下,本BLOG中的文章如果没有写出是转贴的一般就是本人原创. Loadrunner脚本中进行关联的时候,用到了一些函数,作用是把字符 ...

  9. LoadRunner手写脚本、检查点、集合点、事务、思考时间

    手写脚本 什么时候要手写? 可以有条件手写脚本的场景有两类: 有接口说明文档 没有借口说明文档,要去录制,录制不了,抓包手写 所需函数 我们这里讲的例子是基于 http 协议的,也是常见的两种请求类型 ...

随机推荐

  1. So sad! ,Asphyre Closure

    So sad ! Asphyre Closure! 不过我相信开发App用Delphi应该是快的. 越与平台无关,优势越明显. 积累的组件市场. 虽然objc 有很多开源支持. 但总感觉还不够delp ...

  2. 利用Python进行文章特征提取(一)

    # 文字特征提取 词库模型(bag of words) 2016年2月26,星期五 # 1.词库表示法 In [9]: # sklearn 的 CountVectorizer类能够把文档词块化(tok ...

  3. 21天学通C++_Day3_Part3

    控制程序流程 0.switch...case...语句中省略了break? break让程序能够退出switch结构,如果没有将继续评估后面的case语句 1.如何退出无限循环? 使用break退出当 ...

  4. GlassFish的安装与使用(Windows)

    前言 Glassfish是一款由Sun公司开发的(现由甲骨文公司赞助)开源的免费的应用服务器,它既是EJB容器也是WEB容器.Glassfish支持最新版的Java EE标准. Glassfish与T ...

  5. 《DSP using MATLAB》示例Example7.16

    代码: M = 60; alpha = (M-1)/2; l = 0:M-1; wl = (2*pi/M)*l; Hrs = [ones(1, 7), 0.5925, 0.1099, zeros(1, ...

  6. 剑指offer-第四章解决面试题思路(判断一个数组是否为二叉搜索树的后序遍历序列)

    二叉搜索树:二叉搜索树根节点的左边都比根节点小,右边都比根节点大. 例题:输入一个数组,判断是否为二叉搜索树的后序遍历序列,如果是,返回true,如果不是,返回flase,假设没有重复的元素. 思路: ...

  7. 【3】SpringMVC的Controller

    1SpringMvc的Controller是线程安全的吗? (1)由于是单例,tomcat的多线程环境访问,属性必须是不可变的,如果可变,会产生脏数据,线程不安全 2Spring的事务管理 (1)ao ...

  8. [转]linux下查看进程内存使用情况

    动态查看一个进程的内存使用 1.top命令 top -d 1 -p pid [,pid ...] //设置为delay 1s,默认是delay 3s 如果想根据内存使用量进行排序,可以shift + ...

  9. Yii登录验证和全局访问用户ID

    注意:Yii默认的代码,Yii::app()->user->id返回的不是我们想要的用户ID,而是用户名.因此在useridentity类中要用一个变量来存储登录用户的ID,然后重载get ...

  10. 如何调试Excel VBA代码

    Excel VBA出错时给出的错误信息极少,需要充分利用各种工具来进行调试. 1.编译错误 常见的编译错误有: 错误的源代码格式,比如if后面缺少then:在编辑器中该行会变成红色. 错误的语法结构, ...