为什么要进行关联:当我们在对系统进行测试时,本次操作或下一次操作对服务器提交的请求,参数中有部分参数需要服务器返回动态变化的值, 如cookie或token或userid等数据.
关联数据的规则: 首先这个值是动态变化的, 其次是由服务器动态返回的, 最后会对请求结果产生影响.
在Jmeter中关联数据的常用的处理方式有以下几种方法:
1、正则表达式提取器
2、Boundary Extractor边界提取器
3、Json Extractor提取器
一、正则表达式提取器
在要关联的请求下右键点击添加-后置处理器-正则表达式提取器
进入响应结果界面, 将格式选择为RegExp Tester, 然后通过正则表达式获取数据.
e.g. 通用匹配规则: 将需要关联的数据 替换为(.*?)
在正则表达式提取器中进行设置:
1. 引用名称, 即后续使用时进行调用的变量名称 通过${变量名}即可使用获取到的变量数据.
2. 模板$1$意思是,如果有多个动态变化的值,$1$代表获取匹配到的第一个数据,如果有多个动态变化的值需要关联那么直接多添加几个正则表达式提取器就可以了,然后在要关联的值里填入 ${变量名 }
说明:
后置处理器:在请求结束或者返回响应结果时发挥作用
正则表达式提取器:允许用户从服务器的响应中通过使用获取userid的正则表达式提取值。该元素会作用在指定范围取样器,用正则表达式提取所需值,生成模板字符串,并将结果存储到给定的变量名中。
模板:代表从正则表达式结果引用的样式,其实结果是一组,而不是一个。$0$代表这一组结果的全部,$1$代表这一组结果的第1个,以此类推;$1$$2$代表该正则表达式一组结果中的第1个和第2个,两个结果在一起中间没有间隔;$3$,$4$代表该正则表达式一组结果中的第3个和第4个,两个结果间有一个逗号相连。
匹配数字:0代表正则表达式结果组中随机,1代表全部。
缺省值:当引用不对时显示传递的信息,一般写一个ERROR。
二、Boundary Extractor
在你要关联请求右键点击添加—后置处理器-边界提取器
进入响应结果界面, 将格式选择为边界提取器测试, 然后需要提取数据的左边界与右边界,点击测试获取数据.
进入都边界提取器界面将确定的左边界与右边界, 引用变量名称进行输入.
使用获取到的关联数据时,通过${变量名} 进行引用即可.
三、Json Extractor提取器:
当传数据返回的是一个Json格式,如{"name":"sojson","url":"www.qftestjson.com"}这样的格式又或者是如下
{
'status': 1.
'msg': '登陆成功',
'result': {
'user_id': 8.
'email': '123456@sina.com',
'password': '519475228fe35ad067744465c42a19b2',
'level_name': '倔强青铜'
}
}
在你要关联请求右键点击添加—后置处理器—JSON Extractor
进入响应结果界面, 将格式选择为JSON Path Testter, 然后通过JSON Path语法获取数据.
调试通过后, 进入JSON Extractor页面, 将调试成功的JSON Path语法填写在JSON Path exressions中即可. Variable Names为引用变量名称, 后续通过${id}引用变量名即可使用关联数据.
以上三种方式, 在实际使用中, 正则表达式提取器与JSON Extractor使用较多, 应重点掌握.
更多关于软件测试培训的问题,欢迎咨询千锋教育在线名师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖名师,让你轻松从入门到精通。