响应数据中的Jmeter脚本错误消息但样本结果中的成功结果

时间:2014-02-02 16:45:27

标签: jmeter

在运行Jmeter脚本时,其中一个步骤失败,但成功结果将在样本结果中显示为:

Sample Count: 1
Error Count: 1
Response code: 200
Response message: OK

但错误消息将在响应数据中显示为:

Unfortunately, we could not delete your entire itinerary because of a database synchronization error.  
If you could please re-load your itinerary and try again, we would appreciate it.
Thank you for your patience.

我需要重新提交请求,因为我使用While循环比较响应数据,然后尝试重新提交不起作用的请求。

if(ResponseData.equals("Unfortunately")==true)
{
    log.error("Database synchronization error...Re sending Request");
    vars.put("resubmitflag","true");
}

问题我相信我没有使用正确的功能 ResponseData.equals不能像我们如何比较整个响应数据那样工作 这是不可能的。

请有人帮助您继续操作以及需要使用哪些功能。

1 个答案:

答案 0 :(得分:1)

如果您正在谈论B eanshell Post Processor,那么您的代码会遇到一些问题。

  1. ResponseData不是Beanshell Post Processor可用的东西。您需要使用data(字节数组前一个采样器响应表示)或prev(代表前一个采样器的SampleResult类)。
  2. equals方法检查2个字符串是否相同。在您的情况下,您需要考虑startsWith或甚至contains方法。
  3. 请参阅以下代码示例以供参考

    String response = new String(data);
    if (response.contains("Unfortunately")){
        log.error("Database synchronization error...Re sending Request");
        vars.put("resubmitflag","true");
    }
    

    String response = prev.getResponseDataAsString();
    .....
    

    有关详细信息,请参阅How to use BeanShell指南。

    希望这有帮助