Jmeter之接口关联
接口关联介绍
学习jmeter时间并不长,个人理解的接口关联:就是在接口A的响应数据中获取想要的值存成变量,以变量的形式传给其他接口使用。在此过程中有两个注意点:
1、提取器,从响应数据中提取想要的数据,保存成变量
2、存入系统变量,提取器提出保存的数据,只能在线程组内使用,但日常工作中免不了要跨线程组,故要将其存入环境变量中
提取器
提取器有多种,由于本文重点是接口关联,就不详细介绍,后续我会专门写一个关于提取器的博文,那这里先以最常用的JSON提取器为例子继续介绍。
首先介绍一下我们测试接口,
接口A: 登录
接口B:通过token查找用户信息
对于这两接口的关联,基本的处理方式,现通过接口A登录,然后获取接口A的响应数据中的token值,然后再以变量的方式传给接口B,去获取用户的信息。
1、执行登录接口
2、使用json提取器从响应信息中提取token的值
设置json提取器
json提取式:
当响应数据为json格式,可通过$.key.key的形式取值
调试取样器
添加调试取样器后在察看结果树中能看到我们在脚本中所有参数化变量所取的值,这样有利于我们排错,如下图,在调试取样器中,可看出,token已经取出。
存入环境变量
目前取出的token只能在线程组内使用, 要想跨线程组调用,需将他存入系统变量,这里需要使用Beanshell后置处理程序
1、添加Beanshell后置处理程序
这时需要用到jmeter内置函数__setProperty(tool–函数助手对话框–选择setProperty)
点击生成,将生成的函数字符串复制到Beanshell中
,在测试计划–添加–非测试元件–属性显示,这里存放到系统变量,执行后可以在属性显示中查看token已经存在系统变量中
在另一个线程组中调用
这里同样需要用到内置函数__P,引⽤jmeter内置变量
将生成的函数字符串粘贴到请求参数的Value中
由于接口B的参数依赖接口A,所有要有先后执行顺序,在测试计划中勾选“独立运行每个线程组实现”
然后运行即可