JMeter-为多个http响应发送一封电子邮件

JMeter-为多个http响应发送一封电子邮件,jmeter,email,Jmeter,Email,我使用csv进行http请求,并在失败时发送电子邮件。在csv文件的http请求结束时,我只能发送一封电子邮件。比如,如果10个http请求失败,那么我想发送一封电子邮件,其中包含响应为404的所有页面的URL或服务器返回的失败响应。附图 添加到主线程组 将以下代码放入“脚本”区域: 将1个虚拟用户和1个循环添加到 添加到此拆卸线程组 使用${\uu groovy(props.get(“failures”)!=null,)}作为If控制器的条件 将您的设置作为if控制器的子级 在邮件正文中使用

我使用csv进行http请求,并在失败时发送电子邮件。在csv文件的http请求结束时,我只能发送一封电子邮件。比如,如果10个http请求失败,那么我想发送一封电子邮件,其中包含响应为404的所有页面的URL或服务器返回的失败响应。附图

  • 添加到主线程组
  • 将以下代码放入“脚本”区域:

  • 将1个虚拟用户和1个循环添加到

  • 添加到此拆卸线程组
  • 使用
    ${\uu groovy(props.get(“failures”)!=null,)}
    作为If控制器的条件
  • 将您的设置作为if控制器的子级
  • 在邮件正文中使用
    ${{(失败,)}
    -它将保存失败的采样器URL 假设上面的配置JMeter只发送一封包含所有失败采样器URL列表的电子邮件,并且仅当任何采样器失败时才发送。如有需要,请随时修改代码

    参考资料:

  • 添加到主线程组
  • 将以下代码放入“脚本”区域:

  • 将1个虚拟用户和1个循环添加到

  • 添加到此拆卸线程组
  • 使用
    ${\uu groovy(props.get(“failures”)!=null,)}
    作为If控制器的条件
  • 将您的设置作为if控制器的子级
  • 在邮件正文中使用
    ${{(失败,)}
    -它将保存失败的采样器URL 假设上面的配置JMeter只发送一封包含所有失败采样器URL列表的电子邮件,并且仅当任何采样器失败时才发送。如有需要,请随时修改代码

    参考资料:


    我简化了这一过程,将SMTP示例移到了tearDown ThreadGroup下,并随附了包含我想通过电子邮件发送的所有信息的聚合报告。 此外,在聚合报告中,我选择了只显示错误的选项,这使该报告更加简洁

    谢谢你的回答@德米特里T


    如果有任何人有问题,请随时咨询。

    我简化了它,并将SMTP示例移到了tearDown ThreadGroup下,并随附了聚合报告和电子邮件,其中包含了我想通过电子邮件发送的所有信息。 此外,在聚合报告中,我选择了只显示错误的选项,这使该报告更加简洁

    谢谢你的回答@德米特里T


    如果有问题,请随时咨询。

    您可以共享测试平面的结构吗?您可以共享测试平面的结构吗?您好,谢谢,日志中显示了以下错误:2017/05/11 14:32:06 Error-jmeter.control.IfController:If条件:处理时出错[${u groovy(props.get(“failures”)!=null,}]org.mozilla.javascript.EvaluatorException:缺少;before语句(#1)您可以解释一下->${uu groovy(props.get(“failures”)!=null,)},因为在失败的情况下返回的响应代码是404,我想匹配它。请确保您在JSR223采样器中使用groovy作为语言,出于某种原因,您似乎在尝试JavaScriptJust遵循编写条件(默认javascript):${uuuGroovy(props.get(“failures”)!=null,)}抱歉,没有注意到您正在使用JMeter 3.0,并且中引入了uuGroovy()函数。您需要升级JMeter或恢复到以下状态:
    ${{BeanShell(props.get(“failures”)!=null)}
    Hi谢谢,日志中显示了以下错误:2017/05/11 14:32:06 Error-JMeter.control.IfController:IF条件:处理时出错[${u groovy(props.get(“failures”)!=null,)]org.mozilla.javascript.EvaluatorException:缺少;before语句(#1)您可以解释一下->${uu groovy(props.get(“failures”)!=null,)},因为在失败的情况下返回的响应代码是404,我想匹配它。请确保您在JSR223采样器中使用groovy作为语言,出于某种原因,您似乎在尝试JavaScriptJust遵循编写条件(默认javascript):${uuuGroovy(props.get(“failures”)!=null,)}抱歉,没有注意到您正在使用JMeter 3.0,并且中引入了uuGroovy()函数。您需要升级JMeter或恢复到以下状态:即:
    ${{{uu BeanShell(props.get(“failures”)!=null)}
    if (!prev.isSuccessful()) {
        StringBuilder builder = new StringBuilder()
        def failures = props.get("failures")
        if (failures != null) {
            builder.append(failures)
        }
        builder.append(prev.getUrlAsString())
        builder.append(System.getProperty("line.separator"))
        props.put("failures", builder.toString());
    }