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