2015-05-12 83 views
1

我在測試計劃中包含了一個簡單的HTTP請求採樣器。然後,通過「查看結果樹」查看結果並將相同的結果寫入文件。我希望這個文件通過郵件取樣器發送。
問題是,一旦我執行測試用例,它就會首先發送郵件,然後將新的測試結果附加到文件中。所以,在郵件中,我得到了以前的運行結果,而不是新的結果。通過Jmeter發送測試結果郵件

我該如何加入?

回答

1

我會建議發送您的電子郵件在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

+1

嗨, 我使用「查看結果文件」控制器寫入結果到CSV文件, 'tearDown Thread Group'包含'測試操作'和'SMTP採樣器'中的'暫停'以發送結果文件。 出於某種原因 - 我只收到郵件中的上一個結果,而不是當前的結果。有任何想法嗎? – user2880391

2

我觀察到的JMeter首先發送電子郵件使用的SMTP樣做,當空的,或者原有的運行報告。 要overvome吧,這是我的嘗試:

  1. 我創建一個批處理文件從命令行調用JMeter的:

調用JMeter的-t -n「腳本路徑」 -l「 JTL報告路徑」

  • 我使用了一種叫做sendEmail效用這是在以下位置中可用: http://caspian.dotconf.net/menu/Software/SendEmail/ 爲:
  • sendEmail -f -t SENDER_EMAIL RECEIVER_EMAIL -cc CC_Email -s MAIL_SERVER -u 「主題」 -m 「電子郵件正文」 -a 「JTL報告附件的路徑」

    它在做什麼,它執行JMeter的腳本,在第一步指定的路徑中生成報告,然後使用步驟2發送包含報告的電子郵件。

    這可能有所幫助。

    1

    如果使用「查看結果樹」「總結報告」聽衆,你將無法通過SMTP採樣派現報告,通過郵件,即使您使用拆卸線程組。

    原因:只有在測試完成後,JMeter纔會將數據寫入這些報告文件。
    您可以在運行SMTP採樣器之前添加tearDown線程組並添加延遲來驗證此情況。注意文件的大小,一旦測試開始就創建它,但是當最後一個線程(本例中爲SMTP採樣器)完成執行時寫入數據。

    因此,只有一個空的文件會附加到您的電子郵件。

    解決方案 - 1.使用批處理腳本,並使用一些其他的工具JMeter測試後,由阿希什的建議發送郵件。

    這種方法的問題在於,存在對另一個實用程序的依賴性。另外,我們需要爲不同的平臺編寫不同的腳本(Windows/Linux)。

  • 如果不使用默認的內置JMeter的插件,我們可以使用JP @ GC JMeter的插件,它提供了非常強大的報告要素。
  • 在這種情況下,我們需要的是一個'靈活的文件編寫器'插件。它爲您提供了強大的自定義功能,可以配置要寫入報告文件的數據,還可以包含完整的報告文件以通過SMTP採樣器發送。

    我能夠使用Flexible File Writer Listener和tearDown Thread Group實現此目的。這裏是我的測試計劃的結構 -

    測試計劃
    ---主題 集團
    -------採樣
    ------- JP @ GC-靈活Filw作家
    ---拆解線程組
    ------ SMTP採樣

    這裏是我的文件記錄器插件的配置的快照:

    jp@gc-Flexible File Writer Configuration


    您可能需要在從tearDown線程組發送郵件之前添加一些延遲。

    可以,或者從JMeter的插件網站下載靈活的文件寫入使用內置的JMeter的插件管理器插件 - [email protected] Flexible File Writer Plugin