后置提取常见的方式:正则表达式和JSON Extractor。
而接口响应大多是JSON格式。
在JSON提取器之前,可以根据响应结果去编写所需要的JSON表达式,在结果树中选择JSON PATH TESTER。
{"server_time": 1232333333333,"data": {"num": 10,"list": [{"id": 1,"orderno": "001"},{"id": 2,"orderno": "002"}]},"success": true
}
如提取第一层的server_time,则为:$.server_time。
如提取第二层的num,则为:$.data.num。
如果要提取第三层第一个orderno的值,list是一个数组,第一个orderno在list[0]下,则提取表达式为:$.data.list[0].orderno。
如果获取list数组下所有orderno的值,则为:$.data.list[*].orderno。
表达式写对后应用到JSON提取器,邮件Sampler增加PostProcessor-》JSON Extractor。
Name of created Variables:提取的值存放的变量名称,多个用分号隔开
JSON Path Expression:表达式,支持多个表达式,用分号隔开
Match No:0代表随机,1代表第一个,-1代表所有,多个用分号隔开
Compute concatenation var:如果匹配所有时,就将所有值存入变量名_ALL中
Default Value:提取不到值时的默认值
如上述示例:
增加Beanshell后置处理器,用来打印提取内容,执行结果如下:
name1 = vars.get("name1");
log.info(name1);
name2 = vars.get("name2");
log.info(name2);