通过jmeter发送测试结果邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过jmeter发送测试结果邮件相关的知识,希望对你有一定的参考价值。

我在测试计划中加入了一个简单的HTTP请求采样器。并且,通过“查看结果树”查看结果并将相同的结果写入文件。我希望这个文件通过邮件Sampler发送。 问题是,一旦我执行测试用例,它首先发送邮件,然后将新的测试结果附加到文件中。所以,在邮件中我得到了之前的运行结果,而不是新结果。

我怎样才能加入这个?

答案

参考文章 - Send JMeter Test Reports Automatically in Email

如果使用“查看结果树”或“摘要报告”监听器,即使使用tearDown Thread Group,也无法通过SMTP Sampler通过邮件发送当前报告。

原因:只有在测试完成后,JMeter才会将数据写入这些报告文件。 您可以通过添加tearDown线程组并在运行SMTP采样器之前添加延迟来验证这一点。密切关注文件大小,它是在测试开始后创建的,但是当最后一个线程(在这种情况下为SMTP Sampler)完成执行时会写入数据。

因此,您的电子邮件只会附加一个空文件。

解决方案 - 1.在'user.properties'文件中查找并修改(或添加,如果不存在)以下部分,将autoflush参数设置为true:

# AutoFlush on each line written in XML or CSV output
# Setting this to true will result in less test results data loss in case of Crash
# but with impact on performances, particularly for intensive tests (low or no pauses)
# Since JMeter 2.10, this is false by default
jmeter.save.saveservice.autoflush=true
  1. 使用批处理脚本,并按照Ashish的建议,在JMeter测试后使用其他实用程序发送邮件。

这种方法的问题是,依赖于另一个实用程序。此外,我们还需要为不同的平台(Windows / Linux)编写不同的脚本。

  1. 我们可以使用jp @ gc JMeter插件,而不是使用默认的内置JMeter插件,它提供了非常强大的报告元素。

在这种情况下,我们需要的是一个'灵活的文件编写器'插件。它为您提供了强大的自定义功能,可以配置您要写入报告文件的数据,还可以包含要通过SMTP Sampler发送的完整报告文件。

我能够使用Flexible File Writer Listener和tearDown Thread Group实现这一目标。这是我的测试计划的结构 -

测试计划 ---线程组 -------采样 ------- jp @ gc-灵活的Filw作家 --- tearDown Thread Group ------ SMTP采样器

这是我的File Writer插件配置的快照: jp@gc-Flexible File Writer Configuration

您可能希望在从tearDown Thread Group发送邮件之前添加一些延迟。

您可以使用内置的Jmeter插件管理器或JMeter插件站点下载Flexible File Writer插件 - jp@gc Flexible File Writer Plugin

另一答案

我观察到,当使用SMTP采样器执行此操作时,JMeter首先使用空白或旧运行报告发送电子邮件。为了满足它,这就是我尝试过的:

  1. 我创建了一个批处理文件,从命令行调用Jmeter:

调用jmeter -n -t“脚本路径”-l“JTL报告路径”

  1. 我使用了一个名为sendEmail的实用程序,该实用程序位于以下位置:http://caspian.dotconf.net/menu/Software/SendEmail/

sendEmail -f Sender_Email -t Receiver_Email -cc CC_Email -s Mail_Server -u“Subject”-m“Email body”-a“JTL Report附件的路径”

执行JMeter脚本,在第一步中指定的路径中生成报告,然后使用步骤2发送带有报告的电子邮件。

它可能有所帮助。

另一答案

我建议您在tearDown Thread Group发送您的电子邮件,这是专为后期处理而设计的,似乎正是您正在寻找的。

还要确保您通过Test Action采样器等待合理的时间,因为JMeter不会动态更新结果文件,它会定期刷新结果块。

如果您不想要“旧”数据,可以使用setUp Thread GroupOS Process Sampler删除旧的结果文件或将其移动到其他地方。

有关更多JMeter电子邮件提示和技巧,请参阅Load Testing Your Email Server: How to Send and Receive E-mails with JMeter

以上是关于通过jmeter发送测试结果邮件的主要内容,如果未能解决你的问题,请参考以下文章

ant+jmeter+jenkins 发送测试报告邮件

ant+jmeter 实现自定义测试报告并发送邮件

我应该如何使用 Outlook 发送代码片段?

Jmeter+Ant+Jenkins邮件配置问题总结

Jmeter组件之-Test Fragment(测试片段)

JMeter接口测试-模块控制器