为了完成一个用例中的业务逻辑,时常需要通过在上一个请求的响应报文中抽取相关的数据,从而将其应用在下一个或以后的请求中,从而实现一系列完整的流程。
1.使用JSON Path Assertion
添加一个JSON Path Assertion:右键一个sampler→添加→断言→JSON Path Assertion
例如,请求注册的相应报文为:
Destination Variable Name中填入后续引用该响应报文中的参数值的参数名,JSONPath Expression中填入想要抽取的JSON格式的响应报文中的对应参数名,Default Value中填入当抽取失败时候的响应值。
2.使用BeanShell Post Processor
添加一个BeanShell Post Processor:添加→后置处理器→BeanShell Post Processor
通过getJSONobject获取响应报文的数据,通过getJSONArray获取列表中key=email的值,再通过内置对象vars.put将其赋给emailName参数。
从下一个请求的请求结果可以测出emailName的值是否传成功
3.利用正则表达式提取器
添加正则表达式提取器:添加→后置处理器→正则表达式处理器
引用名称为后续引用该响应报文中的参数值的参数名;正则表达式为提取内容的正则表达式;模板:用$$引用起来,如果在正则表达式中有多个提取表达式,则可以是$1$,$2$等等,表示解析到的第几个值给emailName,正则表达式的提取模式,值从1开始,值0对应的是整个匹配的表达式;匹配数字(0代表随机):0代表随机,-1代表所有;缺省值:抽取数据失败时候的响应值。
4.使用JSON Content Extractor
添加一个JSON Content Extractor:添加→后置处理器→JSON Content Extractor
产生的变量名称:后续引用该响应报文中的参数值的参数名;JSON数组路径描述:$.email表示在JSON数组中的的key=email的变量;目标值key为需要提取的数据名称;其他匹配值需要输入响应报文中其他的数据;变量默认值为当变量没有获取到时返回的值。