JMeter-为多个http响应发送一封电子邮件
我使用csv进行http请求,并在失败时发送电子邮件。在csv文件的http请求结束时,我只能发送一封电子邮件。比如,如果10个http请求失败,那么我想发送一封电子邮件,其中包含响应为404的所有页面的URL或服务器返回的失败响应。附图JMeter-为多个http响应发送一封电子邮件,jmeter,email,Jmeter,Email,我使用csv进行http请求,并在失败时发送电子邮件。在csv文件的http请求结束时,我只能发送一封电子邮件。比如,如果10个http请求失败,那么我想发送一封电子邮件,其中包含响应为404的所有页面的URL或服务器返回的失败响应。附图 添加到主线程组 将以下代码放入“脚本”区域: 将1个虚拟用户和1个循环添加到 添加到此拆卸线程组 使用${\uu groovy(props.get(“failures”)!=null,)}作为If控制器的条件 将您的设置作为if控制器的子级 在邮件正文中使用
${\uu groovy(props.get(“failures”)!=null,)}
作为If控制器的条件${{(失败,)}
-它将保存失败的采样器URL李>
假设上面的配置JMeter只发送一封包含所有失败采样器URL列表的电子邮件,并且仅当任何采样器失败时才发送。如有需要,请随时修改代码
参考资料:
${\uu groovy(props.get(“failures”)!=null,)}
作为If控制器的条件${{(失败,)}
-它将保存失败的采样器URL李>
假设上面的配置JMeter只发送一封包含所有失败采样器URL列表的电子邮件,并且仅当任何采样器失败时才发送。如有需要,请随时修改代码
参考资料:
如果有任何人有问题,请随时咨询。我简化了它,并将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());
}