相信大家都知道在开展接口测试或者是接口面试的过程中,我们会发现很多接口需要依赖前面的接口,需要我们动态从前面的接口返回中提取数据,也就是我们通常说的关联。关联通俗来讲就是把上一次请求的返回内容中的部分截取出来保存为参数,用来传递给下一个请求使用。最常见的就是在登录接口中获取token,供其他接口进行请求体或请求头使用
今天获取token我是直接写出两种方式,一种是使用“正则表达式提取器”一种是“JSON提取器”,
正则表达式提取器:使用正则表达式的方法把我们需要提取的内容通配出来(原理:通过左右二边不变的边界来提取中间变的返回值 )
1. 在登陆请求中,添加一个正则表达式提取器,获取token,其正则表达式为:“token”:"(.+?)"
说明:
(1)引用名称:下一个请求要引用的参数名称,如填写token,则可用${token}引用它。
(2)正则表达式:
():括起来的部分就是要提取的。
.:匹配任何字符串。
+:一次或多次。
?:在找到第一个匹配项后停止。
(3)模板:用KaTeX parse error: Can't use function '$' in math mode at position 28: …式中有多个正则表达式,则可以是$̲23$等等,表示解析到的第几个值给title。如: 1 1 1表示解析到的第1个值
(4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0
(5)缺省值:如果参数没有取得到值,那默认给一个值让它取,我填的Error。
2. 将token值设为全局变量,KaTeX parse error: Expected group after '_' at position 2: {_̲_setProperty(to…{token},)}
3. 在需要进行测试的HTTP请求的:首先看一下http请求的结构,如果在token在请求头,就创建一个HTTP信息头管理器中使用上面获取的token,如果在请求体内,就直接放在请求参数中,参数化方式都是一样的${__property(token)}
4. 然后就直接运行,就可以了
JSON提取器:如果返回是json格式时可以使用json提取器
1. 在登录接口下,创建json提取器
说明:
Name of created varialies:即下一个请求要引用的参数名称,如填写token,则可用${token}引用它。
JSON Path expressions:填写jsonpath,格式:$. 节点名称 根节点用 “.” 表示(新版本jmeter格式已经优化了,上图中就是优化后的写法,还是比较方便的)
Match Numbers:0代表随机,-1代表所有,其余正整数代表将在检查的内容中,第几个匹配的内容提取出来。
Default Values:找不到时默认值,一般设置为NOT FOUND
Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”
2. 将token值设为全局变量,KaTeX parse error: Expected group after '_' at position 2: {_̲_setProperty(to…{token},)}
3. 在需要进行测试的HTTP请求的:首先看一下http请求的结构,如果在token在请求头,就创建一个HTTP信息头管理器中使用上面获取的token,如果在请求体内,就直接放在请求参数中,参数化方式都是一样的${__property(token)}
4. 然后就直接运行,就可以了