Dot-Net

持續集成中的性能測試?

  • April 28, 2020

我們已經有一個持續集成過程,我們在其中建構、執行單元測試、進行靜態程式碼分析和生成文件。但是,我們希望將其擴展為包括自動性能測試。在本例中,我們正在開發一個 .NET Web 應用程序。

我們已經使用 JMeter(在 CI 流程之外)進行了一些性能測試,但我不知道這是否是包含在 CI 流程中的最佳工具?硒是一種選擇嗎?WAPT 專業版?

我們應該在哪些級別上測試性能?我們應該有一套“性能單元測試”嗎?我們是否應該在類似生產的環境中執行 JMeter(或類似的東西)並在任何請求花費 > 1 秒時失敗?像這樣的東西不會有太高的變異數嗎?

那麼,你們是否將自動性能測試作為 CI 的一部分?你測試什麼,你使用哪些工具?你的經歷是怎樣的?

首先,JMeter 是包含在 CI 中的一個不錯的選擇,因為它可以從命令行執行,並且您可以在執行此操作時傳入變數。我會推薦它來完成這項任務。

但總的來說,集成 Perf。測試 CI 很困難。您已經列出了許多原因,所以您已經成功了一半,因為您了解這些限制。這就是問題所在:Perf 是可能的。CI 中的測試,但僅限於有限的範圍。

我認為一個好的方法遵循以下一些原則:

您不能在 CI 中執行全負載(或浸泡或容量)測試,這是不切實際的。 結果是主觀的,需要人工解釋,執行測試需要時間。但是您可以執行一組更簡單、精簡的測試來測量請求的響應時間,然後您可以評估這些響應時間:

  • 針對 NFR 或預期範圍 - 即。應該小於 1 秒。
  • 與以前的結果相反 - 即。與上次建構的偏差不應超過 10%。

您還可以執行自動載入/性能。測試 - 全量 - 在建構過程之外。‘半CI’。 所以也許你可以自動化一個測試,讓它在一夜之間執行,然後在早上檢查結果?

迭代。 只需開始這樣做並獲得結果並微調測試以及隨著時間的推移如何解釋它們。保持簡單並專注於看起來有用的領域。不要大張旗鼓地啟動,保持安靜,直到你對過程有信心,然後開始失敗建構並告訴人們 - 最初,你可能會得到很多假陰性。

檢測你的結果 這樣做。很多。CI 就是儘早失敗,所以如果你把它作為你的最終目標,那麼實現它的最好方法就是儘早並經常執行測試,但這樣做的問題是你有可能被數據埋沒。因此,一種處理數據並呈現相關資訊的有效方法會大有幫助。

你不能將整個過程自動化到紅旗綠旗——但你應該盡可能地沿著這條路走下去。

最後,領隊Perf做了一個非常好的演講。涵蓋此主題的 Google 測試人員。現在有點老了,但原則仍然存在。另外,幾週後我將參加一個聚會,英國媒體公司 Channel4 將討論他們是如何處理這個問題的——也許你可以索要一些幻燈片。

引用自:https://stackoverflow.com/questions/14740831