Apache JMeter:如何在循环期间比较相同HTML请求的响应?

时间:2014-05-15 12:15:36

标签: apache jmeter

请回答我以下问题的解决方案:

使用Apache JMeter,我每2分钟运行2000个请求,包含10个循环。 该请求用于检查提及的开始和结束日期的酒店可用性。 以下3个重要参数: 酒店ID,开始日期和结束日期 借助' CSV数据集配置'我存储了来自2个文本文件的输入(1个文本文件有酒店ID,另一个有开始,结束日期)。并将变量用于http请求。

通过听取查看结果树和摘要报告,我检查了每个请求的响应。对于一些要求,我得到空白回复,因为酒店不可用。现在我想找出空白回复的确切数量。如果有人有解决方案,请告诉我。

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以使用Size AssertionResponse Assertion将空白请求标记为失败请求。

如果您只需要编号并且不想在空白响应中记录失败,我建议使用Beanshell Post处理器,如下所示。

  1. 定义名为blank的用户定义变量,其值为0
  2. 为每个可能产生空白回复的请求添加Beanshell Post Processor
  3. 最后添加一个Beanshell Sampler,它将报告最终变量
  4. 后处理器代码示例:

    int blank = Integer.parseInt(vars.get("blank")); //get current "blank" variable value
    String response = new String(data); //get response data as string
    
    if (response.length() == 0) // if response length equals zero (feel free to update this as requred)
    {
        blank++; // increment "blank" variable
    }
    
    vars.put("blank", String.valueOf(blank)); // update "blank" variable value
    

    最终Beanshell示例代码示例:

    log.info("Pages with blank response count: " + vars.get("blank")); // print current "blank" variable value to "jmeter.log" file
    

    您应该在jmeter.log文件中看到类似下面的内容:

      

    2014/05/15 18:36:34 INFO - jmeter.util.BeanShellTestElement: Pages   空白回复数:15
      2014/05/15 18:36:34 INFO -   jmeter.threads.JMeterThread:线程完成:线程组1-1   2014/05/15 18:36:34 INFO - jmeter.engine.StandardJMeterEngine:   通知测试听众结束测试
      2014/05/15 18:36:34 INFO -   jmeter.gui.util.JMeterMenuBar:setRunning(false, local

    请参阅How to use BeanShell: JMeter's favorite built-in component指南,了解JMeter扩展和脚本演练以及一种Beanshell食谱。