JMeter - 連續性能測試 - JMeter + ANT + Jenkins集成 - 第2部分
目標:
創建包含性能測試流程的持續交付管道,以盡早檢測任何與性能相關的問題。
通常,全面的性能測試將在分段/預生產環境中完成,該環境可能與您的生產環境相同。在完成QA功能/回歸驗證後,將代碼推送到分段。因此,即使QA對構建進行了認證,代碼也可能無法在特定負載下按預期工作,而這些負載只能在Staging環境中找到。此性能問題需要再次進行代碼更改 - >構建 - > QA驗證,這可能會推遲您的生產推送!
那麽,我們能否將性能測試融入現有的持續開發和測試流程中,以盡早發現性能問題?
是! 我們絕對可以!這裏的想法是在較低的環境[Dev / QA]中運行性能測試(我們可能必須相應地調整負載)並將結果與??某些基線指標進行比較。
註意:如果您還沒有閱讀這篇文章 - 我建議您閱讀本文中關於JMeter + Ant集成的第1部分。
Jmeter安裝:
請查看 此鏈接,了解在各種操作系統上安裝Jenkins的詳細步驟。
創建Jenkins工作:
- 創建一個簡單的自由風格項目。
- 構建步驟應該是‘ Invoke Ant ‘
[我們將使用默認Ant,假設從機已經安裝了Ant。如果沒有,讓jenkins自動安裝ANT。]
- 我們將調用目標‘ all ‘作為目標‘all‘在我們想要執行的任務下執行。
- 清潔
- 節目試驗性能
- 跑
- 生成報告
- 產生,圖表
- 我們的測試使用以下屬性。我們將通過Ant將這些屬性的值從Jenkins傳遞給JMeter,如上所述。
- threadgroup.count
- threadgroup.rampup
- threadgroup.duration
- 我們的項目文件夾位於C:/ workspace / CPT下。所以相應地設置自定義工作區。
- 我們的測試在結果文件夾下創建結果。我們需要存檔我們需要的文件,如下所示。要歸檔結果下的所有文件,請使用result \ *。*
註意:Jenkins將在工作區下查找文件。因此,設置相對於工作空間的路徑。
從Jenkins調用JMeter測試:
- 如果上述所有步驟都已正確完成,單擊“Build”將運行jmeter測試。
- 測試運行完成後,Jenkins將所有文件歸檔到結果文件夾下。它包括我們創建的HTML文件+ PNG圖表。它存檔每次運行的結果,並將它們存儲在jenkins運行的服務器中。
- 我們可以讓我們的團隊成員在Jenkins UI中輸入這些值,而不是使用硬編碼的測試屬性。為了使它工作,我們需要使這個工作參數化並讓我們創建3個參數,因為我們的測試需要運行3個參數。我們也可以為這些參數設置默認值。
- 修改Build - > Properties部分以使用我們創建的Jenkins參數。此步驟是必需的,因為Ant期望這些變量‘threadgroup.count‘等的值。[你也可以通過這樣創建jenkins參數來避免這一步:代替USER_COUNT,我們可以創建threadgroup.count作為Jenkins參數名稱。]。由於Jenkins參數和Ant參數不同,我們應該如下圖所示。
- 就是這樣 - 現在,我們應該能夠直接從Jenkins UI傳遞JMeter測試所需的參數值。輸入一些值,然後單擊Build。控制臺將顯示傳遞給測試的新值,JMeter將相應地運行測試。下面的輸出顯示JMeter調用5個線程。
Jenkins-Performance插件:
Jenkins有一個JMeter插件,用於解析結果文件,創建聚合報告,創建圖表以及將當前結果與之前的結果進行比較等。
您可以在此處找到有關插件的更多詳細信息。
[註意:只有當結果以XML格式存儲時,此插件才會解析結果文件。如果您更喜歡使用CSV格式,它將無法正常工作]
安裝插件後,對於Jenkins Job,我們可以在Post build actions下找到“ Publish Performance test results report ” 。在“報告文件”部分中,提供輸出jtl文件的相對路徑(到工作空間)。
- 當我們多次運行測試時,我們可以看到Jenkins開始將性能測試的結果與之前的測試進行比較,並顯示了很好的摘要輸出。[ 在下面的摘要中你會看到很多0作為響應時間, 因為我在這個演示中使用了一個調試采樣器,它不需要時間來執行。響應時間圖表顯示了一個starighline,因為它在我的測試中總是為0。
- 要獲得有關每個采樣器的更多詳細信息,請單擊采樣器。Jenkins將為每個采樣器提供響應時間圖表,如下所示。它還以表格格式顯示數據以及HTTP響應代碼,這很好!!
通過結果:
Jenkins有一個很好的插件可以通過電子郵件發送結果。請查看此鏈接以獲取更多詳細信息。
安裝插件後,您可以找到帖子構建操作‘ 可編輯電子郵件通知 ‘
- 在可編輯電子郵件通知的觸發器下 ,我們將觸發器設置為“始終”[始終 - >是否測試失敗。您也可以更改觸發器,以便僅在測試通過時發送郵件等]
- 一旦JMeter運行測試,後構建操作將按照它們在Jenkins作業/項目配置中的順序連續執行。因此,當執行此“post build action”時,結果文件已經在結果文件夾下創建。我們可能希望將HTML文件包含在電子郵件正文中並附加圖像。[如果您不想在電子郵件正文中使用HTML或使用TXT格式,請附加HTML文件以及附件和圖像]
- 下面的屏幕截圖將介紹發送郵件的基本配置。[我假設您已經設置了電子郵件服務器配置,或者您的Jenkins管理員會這樣做]
- 讓我們再次運行我們的測試,看看Jenkins是否可以在運行測試後為我們發送結果。
- 並且..是的....我收到了這裏顯示的電子郵件!
- 所有圖表文件也附在收到的電子郵件中。
摘要:
通過將JMeter與Ant和Jenkins集成,我們做得很好。因此,實施了連續性能測試過程 設置。我們也可以通過在Jenkins中單擊一下來運行測試。當您專註於其他任務時,Jenkins負責運行測試,創建結果並為您發送結果!它還減少了對性能測試人員的依賴。是..!!任何人都可以立即進行測試。您只需要共享您創建的Jenkins作業的鏈接。
我們還可以將這項工作與Jenkins的“開發部署”工作集成在一起 - 也就是說......無論何時將代碼推送到給定的測試環境,此工作都會自動執行,無需任何人工幹預。任何功能測試和性能測試都可以盡早完成,以便及早發現任何問題!!
Grafana實時實施結果:
JMeter-Jenkins集成,通過電子郵件發送結果非常棒!! 但是如果你註意到,為了得到結果,我們需要等待測試完成。當詹金斯正在進行測試時,看到結果會不會很棒!! ??
如果你像我一樣有一個長時間運行的測試,你很想看到當Jenkins正在運行測試時看到當前的結果 - 請查看我最喜歡的帖子之一來獲得實時結果。
JMeter - 連續性能測試 - JMeter + ANT + Jenkins集成 - 第2部分