JMeter的.从beanshell预处理器获取当前的HTTP sampler正文数据

v0d*_*vil 3 jmeter load-testing

在HTTP Sampler中发送查询之前,我需要在beanshell预处理器中对此查询进行一些更改.那么,问题是如何从beanshell预处理器访问当前的采样器主体数据?我可以获取Name,Path,IP等(例如sampler.getPropertyAsString("HTTPSampler.domain")),但不知道如何获取正文数据.

Dmi*_*i T 9

请在下面找到答案(假设我们正在讨论HTTP请求)

  • 名称: sampler.getName()
  • IP: sampler.getUrl().getHost()
  • 路径: sampler.getUrl().getPath()
  • 如果您需要请求参数:

    Arguments arguments = sampler.getArguments();
    for (int i=0;i<arguments.getArgumentCount();i++)
    {
        Argument argument = arguments.getArgument(i);
        String name = argument.getName();
        String value = argument.getValue();
        // do what you need
    }
    
    Run Code Online (Sandbox Code Playgroud)

如果您需要更多信息,请参阅HTTPSamplerProxy JavaDoc

如果它不是HTTP请求,您可以找出此sampler变量所指的类

log.info(sampler.getClass().getName());
Run Code Online (Sandbox Code Playgroud)

从jmeter.log文件中找出类名并查找JavaDoc.

有关Beanshell脚本的更多信息,请参阅如何使用BeanShell:JMeter最喜欢的内置组件指南.

  • 如果您正在寻找无法表示为名称 - 值对的原始主体,那么它将是第一个参数的值.你可以把它称为`sampler.getArguments().getArgument(0).getValue())` (3认同)