1. 程式人生 > >JMeter - 連續性能測試 - JMeter + ANT + Jenkins集成 - 第2部分

JMeter - 連續性能測試 - JMeter + ANT + Jenkins集成 - 第2部分

相同 tag 一個 文件夾 報告 摘要 一起 文件包含 產生

目標:

創建包含性能測試流程持續交付管道以盡早檢測任何與性能相關的問題。

通常,全面的性能測試將在分段/預生產環境中完成,該環境可能與您的生產環境相同。在完成QA功能/回歸驗證後,將代碼推送到分段。因此,即使QA對構建進行了認證,代碼也可能無法在特定負載下按預期工作,而這些負載只能在Staging環境中找到。此性能問題需要再次進行代碼更改 - >構建 - > QA驗證,這可能會推遲您的生產推送!

那麽,我們能否將性能測試融入現有的持續開發和測試流程中,以盡早發現性能問題?

是! 我們絕對可以!這裏的想法是在較低的環境[Dev / QA]中運行性能測試(我們可能必須相應地調整負載)並將結果與??某些基線指標進行比較。

請註意,這不會取代我們將在Staging環境中執行的全面性能測試。

註意:如果您還沒有閱讀這篇文章 - 我建議您閱讀本文中關於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測試。
    我們可以看到一個很好的輸出,如下所示。它運行3個用戶的測試,3秒作為加速期100秒。

技術分享圖片

  • 測試運行完成後,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部分