2021年軟體測試工具總結——性能測試工具

2022-01-02 軟體質量報導

軟體性能測試的目標是識別應用程式中的所有性能瓶頸。一個軟體系統的性能不僅取決於系統本身的設計和編碼,而且取決於系統所依賴的運行環境。系統的運行環境會依賴於一些關鍵因素,例如:系統架構、硬體配置、網絡帶寬、配套的軟體如資料庫和中間件等、以及外部的負載大小。

系統性能的改善是測試、調整、再測試、再調整……的一個持續改進的過程,即性能調優,根據性能測試的結果對軟體的設計,代碼,系統的配置進行調整。

性能測試的類型


性能測試主要包含6種類型,如下表所示。

類型

                說明

負載測試

確定軟體在給定時間內隨著工作負載增加的運行方式,工作負載可以是並發用戶、事務數、軟體行為等。在被測系統上不斷增加壓力,直到性能指標(如響應時間)超過預期指標或者某種資源使用已經達到飽和狀態。可以找到系統的處理極限,為系統調優提供數據。

壓力測試

測量超出正常工作參數、更高的流量負載(更多用戶、事務等)下的軟體穩定性,即系統在一定飽和狀態下,例如CPU、內存、磁碟空間等硬體資源飽和的情況下,系統能夠處理的會話能力,以及系統是否會出現錯誤。

評估軟體在一個固定的常規工作負載下的長期性能。換句話說,它決定了軟體能夠承受恆定的工作負載多長時間以提供長期的可持續性。在測試期間,測試團隊監控KPI,如內存洩漏、內存使用、內存不足等。穩定性測試還分析長時間使用後的響應時間和吞吐量,以觀察這些指標是否一致。

尖峰測試是一種壓力測試,它測量軟體在顯著的、突然的工作負載增加(如用戶並發數量)情況下的性能。軟體是否能夠反覆快速地處理突然增加的工作負載。容量測試
測試軟體在處理大量數據時的效率,用於檢查數據丟失、系統響應時間、數據存儲可靠性等。可伸縮性測試測量軟體在處理不斷增加的工作量方面的有效性。可以通過在監視軟體性能的同時逐漸添加數據量或用戶來執行可伸縮性測試。

如今,隨著DevOps的發展,性能測試已經上升為軟體系統全生命周期性能工程。本文從五個方面介紹性能測試的工具和解決方案:客戶端性能測試、服務端性能測試、分布式系統的應用性能監控、分布式系統的全鏈路壓測。

Google Lighthouse

PerfDog

Monkey

Monekyrunner

mobileperf

Pyroscope

MemoryLeakDetector

JMeter

LoadRunner

Webload

Gatling

k6

Vegata

Locust

Skywalking

Pinpoint

客戶端性能測試工具

1)Google Lighthouse


Lighthouse 是 Google 開發的一款分析 Web 應用和頁面性能的開源工具。Lighthouse分析Web應用程式和Web頁面,收集關於開發人員最佳實踐的現代性能指標和見解,讓開發人員根據生成的評估頁面,來進行網站優化和完善,提高用戶體驗。Lighthouse是直接集成到chrome開發者工具中的,位於『Audits』面板下。

2)  PerfDog

PerfDog 性能狗是移動全平臺 iOS\Android 性能測試工具平臺,快速定位分析性能問題,提升 APP 應用及遊戲性能和品質,手機無需 ROOT/越獄,手機硬體、遊戲及應用無需做任何更改,極簡化即插即用。

官網地址:

https://wetest.qq.com/product/perfdog

3)  Monkey

Monkey 是 Android SDK 提供的一個命令行工具,使用簡單、方便地運行在任何版本的 Android 模擬器和實體設備上。Monkey 會發送偽隨機的用戶事件流,適合對 app 做壓力測試。

4)  Monkeyrunner

MonkeyRunner工具提供了多個API,通過monkeyrunner API 可以寫一個Python的程序來模擬操作控制Android APP,測試其穩定性並通過截屏可以方便地記錄出現的問題。

5)  mobileperf

天貓團隊開源的PC Android性能穩定性測試工具,可以收集Android性能數據: cpu 內存 流暢度fps logcat日誌 流量 進程線程數 進程啟動日誌,mobileperf也支持原生monkey test。https://github.com/alibaba/mobileperf

6)  Pyroscope

Pyroscope是一個開源的連續分析平臺。能夠幫你發現代碼中的性能問題和瓶頸、CPU利用率高的原因。並且幫你了解應用程式的調用樹,提供豐富的圖表和調用樹展示。官網地址:https://pyroscope.io

7)  MemoryLeakDetector 

MemoryLeakDetector是由西瓜視頻android團隊開發的本地內存洩漏監視工具,它具有訪問簡單,監視範圍廣,性能優良和穩定性好的優點。它被廣泛用於ByteDance的主要應用程式的本機內存洩漏管理中。

官網地址:https://github.com/bytedance/memory-leak-detector

服務端性能測試工具


8) JMeter

JMeter 是 Apache 組織開發的基於 Java 的壓力測試工具。用於對軟體做壓力測試,它最初被設計用於 Web 應用測試,但後來擴展到其他測試領域。它可以用於測試靜態和動態資源,例如靜態文件、Java 小服務程序、CGI 腳本、Java 對象、資料庫、FTP 伺服器等等。

 JMeter 可以用於對伺服器、網絡或對象模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體性能。

官網地址:https://jmeter.apache.org/

9) LoadRunner


LoadRunner 是一種預測系統行為和性能的負載測試工具。通過模擬上千萬用戶實施並發負載及實時性能監測的方式來確認和查找問題,LoadRunner 能夠對整個企業架構進行測試。

官網地址:

https://www.microfocus.com/zh-cn/portfolio/performance-engineering/overview


10) WebLOAD

WebLOAD是一款針對Web應用程式的企業級負載和性能測試工具,提供性能、完整性和可伸縮性測試等功能,能夠同時模擬數千個用戶,因此您可以測試重流量負載,並報告應用程式中的弱點、約束和性能瓶頸。使用WebLOAD進行網站負載測試、連續測試、雲負載測試等。該工具可以從雲端或本地機器生成負載,並提供一個集成開發環境(IDE),用於可視化地記錄、編輯和調試測試腳本。官網地址:https://www.radview.com/

11) Gatling

Gatling 是一款基於 Scala 開發的高性能伺服器性能測試開源工具,同時也是一款功能強大的負載測試工具,開箱即用。Gatling主要用於測量基於HTTP的伺服器,比如Web應用程式,RESTful服務等。Gatling是針對任何 HTTP 伺服器進行負載測試的首選工具。

官網地址:https://gatling.io/


12) k6

k6是高性能的負載測試工具,也是一種高性能工具,旨在在預生產和QA環境中以高負載運行測試,可使用JavaScript編寫腳本。它是一個以開發人員為中心(當然,測試人員亦可以使用,因為真的很方便),免費和開源的負載測試工具,旨在使性能測試具有生產力和令人愉悅的體驗,可最大程度地減少系統資源的消耗。

官網地址:https://k6.io/


13) Vegata

Vegeta 是一個用Go語言編寫的多功能的 HTTP 負載測試工具,提供命令行工具和一個開發包。

官網地址:

https://github.com/tsenart/vegeta


14) Locust

Locust是使用Python開發的支持分布式的一款開源壓力測試工具,可以通過寫python腳本的方式來對web接口進行負載測試。Locust在單臺機器上能夠支持幾千並發用戶訪問,並且由於其對分布式運行的支持,理論上來說,Locust能在使用較少壓力機的前提下支持極高並發數的測試。

官網地址:https://locust.io/

分布式系統的性能監控工具

在微服務架構的分布式系統中,當客戶端發起一個請求時,往往會調用多個服務,涉及多個中間件,加上系統又分布在多臺伺服器上,因此,當系統出現性能瓶頸時,故障診斷就變得非常複雜。分布式系統的應用性能監控(APM)工具通過服務調用鏈追蹤分析來定位鏈路上的性能瓶頸。

在線性能監控是指藉助監控工具,監控系統性能的實際數據,因為是真實數據,比研發環境中通過工具產生負載得到的測試結果更客觀,更有分析價值。

SkyWalking是一款國內開源的優秀的APM工具,提供了一個分布式系統的直觀的觀測平臺,用於從服務和雲原生基礎設施收集、處理及可視化數據,通過監控、告警、可視化和分布式追蹤等功能為微服務、分布式,以及容器化的系統架構提供了可觀測性(observability)。它可以觀測橫跨不同雲的分布式系統,而且從SkyWalking 6 開始支持下一代的分布式架構Service Mesh。

http://skywalking.apache.org/

16)Pinpoint

Pinpoint是一個用於大規模分布式系統的APM(應用程式性能管理)工具,用Java/PHP編寫。Pinpoint提供了一個解決方案,幫助分析系統的總體結構,以及通過跟蹤分布式應用程式中的事務,分析系統中的組件如何相互連接,用於大型分布式系統的全鏈路監控,可以獲取不同服務之間,服務與資料庫,以及服務內部的方法的調用關係,還可以監控方法調用時長、可用率和內存等。

下載地址:

https://pinpoint-apm.github.io/pinpoint/

分布式系統的全鏈路壓測平臺

全鏈路壓測是指模擬真實業務場景中的海量用戶請求和數據訪問生產環境,對整個業務鏈路進行全方位的、真實的壓力測試,提前找到分布式系統的性能瓶頸點並持續調優的實踐。目前企業大多採用的是基於開源工具Gatling、JMeter 搭建壓測集群進行全鏈路壓測。同時,國內也有商用的全鏈路壓測解決方案,如Perfma全鏈路壓測解決方案、京東ForceBot平臺、美團的 Quake、高德的 TestPG、字節跳動的Rhino、阿里媽媽的MagicOTP和性能測試平臺ACP,以及阿里的AMAZON、PTS和JVM-SANDBOX平臺。

相關焦點

  • 2021年軟體測試工具總結——單元測試工具
    在應用程式中,單元是具有一個或多個輸入和單個輸出的軟體中最小可測試部分。單元測試是一種測試軟體代碼單元的方法,通常包括一個或兩個輸入,產生一個輸出。
  • 2021年軟體測試工具總結——模糊測試工具
    ,模糊測試(Fuzz Testing)是一種自動化的軟體測試技術,最初是由威斯康辛大學的巴頓·米勒於1989年開發的,通常用於識別程序中的潛在漏洞
  • 2021 年 10 大流行軟體測試工具
    趨勢表明,團隊傾向於使用功能測試,這可以理解,但是手動測試也將保留下來。怎麼選擇測試框架?這有一些標準:Selenium 誕生於 2004 年,它已經逐漸成為 QA 工程師的必備測試工具。它在 GitHub 上有近 20000 Star,是市場上最受歡迎的功能測試工具之一。
  • 2021年10大流行軟體測試工具
    怎麼選擇測試框架?這有一些標準:Selenium 誕生於 2004 年,它已經逐漸成為 QA 工程師的必備測試工具。最新更新Load Ninja 是一個性能和負載測試框架,用於診斷 API 和 UI 性能問題。
  • 軟體測試工具有哪些?10款常見的軟體測試工具推薦
    軟體測試工具分為自動化軟體測試工具和測試管理工具。自動化軟體測試工具存在的價值是為了提高測試效率,用軟體來代替一些人工輸入。測試管理工具是為了復用測試用例,提高軟體測試的價值。一個好的軟體測試工具和測試管理工具結合起來使用將會使軟體測試效率大大的提高。那麼軟體測試工具有哪些呢?
  • 軟體測試工具大全 2021 版(可能是目前為止最全的測試工具集合)
    此版本將作為基準,後續仍會持續更新,為大家呈現更多優秀的測試工具。完整版在語雀上,結構更清晰,點擊閱讀原文即可查看。軟體測試工具大全,包括測試工具、框架和平臺,偏向開源和免費。說明 表示開源軟體;大前端1.1 移動端抓包工具性能測試自動化跨平臺Karate - UI/API 自動化測試框架。
  • 常用的軟體測試工具大全
    開源測試管理工具:Bugfree、Bugzilla、TestLink、mantis開源功能自動化測試工具:Watir、Selenium、MaxQ、WebInject開源性能自動化測試工具:Jmeter、OpenSTA
  • 功能測試工具QTP & 性能測試工具LoadRunner使用總結
    願關注我們的人都能找到高薪工作一、功能測試工具(QTP)1.工作流程(1)錄製測試腳本前的準備:測試用例(測試功能、操作步驟、預期結果),QTP的設定(測試設置、確保QTP正確運行)(2)錄製測試腳本(3)加強測試腳本(插入檢查點、參數化)(4)調試測試腳本(5)執行腳本,分析測試結果2.錄製前的準備(1)在被測網站已經註冊了相關帳號信息(2)關閉所有已經打開的IE窗口(3)關閉所有與測試不相關的窗口註:QTP中 keywordView
  • 軟體測試之白盒測試常用工具介紹
    軟體測試之白盒測試常用工具介紹  白盒測試工具一般是針對代碼進行測試,測試中發現的缺陷可以定位到代碼級,根據測試工具原理的不同,又可以分為靜態測試工具和動態測試工具。靜態測試工具直接對代碼進行分析,不需要運行代碼,也不需要對代碼編譯連結,生成可執行文件。
  • 性能測試之新一代伺服器性能測試工具Gatling
    如果要開發一款高性能的雲系統,伺服器性能測試是一個必不可少的環節 。今天,就來介紹一款新一代伺服器性能測試工具 Gatling。DSL 的使用也更容易編寫出簡明,易讀性和維護性高的代碼,而且還可以使用版本工具進行更有效的管理。因為性能測試應該屬於系統發布流程中必不可少的一個步驟,所以測試腳本應該和系統代碼一樣使用版本工具進行統一管理。
  • 軟體測試培訓怎麼學?軟體測試基礎技術總結!值得一看
    軟體測試無年齡限制,要求的是經驗和耐心,隨著軟體測試經驗的豐富積累,就會練就「火眼金睛」的本領,而且隨著項目經驗的不斷增長和對行業背景和深入了解,經驗和資歷會帶來更高薪資和更高地位,會越老越「值錢」。那軟體測試培訓怎麼學?軟體測試基礎技術總結!值得一看!
  • 軟體測試常用的工具都在這裡了
    >」進行關注,微信公眾號TestMadman分享一下7年來工作時用到的工具,連結比較多,沒有一一檢查是否能正常下載,若連結有問題,可以在下方留言。如果對軟體測試、接口、自動化、性能測試、LR腳本開發、面試經驗交流。感興趣可以加,群內會有不定期的發放免費的資料連結,這些資料都是從各個技術網站搜集、整理出來的,如果你有好的學習資料可以私聊發我,我會註明出處之後分享給大家。另外,小編覺得連結其實不重要,因為每種工具在網上都能找到。
  • 十個最流行的軟體測試工具!
    隨著軟體快速交付需求的增長,越來越多的企業開始通過DevOps方法加速軟體開發速度。但是,「魚」和「熊掌」不可兼得,有時候軟體的快速交付,並不能完全保證質量。而測試自動化可有效解決軟體快速交付問題,並能確保質量。尤其是隨著人工智慧和ML的出現,新一代測試工具正在以高性能、智能化測試為特色,提供服務。
  • 做軟體測試卻不知道這些測試工具?利用好可以漲薪50%
    可能看完這10個大類,很多小夥伴心裡還是覺得沒底,因為每次要用某個自己不知道的領域的知識,大家第一反應還是去網上搜。而網上正好有很多看似有用的資料、視頻、工具。但真當你一研究就會傻眼,因為完全跟你想要找的不一樣。這種情況時有發生,確切點說,不是個例,是慣例!為了避免這些情況發生,讓大家更好的混跡測試圈,我們就來深入了解一些常用或者對未來有用的測試工具吧。
  • 開發者最愛的6種實用型性能測試工具
    而在選擇這類性能測試工具時,我們需要考慮的問題也有很多,如成本、實時性、便利性等。下面,給大家介紹幾款目前使用較廣泛的性能測試工具:商業性能測試工具:LoadrunnerLoadRunner是原Mercury公司開發的產品, 2006 年被HP收購。它是一種高規模適應性的自動負載測試工具,它能預測系統行為,優化性能。
  • SDN控制器測試工具面世 RYU性能測試報告發布
    天地互連-全球SDN測試認證中心(www.sdnctc.com)經過廣泛的需求徵集和獨立科研,成功開發出了SDN控制器測試工具:OFsuite_Performance,填補了SDN控制器系統性性能測試市場空白,並將向公眾發布《RYU控制器性能測試報告》。
  • 超實用:14種性能監控與負載測試工具
    因此我們在系統性能方面,主要著眼於三個主要目標:在此,我們列出了 14 種針對應用程式性能監控與負載測試的工具,以幫助您構建和維護具有高性能和高可靠性的系統。注意,雖然它們中的一些是開源的,但是絕大多數會在提供免費試用的基礎上,有著對應的付費版本。AgileLoad 是一個企業級的性能測試解決方案,可用於優化 Web 應用的性能。
  • 裝機測試找不到好工具?小編常用的測試軟體大匯總!
    很多朋友會安裝一些硬體測試軟體「跑跑分」,看看自己的硬體性能是一個什麼樣的水平;但是市場上有眾多的測試軟體,質量也「參差不齊」;今天就來給大家推薦一些優秀的系統、硬體測試軟體。對英文發怵的朋友們也不用擔心,很多軟體也是有漢化版提供的。
  • 炫機必備 全新Android性能測試工具-Android,安卓,benchmark,基準...
    性能測試工具是手機玩家們拿到新設備之後首先要找的軟體,都要看看自己的設備會跑出什麼樣的分數。隨著行動裝置性能的發展,雙核和四核越來越多的得到應用,而之前的那些基準工具已經跟不上設備的發展,還好,有幾款工具已經及時跟進發布新版。
  • 軟體測試管理快速入門15-2019最佳測試管理工具
    image.png無論是捕獲需求,設計測試用例,測試執行報告,向其他團隊成員通知測試進度等,都必須使用測試管理工具。記錄這些細節時即使很小的錯誤也可能導致災難性的影響和項目的失敗。因此,為了管理所有這些細節,一些測試管理工具可以非常方便和有用。讓我們看看一些最好的測試管理和QA工具。