一、前言
性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。
工具(Tool)意思是原指工作時所需用的器具,后引申為達到、完成或促進某一事物的手段。
工具的含義
1.人在生產過程中用來加工制造產品的器具。
2.喻用以達到目的的事物。
3.喻專門秉承他人意志辦事有如工具的人。多含貶義。
簡單總結下性能測試工具的原理以及如何選型。性能測試和功能測試不同,性能測試的執行是基本功能的重復和並發,需要模擬多用戶,在性能測試執行時需要監控指標參數,同時性能測試的結果不是那么顯而易見,需要對數據進行分析。這些特點決定了性能測試更適合通過工具來完成
二、常見性能測試工具
1、服務端性能測試工具
工具英文名 | 工具開發語言 |
Jmeter | Java |
Locust | Python |
LoadRunner | C |
LoadNinja | …… |
N+ | ……等多種工具平台組合 |
1.1 Jmeter
Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟件做壓力測試,它最初被設計用於Web應用測試,但后來擴展到其他測試領域。 它可以用於測試靜態和動態資源,例如靜態文件、Java 小服務程序、CGI 腳本、Java 對象、數據庫、FTP 服務器, 等等。JMeter 可以用於對服務器、網絡或對象模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體性能。另外,JMeter能夠對應用程序做功能/回歸測試,通過創建帶有斷言的腳本來驗證你的程序返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正則表達式創建斷言。
Apache jmeter 可以用於對靜態的和動態的資源(文件,Servlet,Perl腳本,java 對象,數據庫和查詢,FTP服務器等等)的性能進行測試。它可以用於對服務器、網絡或對象模擬繁重的負載來測試它們的強度或分析不同壓力類型下的整體性能。你可以使用它做性能的圖形分析或在大並發負載測試你的服務器/腳本/對象。
1.2 Locust
locust是一個基於python的開源框架。是一個易於使用的分布式用戶負載工具。它旨在對網站(或其他系統)進行負載測試,並弄清一個系統可以處理多少個並發用戶。
locust是基於事件的,介紹下它的根基就是協程。協程是比線程更小的一種執行單元,你可以認為是輕量級的線程,之所以說輕,其中一方面的原因是協程所持有的棧比線程要小很多,java當中會為每個線程分配1M左右的棧空間,而協程可能只有幾十或者幾百K,棧主要用來保存函數參數、局部變量和返回地址等信息。
1.3 LoadRunner
LoadRunner,是一種預測系統行為和性能的負載測試工具。通過模擬上千萬用戶實施並發負載及實時性能監測的方式來確認和查找問題,LoadRunner能夠對整個企業架構進行測試。企業使用LoadRunner能最大限度地縮短測試時間,優化性能和加速應用系統的發布周期。
LoadRunner可適用於各種體系架構的自動負載測試,能預測系統行為並評估系統性能。
1.4 LoadNinja
LoadNinja 是一個基於雲的負載測試和性能測試平台,用於 Web 應用程序和 Web 服務。它可以幫助開發人員、QA 團隊和性能工程師檢查他們的 Web 服務器是否承受大量負載,以及服務器是否健壯和可擴展。
使用 LoadNinja,您可以創建基於 UI 的測試來模擬用戶對測試的 Web 應用程序的操作,以及類似於客戶端通過 API 到達服務器的 API 測試。
1.5 Jmeter + Prometheus + Grafana
JMeter + Prometheus(InfluxDB)插件將JMeter指標導出到Prometheus(InfluxDB)數據庫,將數據可視化需要在Grafana中配置數據源。
Grafana(自譯:格拉法納)
是大多數 數據庫的開源分析和監控解決方案
Prometheus(普羅米修斯)
是一個開源的系統監控和報警工具包,最初是在SoundCloud開發的。
InfluxDB(數據庫)
是一個用於存儲和分析時間序列數據的開源數據庫
JMeter-Prometheus Plugin
它是一個開源項目,該插件的工作是將JMeter運行的后的指標數據導出到Prometheus。
Grafana
2、web前端性能測試工具
web前端性能測試工具,關於瀏覽器等客戶端工具對頁面的處理過程記錄,在此不做過多介紹。
2.1 web前端 常見 性能測試工具表
英文名稱 描述
Fiddler Fiddler是一個http協議調試代理工具,它能夠記錄並檢查所有你的電腦和互聯網之間的http通訊,設置斷點,查看所有的“進出”Fiddler的數據(指cookie,html,js,css等文件)。
Charles Charles是在PC端常用的網絡封包截取工具,可通過代理方式抓取移動端網絡通訊協議,支持WIndows、Mac、Linux。
HttpWatch HttpWatch是一款強大的網頁數據分析工具,集成在internet explorer工具欄。
Firebug Firebug是firefox下的一個擴展能夠調試網站的工具
Chrome 調試控制台
3、移動端性能測試工具
移動端性能測試工具,獲取手機應用CPU、內存、FPS、電量,啟動時間等數據的記錄。
3.1 移動端 常見 性能測試工具
英文名稱 描述
PerfDog PerfDog性能狗是移動全平台iOS\Android性能測試工具,快速定位分析性能問題工具
GT 騰訊GT工具是一款能表達移動app測試的性能測試工具
iTest iTest APP性能測試,可獲取CPU、Mem、網絡等
Android Studio Android Studio工具是開發Android應用,同時也可手機操作APP就可以在androidstudio查看性能測試數據了。也可以查看日志。
3.2 PerfDog
3.3 Android Studio
4、資源監控工具
資源監控工具是收集性能測試過程中的數據以及良好的結果展現方式
監控平台 | 命名或工具 |
Linux | nmon、top、vmstat、free等 |
JVM | jconsole、jvisualvm、JProfiler |
DB | AWR |
4.1 Linux top命令
4.2 JVM jconsole
4.3 DB AWR
結束語
本篇文章主要簡單總結下各平台軟件性能測試工具
版權聲明:本文為CSDN博主「BenjaminQA」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_25305833/article/details/122023388