【问题标题】:how to use __eval in preprocessor of jmeter如何在 jmeter 的预处理器中使用 __eval
【发布时间】:2019-03-12 18:49:34
【问题描述】:

我正在使用 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()} 函数。

如何解决这个问题

【问题讨论】:

    标签: testing jmeter jsr223


    【解决方案1】:
    1. JSR223 PreProcessor 添加为 HTTP 请求采样器的子项
    2. 将以下代码放入“脚本”区域:

      vars.put('foo', sampler.getArguments().getArgument(0).getValue())
      

      3 就是这样,预处理器将从 HTTP 请求采样器中获取正文数据并将其存储到 ${foo} JMeter 变量中。


    请注意 according to JMeter Best Practices 您应该使用 __groovy() function 而不是 __Beanshell() 因此请考虑在下次有机会时修改您的 JSON 文件。

    还请注意,JMeter 提供了一些允许生成随机值的内置函数,即__Random()__RandomString()__UUID() 等,因此您甚至可以将第三方库丢弃为 JMeter 内置函数提供更好的性能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多