Jmeter断言失败提取request body中的参数

一个曾经困扰了很久的问题,翻遍全 没有找到相关的答案,分享一下。

比如一个这样的场景:

post请求,使用csv参数化导入data,当响应断言错误的时候,输出并保存该请求传入的参数值(Request Body中的POST data)。

没错,就好比我要吃一颗枣。把它放到嘴里,嚼了嚼,发现它坏了,吐出来,我要看看它是哪颗。

所以,并不是多此一举,因为这就是需求,需求即合理:-)

在Jmeter中,是没有类似正则提取器等处理器直接提取post data的方法的。

因此,只能添加一个BeanShell断言,自己写提取和处理方法。

方法:URLDecoder.decode()

如果入参是中文记得指定格式“UTF-8”,否则解码后会乱码。

这里有一点需要注意的是:

函数助手中的${__urldecode()}在Beanshell中是无效的,因为它只对常量有效,对变量无效。

例如:
data是变量,${__urldecode(data)}解码无效;
${__urldecode(“data”)}则会直接输出字符串data;
而输入常量,则有效:${__urldecode(“%IT%E6%96%87%E8%89%BA%E9%9D%92%E5%B9%B4”)}会正确解码输出;

最后将提取的错误入参保存到指定位置文件即可:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月7日
下一篇 2021年5月7日

相关推荐