【问题标题】:Sending test result mail through jmeter通过jmeter发送测试结果邮件
【发布时间】:2018-09-12 00:14:19
【问题描述】:

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

我怎样才能合并它?

【问题讨论】:

    标签: email smtp jmeter


    【解决方案1】:

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

    如果您使用 'View Results Tree''Summary Report' 侦听器,您将无法通过 SMTP Sampler 通过邮件发送当前报告,即使你使用了 tearDown Thread Group。

    原因:只有在测试完全完成后,JMeter 才会将数据写入这些报告文件。
    您可以通过添加一个 tearDown 线程组和在运行 SMTP 采样器之前添加延迟。注意文件大小,它是在测试开始时创建的,但在最后一个线程(在本例中为 SMTP 采样器)执行完成时写入数据。

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

    解决方案 - 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 插件,它提供了非常强大的报告元素。

    在这种情况下,我们需要一个'Flexible File Writer'插件。它为您提供了强大的自定义功能来配置您想要写入报告文件的数据,并且它还允许您包含要通过 SMTP 采样器发送的完整报告文件。

    我能够使用灵活的文件编写器侦听器和拆卸线程组来实现这一点。这是我的测试计划的结构 -

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

    这是我的文件写入器插件配置的快照:


    在从 tearDown 线程组发送邮件之前,您可能需要添加一些延迟。

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

    【讨论】:

      【解决方案2】:

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

      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 发送带有报告的电子邮件。

      这可能会有所帮助。

      【讨论】:

        【解决方案3】:

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

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

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

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

        【讨论】:

        • 嗨,我正在使用“查看结果文件”控制器将结果写入 csv 文件和“tearDown 线程组”,其中包括“测试操作”中的“暂停”和“SMTP 采样器”来发送结果文件。出于某种原因 - 我只收到邮件中的以前的结果,而不是当前的结果。有什么想法吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-25
        • 1970-01-01
        • 2015-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多