话说LoadRunner有的一些功能,比如:参数化、检查点、集合点、关联,Jmeter也都有这些功能,只是功能可能稍弱一些,今天就关联来讲解一下。

JMeter的关联方法有两种:后置处理器-正则表达式提取器与XPath Extractor。

一、正则表达式提取器

1、添加正则表达式

在需要获得数据的上一个请求上右击添加一个后置处理器-->正则表达式提取器

解释

(1)引用名称:下一个请求要引用的参数名称,如填写activityID,则可用${activityID}引用它。

(2)正则表达式

    ()括起来的部分就是要提取的。

    .匹配任何字符串。
    +:一次或多次。
    ?:不要太贪婪,在找到第一个匹配项后停止。
注:(.+?)[.\n]+可以匹配换行符在内的所有字符。

(3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来的东东),则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值

(4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0,如果在LR中,取出的值是一个数组,还得处理一下,LR11版本用一个随机的函数就可以不用写大段的代码来处理数组。

(5)缺省值:如果参数没有取得到值,那默认给一个值让它取。

2、关于正则表达式的举例说明

(1)提取单个字符串:
假设测试人员期望匹配Web页面的如下部分:name = "file" value = "readme.txt">并提取readme.txt。
一个符合要求的正则表达式:name = "file" value = "(.+?)">。
():封装了待返回的匹配字符串。
.:匹配任何字符串。
+:一次或多次。
?:不要太贪婪,在找到第一个匹配项后停止。
 
(2)提取多个字符串:
假设测试人员期望匹配Web页面的如下部分:name = "file" value = "readme.txt">并提取file和readme.txt。
一个符合要求的正则表达式:name = "(.+?)" value = "(.+?)"。
引用名称:MYREF
模板:$1$$2$
 
如下变量的值将会被设定:
MYREF_g0:name = "file"value = "readme.txt"
MYREF_g1:file
MYREF_g2:readme.txt
引用${MYREF_g1}

3、使用该关联的请求

如下图:

4、完整的例子事例代码

二、XPath Extractor

XPath Extractor是另一个可被用来提取页面给定内容的Post Processor,XPath Extractor的使用方式与Regular Expression Extractor类似,只不过需要在该Extractor中指定的不是正则表达式,而是给定的XPath路径。

用xpath从前一个请求中取。这种形式比较适合于返回为xml片段的情况。在需要获得数据的请求上右击添加一个后置处理器-->xPath Extractor。引用名称即下一个请求要引用的参数名称,如填写body,则可用${body}引用它。

Xpath一般用于返回xml用得多。

XPath Extractor的设置界面:

l  Use Tidy?:当需要处理的页面是HTML格式时,必须选中该选项,当需要处理的页面是XML或XHTML格式(例如,RSS返回)时,取消选中该选项。

l  Reference Name:存放提取出的值的参数。

l  XPath Query:用于提取值的XPath表达式。

l  Default Value:参数的默认值。

三、小结这两种方式

正则表达式提取器和XPath Extractor都可以用来提取给定页面中的特定文本,并将其保存在参数中,这两种方式各有优缺点。

正则表达式提取器可以用于对页面任何文本的提取,提取的内容是根据正则表达式在页面内容中进行文本匹配;

而XPath Extractor则可以提取返回页面任意元素的任意属性。

相比较而言,

如果需要提取的文本是页面上某元素的属性值,建议使用XPath Extractor;

而如果需要提取的文本在页面上的位置不固定,或者不是元素的属性,建议使用正则表达式提取器。

JMeter学习(二十三)关联的更多相关文章

  1. <转>jmeter(二十三)分布式测试

    本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...

  2. jmeter(二十三)分布式测试

    jmeter用了一年多,也断断续续写了一些相关的博客,突然发现没有写过分布式测试的一些东西,这篇博客就介绍下利用jmeter做分布式测试的一些技术点吧,权当参考... 关于jmeter的介绍和元件作用 ...

  3. linux启动jmeter(二十三),执行./jmeter.sh报错解决方法(转载)

    转载自 http://www.cnblogs.com/yangxia-test 1.l-bash: ./jmeter.sh: Permission denied解决办法:jmeter.sh的执行权限改 ...

  4. Salesforce LWC学习(二十三) Lightning Message Service 浅谈

    本篇参考: https://trailhead.salesforce.com/content/learn/superbadges/superbadge_lwc_specialist https://d ...

  5. Jmeter(二十三)Jmeter-Question之“批量造数据”

    日常工作中,无论是在做功能测试.接口测试还是性能测试,经常会有这么一个场景出现,“那个谁谁谁,帮我加几条订单”,“那个某某某,给购物车增添几个产品”,“在数据库加几百条数据”...等等,通常少数量,或 ...

  6. JMeter学习(十三)目录介绍(转载)

    转载自 http://www.cnblogs.com/yangxia-test JMeter也学了一阵子了,对于基本的操作已了解,再回过头来看看Jmeter的目录,本篇是对于它的目录进行一些简单的介绍 ...

  7. ballerina 学习二十三 扩展ballerina

    扩展ballerina 目前有三种方式: 扩展client connector的包 (数据库访问,基础设施,api) 扩展server listenner 绑定为不同的协议 添加新的注解到baller ...

  8. JMeter学习(十三)JMeter使用中遇到的问题:Jmeter Debug - "Unrecognized VM option '+HeapDumpOnOutOfMemoryError"

    启动JMeter.bat的程序时,出现以下出错信息: Unrecognized VM option '+HeapDumpOnOutOfMemoryError' Could not create the ...

  9. Jmeter(二十三)稳定性测试后的波形图

    jmeter-plugins.org 这个网站为 JMeter 提供了一些增强型功能的插件,使用起来就像 Eclipse 装插件一样,完全做到了插件的可插拔特性.本文简要介绍如何使用这些插件让你的 J ...

  10. 前端学习(二十三)DOM操作,事件(笔记)

    javascript 组成部分    1.ECMAScript        javascript的核心解释器 2.DOM        Document Object Modle         文 ...

随机推荐

  1. Newtonsoft 反序列化字符串

    string json=“[{“name”:”zhangsan”,”age”:”12”},{“name”:”zhangsan”,”age”:”12”}]” 方法1: JArray arr = (JAr ...

  2. oracle数据库_实例_用户_表空间之间的关系

    基础概念:Oracle数据库.实例.用户.表空间.表之间的关系 数据库:Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件).其实Oracle数据库的 ...

  3. Java IO流杂谈

    创建文件和删除文件(File类) import java.io.File; import java.io.IOException; public class T2 { public static vo ...

  4. conda管理python包

    参考:http://blog.sina.com.cn/s/blog_c3c116470102wlv5.html 查看python,numpy,scipy,matplotlib的版本及安装位置: htt ...

  5. *使用配置类定义Codeigniter全局变量

    之前提到的 CodeIgniter 引入自定义公共函数 这篇文章提到了公共函数实现,全局的变量也可以借助 helper 函数来实现.不过,更为合适的方式可能要属用配置类定义了. CodeIgniter ...

  6. 下载vc++运行库

    之前下载vc++运行库都是百度,从中关村.当下等软件网站下载,但是最近这些网站涉及到安全问题,所以从官网下载比较合适 微软官网-中文 在搜索中 搜索vc++2010/2015等,搜索结果中找到xxxx ...

  7. shell学习(四)

    一.字符截取 expr 基本用法 expr  substr   $var1   起始位置    截取长度,如: [root@localhost mnt]# a=Centos6.9[root@local ...

  8. spring过滤器

    什么是过滤器 Spring 中不能处理用户请求,但可以用来提供过滤作用的一种Servlet规范.在请求进入容器之后,还未进入Servlet之前进行预处理,并且在请求结束返回给前端这之间进行后期处理.具 ...

  9. 戏说 Spring MVC 框架

    Spring MVC 是 Spring 框架的一部分,和 Struts 一样都是属于 web 层框架,根据项目分层的思想,一个项目基本可以分为持久层,业务层和 web 层.而 Spring MVC 主 ...

  10. 苹果Mac OS 显示隐藏文件

    苹果Mac OS 操作系统下,隐藏文件默认为隐藏状态,隐藏文件是否显示有多种方法可以设置. 方法一: 打开终端,输入命令行 显示Mac隐藏文件的命令: defaults write com.apple ...