- Debug Postprocessor
- 举例
- 作用域示例
- Json Extractor
后置处理器在Sampler运行后执行。
在测试过程中,经常需要从请求的响应数据汇总,找到某些参数,作为下一个请求的参 数,这时候需要用到后置处理器。
Debug PostprocessorDebug PostProcessor(调试后置处理器)使用前面的采样属性的详细信息创建了一个子 样例,jmeter变量、属性和系统属性。
结果的值可以在监听器—观察结果树中查看返回值。
举例
作用域示例
-
请求外(out Debug PostProcessor):
- 所有请求对Debug PostProcessor都是上一个请求,可获取当前请求之前所有测试计划、 用户定义的变量、参数化变量、 请求产生的变量数据。但无法获取请求内的前、后置 处理器定义生成的变量;
-
请求内(inner Debug PostProcessor):
- 当前所属请求为其上一个请求,可获取当前线程之前所有测试计划、用户定义的变量、 参数化变量、 请求产生的变量数据,以及当前 请求产生的变量数据。
获取Json格式响应数据的
$.error_code 、 $.result 、$.result.id
比如某一请求的返回值为:
{"statusCode":200,"data":{"userId":"4a2cbe616eb74f0d99190af072c8dea6","token":"37e7a9e198186f5a443e50e6138a5bd20bd"}}
这里因为返回的是json数据,$.data.token,获取token的值
但是有碰到一个坑
另外一个接口请求返回值为:
{"statusCode":200,"data":[{"code":"407949","id":"aa477ad2085d492a99b877d14343d68d","name":"90一中4545"}]}
同样,使用$.data.id去提取id的值时,发现获取到的数据为空
原来这个responses 的data为数组,故应为 $.data[0].id 提取第1个值
如下:
备注:
JSON中 data 是一个对象数组,data[0] 代表取的是第一个数组的对象,data[*] 代表取全部对象。
.id 取的是id的值 .name取的是name的值。
例如,返回值为:
{
: "status":0,
: "data":
: {
: : "resources":
: : [
: : : {
: : : : "id":1,
: : : : "name":"广告位"
: : : },
: : : {
: : : : "id":2,
: : : : "name":"优惠券"
: : : },
: : : {
: : : : "id":3,
: : : : "name":"实物赞助"
: : : }
: : ],
: : "trades":
: : [
: : : {
: : : : "id":546,
: : : : "tradeName":"IT/互联网"
: : : },
: : : {
: : : : "id":547,
: : : : "tradeName":"游戏/动漫"
: : : },
: : ]
: }
}
这里要分别取resources 和 trades 的所有id值,表达式可以写:$.data.trades[*].id 。(代表trades下所有子集中的id)
获取XML格式相应数据的
以“Jmeter_webservices.jmx”为例
APPly to:作用范围(返回内容的断言范围)
Main sample and sub-samples:作用于父节点的取样器及对应子节点的取样器
Main sample only:仅作用于父节点的取样器
Sub-samples only:仅作用于子节点的取样器
JMeter Variable:作用于jmeter变量(输入框内可输入jmeter的变量名称
XML Parsing Options:要解析的XML参数
Use Tidy:当需要处理的页面是HTML格式时,必须选中该选项;如果是XML或XHTML格式(例如RSS返回),则取消选中;
Quiet表示只显示需要的HTML页面,Report errors表示显示响应报错,Show warnings表示显示警告;
Use Namespaces:如果启用该选项,后续的XML解析器将使用命名空间来分辨;
Validate XML:根据页面元素模式进行检查解析;
Ignore Whitespace:忽略空白内容;
Fetch external DTDs:如果选中该项,外部将使用DTD规则来获取页面内容;
Return entire XPath fragment of text content:返回文本内容的整个XPath片段;
Reference Name:存放提取出的值的参数;
XPath Query:用于提取值的XPath表达式;
Default Value:参数的默认值;



