天天看點

30 | 工欲善其事必先利其器:後端性能測試工具原理與行業常用工具簡介

後端性能測試和後端性能測試工具之間的關系是什麼?

後端性能測試工具 != 後端性能測試

完整的後端性能測試應該包括性能需求擷取、性能場景設計、性能測試腳本開發、性能場景實作、性能測試執行、性能結果報告分析、性能優化和再驗證。

在這其中,後端性能測試工具主要在性能測試腳本開發、性能場景實作、性能測試執行這三個步驟中發揮作用,而其他環節都要依靠性能測試工程師的專業知識完成。

後端性能測試工具和 GUI 自動化測試工具最大的差別是什麼?

  • 第一個顯著差別是,模拟使用者行為的方式不同。

GUI 自動化測試工具模拟的是使用者的界面操作,是以測試腳本記錄的是使用者在界面上對控件的操作;而性能測試工具模拟的是使用者的用戶端與伺服器之間的通信協定和資料,這些通信協定和資料往往是使用者在界面上執行 GUI 操作時産生的。

  • 第二個顯著的差別是,測試的執行方式。

UI 自動化測試的執行,一般是單使用者執行并驗證功能結果;而性能測試的執行,往往需要同時模拟大量的并發使用者,不僅需要驗證業務功能是否成功完成,還要收集各種性能監控名額,會涉及到壓力産生器、并發使用者排程控制、實時監控收集等内容,是以性能測試的執行控制要比 GUI 自動化測試複雜得多。

後端性能測試工具的原理是什麼?

  • 首先,後端性能測試工具會基于用戶端與伺服器端的通信協定,構模組化拟業務操作的虛拟使用者腳本。對于目前主流的 Web 應用,通常是基于 HTTP/HTTPS 協定;對于 Web Service 應用,是基于 Web Service 協定;至于具體基于哪種協定。
  • 然後,開發完成了虛拟使用者腳本之後,後端性能測試工具會以多線程或多程序的方式并發執行虛拟使用者腳本,來模拟大量并發使用者的同時通路,進而對伺服器施加測試負載。
  • 接着,在施加測試負載的整個過程中,後端性能測試工具除了需要監控和收集被測系統的各種性能資料以外,還需要監控被測系統各個伺服器的各種軟硬體資源。比如,後端性能測試工具需要監控應用伺服器、資料庫伺服器、消息隊列伺服器、緩存伺服器等各種資源的占用率。我們通常把完成監控和資料收集的子產品稱為系統監控器。
  • 最後,測試執行完成後,後端性能測試工具會将系統監控器收集的所有資訊彙總為完整測試報告。

虛拟使用者腳本生成器

壓力産生器

壓力控制器

系統監控器

測試結果分析器

後端性能測試中,性能測試場景設計是什麼意思,具體會涉及哪些内容?

性能測試場景設計,是壓力控制器發起測試負載的依據。

性能測試場景設計,目的是要描述性能測試過程中所有與測試負載以及監控相關的内容。

通常來講,性能測試場景設計主要會涉及以下部分:

  • 并發使用者數是多少?
  • 測試剛開始時,以什麼樣的速率來添加并發使用者?比如,每秒增加 5 個并發使用者。
  • 達到最大并發使用者數後持續多長時間?
  • 測試結束時,以什麼樣的速率來減少并發使用者?比如,每秒減少 5 個并發使用者。
  • 需要包含哪些業務操作,各個業務操作的占比是多少?比如,10% 的使用者在做登入操作,70% 的使用者在做查詢操作,其他 20% 的使用者在做訂單操作。
  • 一輪虛拟使用者腳本執行結束後,需要等待多長時間開始下一次執行?
  • 同一虛拟使用者腳本中,各個操作之間的等待時間是多少?
  • 需要監控哪些被測伺服器的哪些名額?
  • 腳本出錯時的處理方式是什麼?比如,錯誤率達到 10% 時,自動停止該腳本。
  • 需要使用多少台壓力産生器?
30 | 工欲善其事必先利其器:後端性能測試工具原理與行業常用工具簡介

業内主流的後端性能測試工具有哪些?

傳統軟體企業偏向于使用 LoadRunner,而網際網路企業普遍采用 JMeter。

作者:茹炳晟