2016-12-16 151 views
0

我一直在尋找與Jmeter的一個問題的解決方案。我需要在我的測試計劃中加入一些邏輯,這些邏輯可以給出測試用例執行結果上計算的簡單報告PASS/FAIL,並在之後生成JTL報告。例如Jmeter測試計劃總結報告通過/失敗

  1. 所有測試通過 - 測試計劃的結果= PASS
  2. 一個或多個測試失敗 - 測試計劃的結果=失敗
+0

您可以使用聚合報告/摘要報告提供的聽衆誤差百分比場。如果錯誤%= 0,則所有測試都通過,否則失敗。 –

回答

0

大多數合適的選擇使用第三方工具假定,到即:

  • 您可以在Jenkins運行JMeter測試和使用性能的插件,它允許有條件構建失敗,如果超過指定的失敗的請求量門檻

    Jenkins performance plugin

  • 您可以使用Taurus工具,一個包裝運行JMeter測試,它具有靈活和強大Pass/Fail Criteria Subsystem允許設置不同的標準定義爲通過或失敗來標記測試。如果構建失敗,則Taurus進程返回非零退出代碼。

如果上述方法不適合於任何原因請詳細說明您的問題,並解釋如何以及在哪裏,你想看看這個「失敗」或「PASS」的結果。

+0

嗨德米特里, 所以這裏是這個練習的主要目標,我想在測試執行後用郵件發送整體測試計劃結果作爲主題/正文消息。 –

+0

起初,我認爲它可以以某種方式從JTL報告中提取,然後放入螞蟻郵件任務。 –

+0

再次有幾個這樣做的選擇。如果您需要Ant,您可以使用[XPath Task](http://www.planetgeek.ch/2009/05/17/perform-xpath-queries-inside-ant/)獲取失敗次數,並且[If Task ](http://ant-contrib.sourceforge.net/tasks/tasks/if.html)有條件地將屬性設置爲PASS或FAIL。其他選項是使用[SMTP Sampler]直接從JMeter發送電子郵件(https://www.blazemeter.com/blog/load-testing-your-email-server-how-send-and-receive-e-mails-jmeter )。 –

0

添加一個BeanShell的監聽器和一個BeanShell的採樣器在你的線程組的結束,並把這個監聽器:

if(sampleEvent.getResult() instanceof org.apache.jmeter.protocol.http.sampler.HTTPSampleResult) 
    if (!sampleEvent.getResult().isResponseCodeOK()) 
      vars.put("res", -1); 

而且在BS樣的說:

  • 如果你想儲存的結果屬性:

props.put("testPlanResult", vars.get("res") != -1 ? "PASS" : "FAIL");

  • ,如果你想將結果保存在一個文件中:
f = new FileOutputStream("/path/to/file.txt", false); 
p = new PrintStream(f); 

p.println("Result: " + (vars.get("res") != -1 ? "PASS" : "FAIL")); 

p.close(); 
f.close(); 

從這裏你可以做你需要創建財產或含結果文件什麼都...

希望這可以幫助你!

編輯:

您將需要添加此導入如果寫入結果文件:

import org.apache.jmeter.services.FileServer;