jmeter Beanshell PostProcessor删除标头抛出异常

时间:2017-05-18 07:36:17

标签: testing jmeter

当我使用BeanShell PostProcessor删除标题时,出现了问题 我的代码:


import org.apache.jmeter.protocol.http.control.Header; 

sampler.getHeaderManager().removeHeaderNamed("Authorization");

异常:


2017/05/18 15:24:52 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval   Sourced file: inline evaluation of: ``import org.apache.jmeter.protocol.http.control.Header;   sampler.getHeaderManage . . . '' : Attempt to resolve method: getHeaderManager() on undefined variable or class name: sampler 

2017/05/18 15:24:52 WARN  - jmeter.extractor.BeanShellPostProcessor: Problem in BeanShell script org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval   Sourced file: inline evaluation of: ``import org.apache.jmeter.protocol.http.control.Header;   sampler.getHeaderManage . . . '' : Attempt to resolve method: getHeaderManager() on undefined variable or class name: sampler 
有人帮助我

1 个答案:

答案 0 :(得分:2)

  1. 您在PostProcessor中没有sampler简写,如果您需要从上一个采样器中删除标题,相关代码应如下所示:

    ctx.getCurrentSampler().getHeaderManager().removeHeaderNamed("Authorization");
    
    • ctxJMeterContext班级实例的简写
    • 请注意PostProcessors在请求之后执行,因此请确保您的实施符合您要实现的目标
  2. 如果您需要在之前删除标题,请考虑使用PreProcessor。在这种情况下,您将能够使用sampler简写
  3. 我建议考虑使用JSR223 Test ElementsGroovy language作为Beanshell的替代方案,因为Groovy性能要好得多,因为它更符合Java。