Beanshell断言脚本在Linux机器上失败并在Windows中工作

时间:2017-09-27 12:54:48

标签: jmeter

IN JMeter如果响应包含指定的文本,我希望500个内部服务器错误中的一些不被标记为失败。所有500个服务器错误都被标记为failure.written代码,使其成为所有失败案例的通行证。在Windows中,代码在没有错误的情况下正常运行,但是在linux机器中使所有采样器都失败。

-(void)updateValue:(int)intVal
  {
  } 

 -(void)updateValue:(float)floatVal
  {
  }

2 个答案:

答案 0 :(得分:0)

您需要添加SampleResult.setSuccessful(true);,同时删除多余的== true并删除重复的代码:

 if (ResponseCode.equals("412") || ResponseCode.equals("500")) { 
        SampleResult.setResponseOK();  
        SampleResult.setSuccessful(true);
 }

还要考虑根据Java / Oracle参数名称约定将ResponseCode更改为responseCode。

答案 1 :(得分:0)

您可以使用Response Assertion实现此目的,只需选中Ignore Status框即可。例如,如果响应将包含foo

,则下面的配置会将受影响的采样器标记为成功

JMeter Response Assertion

查看Response Assertions in JMeter 3.2 - New and Improved文章,了解有关使用Response Assertion将通过/失败标准逻辑添加到JMeter测试的更多信息。

如果您需要使用单个或多个Response Assertion实例无法实现的更复杂的断言逻辑,请考虑切换到JSR223 Assertion it is recommended to use Groovy for scripting since JMeter 3.1

关于你的问题,请仔细检查JMeter" lib" Linux机器的文件夹包含用于Beanshell脚本的bsh-2.0b5.jar文件和用于Groovy脚本的groovy-all-2.4.10.jar