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

最佳答案

请在下面找到答案(假设我们在谈论 HTTP Request )

  • 名称: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
    }
    

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

    如果它不是 HTTP 请求,你可以弄清楚这个 sampler 变量指的是什么类
    log.info(sampler.getClass().getName());
    

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

    有关 Beanshell 脚本的更多信息,请参阅 How to use BeanShell: JMeter's favorite built-in component 指南。

    关于米特。从 beanshell 预处理器获取当前的 HTTP 采样器主体数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26355477/

    10-11 02:44