jmeter关联技术
关联概述
遇到的问题:
-
有一个购买商品的接口,必须要先登录才能购买商品
-
调用的时候传一个token的参数,服务端会判断token是否过期或者token是否正确,如果正确的话,那就是登录成功了,就可以买东西了
-
关联的作用
- 关键操作:先获取到token?------提取
- 断言是:从返回的结果中检查有没有预期值----对比
- 关联:获取到返回的值,然后保存起来,给别的请求使用,或者做一些其他的处理
-
jmeter中的关联
- 请求之间的数据传递
- jmeter使用正则表达式提取器提取响应中的特定内容
正则表达式
正则表达式语法:
-
正则表达式
- ()括起来的部分就是要提取的
- .匹配任何字符串
- +一次或多次
- ?不要太贪婪,在找到第一个匹配项后停止
-
1、提取单个字符串
假如要匹配web页面的如下部分:
name=‘file’ value=‘readme.txt’> 并提取readme.txt
一个合适的正则表达式:
name=‘file’ value=‘(.+?)’> -
2、提取多个字符串
假如要匹配web页面的如下部分:
name=‘file.name’ value=‘readme.txt’> 并提取file.name readme.txt
一个合适的正则表达式:
name=‘(.+?))’ value=‘(.+?)’>
这样就创2个组,分别用于$ 1 $ 和 $ 2 $
引用名称:MYREF 模板: $1 $$2$ -
3、如下变量的值将会被设定:
MYREF: file.name readme.txt
MYREF_g0: name=‘file.name’ value=‘readme.txt’>
MYREF_g1: file.name
MYREF_g2: readme.txt
在需要引用的地方可以通过:
${MYREF}, ${MYREF_g1}
正则表达式提取器
使用场景
- 1、第二个请求参数中需要加入第一个请求的返回值时
- 通过正则提取器可以提取第一个请求返回值中指定的字段信息并赋值,然后给第二个请求使用
参数-详情
- 1、引用名称:就是变量名,调用使用${name}
- 2、正则表达式:()括号里表示你要的数值。
- 3、$$表示你要用那个正则表达式那个模板获取的值,只有一个正则一般填写1,即 $1 $
- 4、匹配数字:匹配到多个值取第几个
-1 表示全部,0随机,1第一个,2第二个
*5、缺省值:这个如果没有匹配到,给它定义的一个默认值
实战案例
获取title
调试取样器相当于debug,可以看到各个变量
点击签到,需要用到课程id,也就是上一个请求的课程id,需要做关联