我正在使用一个faker.jar插件在json文件内部生成随机数据
JSON文件就像
{
"name" = "${__BeanShell(new com.github.javafaker.Faker().name().fullName())}"
"id" = "${__BeanShell(new com.github.javafaker.Faker().IdNumber())}"
}
在jmeter中,我正在使用http采样器
这工作正常,但是现在我想评估带有响应的请求,因此我想将请求主体保存在一个变量中,并将该变量传递给http请求,然后使用后处理针对响应评估请求,但是我无法在预处理器中使用$ {__ eval()}函数。
解决方法
答案 0 :(得分:1)
将以下代码放入“脚本”区域:
vars.put('foo', sampler.getArguments().getArgument(0).getValue())
3就这样,PreProcessor将从HTTP Request采样器获取主体数据,并将其存储到${foo}
JMeter变量中。
请注意,according to JMeter Best Practices应该使用__groovy() function而不是__Beanshell(),因此请考虑在下一个可用机会时修改JSON文件。
还请注意,JMeter提供了一些内置函数,允许生成随机值,例如__Random(),__RandomString(),__UUID()等,因此您甚至可能会丢弃第三方库因为JMeter内置函数提供了更好的性能。