2015-05-21 76 views
1

我正在將性能測試與CI/CD基礎結構集成。我的性能測試工具是JMeter,CI服務器是Jenkins。兩者都可以完成他們的工作,但是當涉及到在CI/CD管道中集成性能測試時,事情就不再那麼微不足道了。將JMeter性能測試與Jenkins CI集成

要有適當的部署管道CI服務器需要知道什麼時候應該考慮通過或失敗的性能測試版本。驗證響應時間的平均值並不是一個好選擇 - 完全不同的SLA可以應用於作爲同一個JMX文件的一部分執行的不同類型的事務。對特定事務類型的平均響應時間進行聲明是一個好得多的選擇,但它仍然遠非完美的解決方案。這不會告訴我們如果同一類事務的響應時間在增加(這可能與內存泄漏有關)或減少(這可能是服務器端緩存的祝福)。出於這個原因,僅僅依靠平均平均響應時間可能會對軟件質量產生錯誤的信心。

我分析了幾個工具,包括JMeter Maven分析插件和Jenkins性能插件。他們似乎都沒有提供我在找的東西。

在CI之前的時代,性能測試在開發生命週期的後期執行並由人類進行分析。我想知道是否有人遇到任何足夠先進的工具,這可以使CI服務器可以可靠地確定perf測試構建是否應該被標記爲通過或失敗,而無需人工驗證結果?

+1

但是如果測試失敗或失敗,那麼您的手動判斷標準是什麼? – stanjer

回答

1

在沒有工具的提供什麼,我尋找,我決定揭開序幕一個開源項目,我自己創建一個,在我的空閒時間:

https://github.com/automatictester/lightning

它仍然在它的早期,但核心功能在那裏。現在需要額外的時間來擴展它。

+0

爲什麼jenkins性能插件不足?我已經設置jenkins作業maven或gradle運行jmeter測試,性能插件顯示趨勢和標記構建通過失敗或不穩定根據解析的jmeter結果。 – RaGe

+0

當我評估Jenkins性能插件時,遇到了一些問題。我沒有找到我正在尋找的圖表,我正在獲取堆棧跟蹤,包括這兩個: https://issues.jenkins-ci.org/browse/JENKINS-27526 https://issues.jenkins-ci.org/瀏覽/ JENKINS-27547 長話短說:性能插件沒有給我所承諾的東西,所以我甚至都沒有注意到我能否評估是否可以使用它來通過或失敗構建。 – automatictester

+0

但是,我不認爲它可以給我我要找的東西。根據其文檔,它可以通過/失敗生成取決於錯誤百分比。這是非常基本的檢查,幾乎可以進行健康檢查,而且我對更詳細的結果驗證感興趣 - 包括每種交易類型的平均響應時間。 – automatictester

0

我是詹金斯的專家,但只有JMeter熟練。您的JMeter結果是否可以通過腳本進行處理,以便確定事務類型Z何時超出了運行的可接受時間限制?

它看起來像解析Jmeter結果與一些額外的邏輯是你需要能夠冒出一個出口(1)(或任何非零)值。

+0

這就是我現在所要做的。我使用awk解析JMeter輸出以獲取基本統計信息並在稍後使用。但這比簡潔的解決方案更爲簡潔。我想知道其他人是否得出了類似的結論,也許碰到了可以爲他們做這件事(甚至更多)的工具。 – automatictester