在jmeter中提供了两种处理器,用于修改请求数据或处理响应数据。
前置处理器是在请求发送前做相关处理。可以用于在请求发送前修改HTTP协议头、数据部分等等各种需要修改或设置的数据。
其作用范围内的每一个sampler元件之前执行。
注: 一般情况下,大家在实践过程中,用到前置处理器的机会比较少,这里就不一一说明了,重点放在后置处理器的讲解上。
后置处理器是取样器被执行后被触发执行的元素。可用于解析响应数据,提取变量,以便后续使用。
注: json格式的支持需要安装json plugins创建
下面我们对常用的后置处理器进行说明:
用于处理响应结果为json格式的内容。
Variable names : 变量名称,提取到的值将存放在该变量里,后续通过该变量即可引用提取到的数据
JSONPath Expression:JSON表达式
Match Numbers:匹配哪个,可为空即默认第一个
Default Value:未取到值的时候默认值
示例
例如返回的json串为,我们提取token:
{ "statusCode":200,
"data":{
"userId":"admin",
"token":"12312312312338a5bd20bd"
}
}
在JSONPath Expression填入:
$.data.token来获取token的值
例如返回的json串有数组,我们提取第二个token:
{
"statusCode":200,
"data":[{
"userId":"admin",
"token":"rwerwerwr0e6138a5bd20bd"
},
{
"userId":"user",
"token":"123123123123123a5bd20bd"
}]
}
在JSONPath Expression填入:
$.data[1].token
来获取第二个token的值(注:数组的索引从0开始表示第一个)
示例
假如服务端返回如下格式的内容<title>Apache JMeter</title>
那么我们可以通过,以下xpath表达式获取到Apache JMeter字符串
//title/text()
将该xpath表达式填入在XPath query对应输入框中。
具体的示例这里就不列举了,大家自己去尝试。
本次主要就后置处理器中常用的json、xml及正则表达式处理器进行了分享。在日常测试过程中,这三种后置处理器是必须掌握的,需要深入掌握理解,同时需要对json、xpath、和正则表达式相关知识有所掌握才行。