性能测试第五篇—JMeter关联

关联:当请求之间有依赖关系的时候,比如说一个请求的入参是另一个请求的返回数据,这时候就需要用到关联处理。

JMeter 中常用的关联方法:

--正则表达式提取器

--Xpath提取器

--Json提取器

(一)正则表达式提取器

正则表达式:就是一个公式,或者说一套规则,使用这套规则可以从任意字符串中提取出想要的数据内容

公式格式:左边界(匹配符号)右边界:可以提取出想要获取的数据内容
. :是通配符,可以代表任意字符(除换行回车)
* : 代表前面的字符出现0次或者多次
. *匹配规则:找到左边界值后,往右查找有边界,找到最后面的右边界,中间的所有数据都被记录下来
? : 代表非贪婪匹配,找到左边界后,往右查找匹配右边界,只要有匹配的右边界就停止继续查找;再次查找左边界和右边界

公式格式:左边界(.*?)右边界
案例一:百度一下,你就知道百度一下,你就知道
答案:(.*?)

案例二:原始文本:
021-1234-1234
022-1234-1235
023-1234-1236
024-1234-1237
025-1234-1238
026-1234-1239
027-1234-1230
要求:匹配出 城市号、地区号、个人号码三组

答案:(.*?)-(.*?)-(.*?)\n

操作步骤:

测试计划 --> 线程组--> HTTP请求 --> (右键添加) 后置处理器 --> 正则表达式提取器

练习: https://www.jd.com ,获取网页的 title 值、https://www.baidu.com/ ,把获取到的 title值作为请求参数

性能测试第五篇—JMeter关联_第1张图片

引用名称:参数名称 引用${参数名称}

正则表达式 : 左边界 (.* * ?)右边界

模板: 用 $$ 引用起来如:$1$表示解析到的第1个值 解析到第几个值

匹配数字:0代表随机取值,-1代表全部取值,1代表取第一个值

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

(二)Xpath提取器

Xpath匹配规则:

作用:用于匹配HTML格式的响应数据

HTML组成:标签+属性

匹配规则://标签名

匹配特定属性的标签://a[@属性名=属性值]

位置:添加方式:测试计划---线程组---http请求---(右键添加)后置处理器

性能测试第五篇—JMeter关联_第2张图片

 use tidy:当需要处理的页面是HTML格式时,必须选中改选项

当需要处理的页面是XML或XHTML格式时,取消选中改选项

引用名称:存放提取出的值是参数的名称

xpath Query:用于提取值的Xpath表达式

匹配数字:-1提示所有提取的结果,1表示第一个值,0表示随机

(三)Json提取器

Xpath匹配规则:

作用:针对json格式的响应结果数据进行提取

位置:添加方式:测试计划---线程组---http请求---(右键添加)后置处理器

性能测试第五篇—JMeter关联_第3张图片

 参数介绍:

Names of created variables :存放提取出的值的参数名称

Json path Expression: JSON路径表达式

(四)Jmeter属性

Xpath匹配规则:

作用:针对json格式的响应结果数据进行提取

位置:添加方式:测试计划---线程组---http请求---(右键添加)后置处理器

当有关联关系的两个请求在同一个线程组中时,可以使用三种提取器的变量实现数据传递。

当有关联关系的两个请求在不同的线程组中时,需要借助JMeter属性。

__setProperty 函数:将值保存成 JMeter属性

__property 函数:在其他线程组中使用 property 函数 读取属性

__ setProperty 函 数执行( ( 保存 JMeter 属性 ):
—— 需 要通过 BeanShell 取样器 来执

__property 函 数 (读 取属 性)
—— 在 其他线程组中使用 property 函数

性能测试第五篇—JMeter关联_第4张图片

你可能感兴趣的:(性能测试,压力测试)