文章目录
- 一、关联
- 1.1 什么是关联
- 1.2 常用的关联方法
- 二、正则表达式提取器
- 2.1 场景
- 2.2 正则表达式
- 2.3 操作方法(2种)
- 2.3.1 方法1-(.*)
- 2.3.2 方法2-(.*?)
- 2.4 参数设置
- 三、XPath提取器
- 3.1 场景
- 3.2 Xpath语法
- 3.3 操作方法
- 3.4 参数设置
- 四、JSON提取器
- 4.1 场景
- 4.2 操作方法
一、关联
1.1 什么是关联
当请求之间有依赖关系,一个请求的入参,需要使用到之前请求的响应数据时,需要使用关联。
JMeter可以通过“后置处理器”中的一些组件来处理关联。
1.2 常用的关联方法
- 正则表达式提取器
- XPath提取器
- JSON提取器
二、正则表达式提取器
添加方式: 测试计划 --> 线程组–> HTTP请求 --> (右键添加) 后置处理器 --> 正则表达式提取器
2.1 场景
需求:将 http://www.itcast.cn , 网页的title内容提取出来,作为 https://www.baidu.com 的请求参数使用。
应用场景:
- 请求间有数据依赖关系
- 正则表达式提取器可以提取任意格式的响应数据
2.2 正则表达式
<title>百度一下,你就知道</title></head><title>(.*?)</title>. 是通配符,可以代表任意字符(除换行回车) * 代表前面的字符出现0次或者多次 .* 匹配规则:找到左边界值后,往右查找右边界,找到最后面的右边界,中间的所有数据都被记录下来 ? 代表非贪婪匹配,找到左边界后,往右查找匹配右边界,只要有匹配的右边界就停止继续查找; 左边界(.*?)右边界:可以提取出想要获取的数据内容2.3 操作方法(2种)
1、添加线程组、http请求-itcast(必须在前)、http请求-百度(必须在后)、查看结果树
2、http请求-itcast–> 后置处理器 --> 正则表达式提取器
3、设置正则表达式提取器
①引用名称:下一个请求要引用的参数名称,如填写title,则可用${title}引用它 ②正则表达式 () 括起来的部分就是要提取的。 . 匹配任何字符串。 + 一次或多次。 ? 不要太贪婪,在找到第一个匹配项后停止。 ③模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。 --如$1$表示解析到的第1个值 ④匹配数字:0代表随机取值,-1代表全部取值,1代表取第一个值 ⑤缺省值:如果参数没有取得到值,那默认给一个值让它取。4、使用提取到的数据 ${变量名}
5、方便查看正则表达式匹配结果,可以在线程组添加"取样器"
2.3.1 方法1-(.*)
2.3.2 方法2-(.*?)
从查看结果树中,使用调制取样器。
2.4 参数设置
三、XPath提取器
- X:代表 xml 或 xhtml(从html直接转换)
- path:按路径匹配
- 添加方式: 测试计划 --> 线程组–> HTTP请求 --> (右键添加) 后置处理器 --> XPath提取器
3.1 场景
需求:将 http://www.itcast.cn , 网页的title内容提取出来,作为 https://www.baidu.com 的请求参数使用。
应用场景:只能适用于响应结果为HTML或XML格式的情况。
3.2 Xpath语法
//title 相对路径的语法3.3 操作方法
1、添加线程组
2、添加HTTP请求——xx播客首页
3、添加xpath提取器
- 勾选Use Tidy
- 填写引用名称:参数名
- Xpath路径
4、添加HTTP请求——百度首页
- 引用xpath提取器中定义的参数名:${参数名}
5、添加查看结果树
3.4 参数设置
1、Use Tidy (tolerant parser):如果勾选此项,则使用Tidy将HTML响应解析为XHTML。当需要处理的页面是HTML格式时,必须选中该选项, 当需要处理的页面是XML或XHTML格式(例如,RSS返回)时,取消选中该选项。
2、引用名称: 存放提取出的值的参数
3、XPath Query: 用于提取值的XPath表达式
4、匹配数字: 如果XPath路径查询导致许多结果, 则可以选择提取哪个作为变量
0: 表示随机 -1:表示提取所有结果(默认值),它们将被命名为<变量名>_N(其中N从1到结果的个数) X: 表示提取第X个结果。如果这个x大于匹配项的数量,则不返回任何内容。将使用默认值5、缺省值: 参数的默认值
四、JSON提取器
添加方式: 测试计划 --> 线程组–> HTTP请求 --> (右键添加) 后置处理器 --> JSON提取器
4.1 场景
需求:请求获取天气的接口 ,获取 城市名称 作为 百度 请求参数。
天气的接口 https://www.weather.com.cn/data/sk/101010100.html 请求:https://www.baidu.com/s?wd=北京,把获取到的城市名称作为请求参数 { "weatherinfo": { "isRadar": "1", "rain": "0", "temp": "18", "city": "北京", "WSE": "1", "qy": "1011", "njd": "暂无实况", "cityid": "101010100", "WD": "东南风", "SD": "17%", "Radar": "JC_RADAR_AZ9010_JB", "time": "17:05", "WS": "1级" } }应用场景:适用于返回响应的数据类型为JSON格式的情况。
4.2 操作方法
1、创建线程组、http请求-天气、http请求-百度、查看结果树
2、http请求-天气 --> (右键添加) 后置处理器–>JSON提取器
3、JSON提取器 设置
Namesofcreated variables: 变量名(保存提取到的json数据)JSONPath Expressions:JSON路径表达式4、http请求-百度,使用 ${变量名} 来使用保存提取到的json数据。