1. 程式人生 > 其它 >效能測試1

效能測試1

效能測試理論

測試:

1、功能測試

2、自動化測試

UI自動化測試

API自動化測試(介面)

3、效能測試

4、安全測試(滲透測試)

效能測試:

1、效能測試理論

2、效能測試的方法

3、效能測試工具實戰

4、程式碼級別的效能測試

5、資源監控

效能對軟體而言是一種指標,是衡量軟體使用者體驗最核心的指標之一,給使用者最直觀的感受就是產品的響應時間。

衡量一個產品的效能指標有很多,但是主要是響應時間(反應快還是反應慢),以及吞吐量(同時多少個人可以訪問這個系統,比如一碼通,同時是否支撐1000萬同時進行核酸檢測)

怎麼檢視響應時間?

1、滑鼠右鍵,點選檢查

2、點選netwrok

3、點選clear按鈕

4、

資源競爭:資源有限,但是競爭的程式有點多,那麼這個時候優先搶到資源的,就可以優先執行。

在實際的工作裡面,如果測試的一個頁面,響應時間大於5秒,那麼一般情況下,需要反饋程式設計師,也就是說提交一個優化的問題單。

運維除了關注響應時間外,也會關注更多底層的資源資訊,這些資源資訊具體可以彙總為如下: 系統資源(CPU和記憶體) 資料庫資源(IOPS資源) JVM記憶體是否夠用 系統的最大容量

系統資源:CPU和記憶體(memory) 資料庫(database,db):資料庫就是儲存資料的,對於資料庫而言,讀寫的速度就顯得非常重要,衡量讀寫的速度的指標是IOPS

JVM記憶體是否夠用: Java語言,特點是跨平臺的,Java跨平臺是通過jvm來實現的,就是Java 編寫的程式都有記憶體的大小設定,如果程式超過這個記憶體的大小設定,那麼就出現了記憶體洩露(Out Of Memory ,OOM)

開發視角 開發的關注度會更加的全面,畢竟程式碼都是程式設計師來編寫的,具體可以彙總為如下: 前後互動的響應時間 中介軟體的引數設定(RabbitMQ,Kafka,Redis) 記憶體釋放洩露 連線數洩露: 資料庫(DB):程式設計師需要查詢資料,前提是連線到資料庫,但是了資源有限,如果之前的佔用了沒釋放,那麼導致後面的連線不上,然後就洩露了 是否存在不合理的記憶體使用方式 是否存在不合理的執行緒同步方式 系統中是否存在不合理的資源競爭 系統架構&程式碼結構

架構: 單體架構----》垂直架構---〉SOA架構----》微服務架構

單體架構:所有的程式碼整合到一起 垂直架構:按照模組來整合不同的程式碼 SOA架構:不同模組之間的資料同步 微服務架構:按照業務型別把每個業務寫成一個服務

SAAS:Software As A Service 中文意思:軟體即服務 PAAS: Platform As A Service 中文意思:平臺即服務

測試視角 使用者關注的視角屬於全棧性的,需要考慮使用者視角的產品體驗,也要監控以及關注運維視角和開發視角,所以效能測試中測試的具體工作職責可以總結為: 設計合理的場景和測試用例來驗證系統的資源資料 驗證在高併發的情況下架構是否滿足 給架構師以及開發人員提供中介軟體配置引數的合理值範圍 使用技術手段監控系統,DB,中介軟體,全鏈路監控的方式來監控系統資源情況

WEB前端 所謂前端的效能目前也是效能測試中比較熱門的技術之一,關注的點具體彙總為如下: 瀏覽器的資源載入(HTML解析,圖片資源載入,CSS檔案資源載入) 前端快取技術的優化是否合理性 前端與後端的互動性耗時

響應時間

⼀次操作完成的時間,也就是客戶端傳送請求到服務端後,服務端返回到客戶端的響應資料的時間。包含了⽤於等 待和服務的時間,也包括⽤來返回結果的時間。響應時間=⽹絡時間+應⽤程式的處理時間,具體如下圖所示:

併發使用者數

效能測試的核心是驗證當前系統能否支援現有使用者的訪問,也就是說系統可以承受在同一時間段多少使用者來訪問系統,比如王者榮耀的遊戲,是否可以承受同時線上人數一個億的人同時進行玩遊戲?

吞吐量

主要⽤於資料傳輸⽅⾯,也就是被測試系統的執⾏效率。該術語⽤於描述資料傳輸速度(位元組/秒或者⽐特/秒),在 某些情況下(如DB層⾯),吞吐量指的是操作的速度,也就是每秒運算元或者每秒業務數。或者也可以說單位時 間內客戶端請求的數量,直接體現系統的效能承載能力。

效能計數器:

指的是效能測試過程中,需要收集哪些資料,並且收集的這些資料對效能測試有幫助 系統:cpu memory 資料庫db:iops 被測系統:響應時間,併發使用者數,吞吐量

使用率

對於服務所請求的資源,使⽤率描述的是所給定的時間區間內資源的繁忙程度。對於儲存資源來說,使⽤率指的就 是所消耗的儲存容量。如⼀個業務中,會使⽤⼤量的記憶體資源,總的記憶體資源是4G,在⼀定資料量的情況下執⾏該 業務形態,記憶體使⽤率從100M⼀直佔⽤到3G,然後隨著業務形態記憶體資源得到釋放呈下降的趨勢,那麼可以說內 存使⽤率最⾼為75%,可能會存在OOM的錯誤資訊,也可能會存在記憶體洩露的情況。所以使⽤率分兩個維度,⼀ 個是系統資源的使⽤率,另外⼀個是系統內部署服務對系統資源的使⽤率。

思考時間

思考時間英文名稱是Think Time,也稱為休眠時間,在業務視角,思考時間指的是使用者在進行操作時,每個請求之間的間隔時間。

IOPS

該術語主要是針對資料庫的,也就是每秒發⽣的輸⼊/輸出操作的次數,是資料傳輸的⼀個度量⽅法。⽤於磁碟的讀寫,IOPS值的是每秒讀和寫的次數。

TPS/QPS

事務指的是某個操作或者是⼀組操作的組合,如登入的事務那麼就是輸⼊賬戶和密碼,點選登入按鈕跳轉到登入成 功的⻚⾯並且資訊都加載出來。TPS統計的是每秒處理的事務數,即系統每秒能夠處理的事務的數量。QPS指的是 每秒查詢率,如DB伺服器在規定時間內處理流量多少的衡量標準。

資源排程:

系統的資源是有限的,假設所有的程式都啟動,很明顯資源不夠,那麼這個時候誰先執行,誰後執行。誰先搶到資源,誰先執行,這個過程中資源會不停的切換。

排程策略:

在資源有限的情況下,所有的任務都可以執行,但是如果資源在不夠的情況下,那麼就會有排隊的機制。

排隊的機制:

佇列(資料結構),先進先出。Queue,有這麼幾個方法: put():進隊 get():出隊 empty():隊伍是否為空

CPU密集型:應⽤程式執⾏繁重的計算,通常運⾏時間⽐較⻓,會佔⽤⼤量的CPU IO密集型:應⽤程式執⾏I/O,計算不多,會佔⽤⼤量的記憶體資源 系統的最⼩粒度是執行緒,也就是說系統排程中粒度最細的就是對執行緒的排程。

等待佇列

在程式中,都會涉及到等待佇列的,不管是同步互動還是非同步的互動中,都會涉及它的最⼤佇列,這樣設計的核⼼ 思想是防⽌在客戶端⾼併發的情況下服務端在沒有佇列的情況下出現雪崩以及最終導致服務端出現癱瘓,