LoadRunner录制:关联
一般请求中看到 hash strings, random strings, session ID 这种,就需要动态去获取该内容,这样就需要用到关联。
回放时自动关联
1. 录制脚本并执行。
2. 打开“Scan Action for Correlation”窗口,该窗口会询问用户是否要扫描脚本并建立关联,单击“yes”按钮,扫描脚本。
有多种方式可以打开“Scan Action for Correlation”窗口:
- 方式一:选择 Vuser –> Scan Script for Correlations。
- 方式二:同时按住 Ctrl + F8 即可调出该窗口。
- 方式三:执行脚本,执行完毕后系统会自动跳出该窗口。
3. 扫描完后,可以在脚本下方的“Correlation Results”中看到扫描的结果。
4. 检查一下扫描的结果,选择要做关联的数据,然后单击“Correlation”按钮,逐次关联。
这里点击列出的关联条目,可以看到上面以Tree View 的方式对Record 和 Replay 的结果进行比对,方便确定要不要进行关联。
5. 重复步骤1 ~ 步骤4 ,直到所有需要做关联的数据都找出来为止。
手动进行关联方法一:自己写脚本添加关联
背景:
比如你在请求request15的时候需要用到 userid,结果你发现request2的Response里面有userid,那么你要在request2的前面添加关联脚本,假设保存到的参数为userid_result,那么在request15里面就可以直接像使用参数那样使用{userid_result} 。
前提条件
假设页面返回的部分 response 如下:
我们需要获取上面 <title>和 </title>之间的内容,保存到参数 TitleName里面,留着后边用。
那么我们需要在该页面请求的前面添加关联脚本。
添加方法:
1. 鼠标右键,选择 Insert –> New Step。
2. 在 Find Function 中输入 web_reg_save_param_ex,点击OK。
3. 编辑弹出框如下。
Parameter Name:获取的内容要保存到的参数名称,比如这里我想保存到TitleName里面,就输入TitleName。
Left Boundary:左边界。上面看左边界我们可以输入”title>“
Right Boundary:右边界。上面看右边界我们可以输入”</title“
Scope:表示查找范围,比如这里在选择在BODY里面查找。还有其他选项,比如HEADERS、COOKIES
Request URL:表示查找的URL的范围。
4. 点击OK生成脚本。
可以在该页面请求后使用 lr_output_message 打印该参数查看是否正确。
web_reg_save_param_ex(
"ParamName=TitleName",
"LB=title>",
"RB=</title",
SEARCH_FILTERS,
"Scope=Body",
"RequestUrl=*/www.cnblogs.com/*",
LAST); web_url("www.cnblogs.com",
"URL=http://www.cnblogs.com/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t17.inf",
"Mode=HTML",
LAST); lr_output_message("TitleName:%s",lr_eval_string("{TitleName}"));
5. 运行,查看Log
Action4.c(): Registering web_reg_save_param_ex was successful [MsgId: MMSG-]
Action4.c(): Found resource "http://www.cnblogs.com/bundles/aggsite.css?
.......
Action4.c(): web_url("www.cnblogs.com") was successful, body bytes, header bytes [MsgId: MMSG-]
Action4.c(): TitleName:博客园 - 开发者的网上家园
可以看到正确获取了我们想要的内容。
备注:
感想就是,手动关联一定要想着怎样去界定你要获取的内容,左边界右边界一定要对,然后尽可能的在Filters里面缩小范围就可以。
手动进行关联方法二:在Tree View里面自动建立关联
假设要获取的内容在 “www.cnblogs.com“的response body里面。
方法:
1. 切换到 Tree View视图。
选择 View –> Tree View即可。
2. 选中 Url: www.cnblogs.com 。
3. 点击HTTP View 查看该链接的 HTTP视图。
4. 点击Response Body查看该请求返回的响应结果。
5. 用鼠标选中要获取的内容,然后点击右键,选择Create Correlation,点击“是”。
6. 切换回脚本视图查看关联是否添加成功。
选择 View –> Script View即可。
//Correlation comment - Do not change!Original value='鍗氬鍥?- 寮€鍙戣€呯殑缃戜笂瀹跺洯' Name ='CorrelationParameter_1' web_reg_save_param_ex(
"ParamName=CorrelationParameter_1",
"LB=title>",
"RB=</title",
SEARCH_FILTERS,
"Scope=Body",
"RequestUrl=*/www.cnblogs.com/*",
LAST);
备注
1. 转义字符
左右边界含有特殊字符时,需要用到转义字符“\”。
常见的特殊字符表示如下:
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表
\v 垂直制表
\\ 反斜杠
\? 问号字符
\' 单引号字符
\" 双引号字符
\ 空字符
看下面的例子,我需要获取imgId的值:
关联脚本如下:
web_reg_save_param_ex(
"ParamName=image_id_value",
"LB=imgId\":\"",
"RB=\",",
SEARCH_FILTERS,
"Scope=Body",
"RequestUrl=*/sendimagecode*",
LAST);
2. 如何定位需要关联的地方
可以使用LoadRunner自带的工具 WinDiff来比较脚本的不同,进而找出需要进行关联的地方。
1) 录制两遍脚本,假设分别为 s1 和 s2
2) 使用WinDiff 工具找出两次脚本的不同,判断是否需要进行关联
打开s2,打开 tool –> compare with Script,选择s1。
两个脚本不同的地方 WinDiff 会进行标黄处理。
3)一般两个脚本不同的地方都需要进行关联处理。
lr_think_time表示等待时间,这个不同的话不用管。
4)找到产生该不同文字是在哪个request返回的response里面,我们在该resquest前面添加关联函数即可。
LoadRunner录制:关联的更多相关文章
- LoadRunner 录制IE 8卡死
LoadRunner11录制脚本,对IE的版本是有所限制的,它只是支持IE 8 以下版本,其中包括IE 8,高出IE 8版本Loadrunner是不支持的. 我遇到LoadRunner录制脚本时IE8 ...
- 【Loadrunner】Loadrunner 手动关联技术
Loadrunner 手动关联技术 录制成功,回放失败,怀疑和动态数据有关: 1 重新录制一份脚本,两次录制的脚本进行比对,确定动态数据,复制动态数据: 2 找到第一次产生该动态数据的响应对应的相应 ...
- Loadrunner手动关联详解
Loadrunner手动关联详解 一.关联的含义: 关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到 ...
- Loadrunner录制脚本之浏览器
Loadrunner录制脚本之浏览器 用Loadrunner录制脚本,尤其现在的IE浏览器版本升级较快,脚本的录制有时候还是需要集RP.Luck的,当然,Loadrunner对于IE的支持算最好的了, ...
- LoadRunner录制Web协议的脚本 (by网络)
LoadRunner录制Web协议的脚本 http://itindex.net/detail/50530-loadrunner-web-脚本
- LoadRunner录制图片验证码
LoadRunner录制图片验证码 LoadRunner自身是无法捕获到图片验证码的,但是我们可以帮助LoadRunner来实现验证码的捕获. 1.图片验证码 图片验证码的产生来自服务器端,由服务器生 ...
- LoadRunner录制不弹出IE浏览器,event=0
系统环境:win7,安装了IE.360.firefox.搜狗高速浏览器: 起初刚装完loadrunner11的时候,选了IE进行录制,就是不能打开IE,算了,那就用loadrunner默认的设置,居然 ...
- loadrunner录制脚本出现urs.asmx解决方法:
在loadrunner录制过程中可能出现如下脚本: 解决方法: 解决办法:打开IE9的Internet选项-->高级,把设置下面安全中“启用SmartScreen筛选器”不选中,IE默认是选中的 ...
- 问题:loadrunner录制event为0
loadrunner录制问题问题1:录制时出现event为0的状况 解决办法: 1.如果是IE浏览器,把启用第三方浏览器扩展*钩给去掉 2使用火狐浏览器,这个就比较好,在lr启动的时候就去勾选 ...
- loadrunner录制、加载以及分析过程
loadrunner主要组件包括: Virtual User Generator(录制脚本,编写脚本直到调通) Controller(加载脚本,设计并发人数.监控点之类的,模拟场景,开始性能测试,最后 ...
随机推荐
- python开发_logging_日志处理
在很多编程语言中,都会出现日志处理操作,python也不例外... 接下来我们来看看python中的logging模块 ''' python中,logging模块主要是处理日志的. 所谓日志,可理解为 ...
- UVALive 5971
Problem J Permutation Counting Dexter considers a permutation of first N natural numbers good if it ...
- 机器学习(4):BP神经网络原理及其python实现
BP神经网络是深度学习的重要基础,它是深度学习的重要前行算法之一,因此理解BP神经网络原理以及实现技巧非常有必要.接下来,我们对原理和实现展开讨论. 1.原理 有空再慢慢补上,请先参考老外一篇不错的 ...
- Maven根据不同环境打包不同配置文件
开发项目时会遇到这个问题:开发环境,测试环境,生产环境的配置文件不同,打包时经常要手动更改配置文件,更改的少还可以接受,但是如果需要更多个配置文件,手动的方法就显得非常笨重了. 下面介绍一种方法,利用 ...
- sunstudio 12.3 on solaris 10
#include <stdio.h> #include <stdlib.h> #define RPT 10000000 int main() { int i=1; for( i ...
- 编译Opencv的GPU,利用CUDA加速
首先检查自己的机器是否支持,否则都是白搭(仅仅有NVIDIA的显卡才支持.可在设备管理器中查看) 假设不用GPU.能够直接官网下载预编译好的库 环境: 1 VS2013 2 Opencv2.4.9 3 ...
- 使用C#中的out关键字,用世界杯演绎
今年的世界杯好看至极,充满着故事性.戏剧性.无论你平常踢不踢球,也不管你是否懂球,你总能从中获得些许的情感释放.世界杯似乎超越了足球本身,成为世界各地人们的"情感总和",一场场比赛 ...
- C语言内存分析
C语言内存分析 一.进制 概念:进制是一种计数方式,是数值的表现形式 4种主要的进制: ①. 十进制:0~9 ②. 二进制:0和1 ③. 八进制:0~7 ④. 十六进制:0~9+a b c d e f ...
- 【docker】linux系统centOS 7上安装docker
要求: 一个centOS 7系统 虚拟就上安装CentOS 7步骤 本文操作在本机上使用xshell连接虚拟机上的centOS 7进行操作 1.Docker 要求 CentOS 系统的内核版本高于 ...
- C++ Primer 学习笔记_72_面向对象编程 --句柄类与继承[续]
面向对象编程 --句柄类与继承[续] 三.句柄的使用 使用Sales_item对象能够更easy地编写书店应用程序.代码将不必管理Item_base对象的指针,但仍然能够获得通过Sales_item对 ...