遇:
###一. 性能測試
#####1.為什么要進行性能測試亲雪?
1. 評估當(dāng)前系統(tǒng)的能力
2. 尋找性能瓶頸勇凭,優(yōu)化系統(tǒng)性能
3. 評估軟件是否滿足未來的需要
4. 招聘需要
#####2.什么是性能
**時間:**系統(tǒng)處理用戶請求的響應(yīng)時間
**資源:**系統(tǒng)運行過程中,系統(tǒng)資源的消耗情況
#####3. 性能測試是什么
######(1)廣義定義
基于協(xié)議模擬用戶發(fā)出請求义辕,對服務(wù)器形成一定負載套像,來測試服務(wù)器的性能指標是否滿足要求性能指標關(guān)注點:時間性能、空間性能性能測試與頁面無關(guān)
######(2)狹義定義
指通過自動化的測試工具模擬多種正常终息、峰值以及異常負載條件來對系統(tǒng)的各項性能指標進行測試。
#####4.功能和性能測試
1. 不同
功能測試驗證系統(tǒng)的功能需求規(guī)格贞让,聚焦功能周崭。
性能測試驗證系統(tǒng)的業(yè)務(wù)性需求場景,聚焦時間和資源喳张。
2. 關(guān)系
一般項目中续镇,先功能測試通過后,后進行性能測試销部。
#####5.性能測試的分類
######(1)基準測試
狹義:單用戶測試
廣義:建立基準線摸航,當(dāng)系統(tǒng)軟硬件環(huán)境發(fā)生變化之后再進行一次基準測試以確定變化對性能的影響。
######(2)負載測試
1. 概念
通過逐步增加系統(tǒng)負載舅桩,確定在滿足性能指標的情況下酱虎,找出系統(tǒng)所能承受最大負載量的測試。
2. 作用
系統(tǒng)最大負載量達到用戶要求時擂涛,系統(tǒng)才能正式上線使用读串。
3. 案例
電梯行業(yè)規(guī)范:電梯從1樓到5樓的運行時間不超過24s
```
1人? ? 20s
7人? ? 20s
13人? 20s? ? 達到最大負載
16人? 25s
19人? 28s
21人? 斷繩子
```
4. 注意
通過負載測試,可以確定系統(tǒng)的最大負載量和極限負載量
系統(tǒng)對外宣稱的最大負載量
負載測試的時間一般為1-2小時
######(3)穩(wěn)定性測試
1. 概念:在服務(wù)器穩(wěn)定運行(用戶正常業(yè)務(wù)負載下)的情況進行長時間測試(1天-一周等)撒妈,并最終保證服務(wù)器能滿足線上業(yè)務(wù)需求恢暖。
2. 系統(tǒng)在用戶需求的業(yè)務(wù)負載下運行達到規(guī)定的時間時,系統(tǒng)才能正式上線使用狰右。
######(4)壓力測試
1. 概念:在強負載下的測試杰捂,查看系統(tǒng)在峰值下是否功能隱患、系統(tǒng)是否具有良好的容錯能力和可恢復(fù)的能力棋蚌。
2. 測試場景
高負載下的長時間穩(wěn)定性壓力測試 (如:B-C區(qū)間內(nèi)進行24/3*24小時長時間測試)
極限負載下的破壞性壓力測試(如:C-D區(qū)間內(nèi)進行測試)
######(5)并發(fā)測試
1. 概念:在極短時間內(nèi)嫁佳,發(fā)送多個請求挨队,來驗證服務(wù)器對并發(fā)的處理能力。
2. 應(yīng)用場景
特定的活動場景:搶紅包脱拼、秒殺瞒瘸、搶購等。
3. 與負載測試對比:
負載測試:主要目的是測試高負載情況下熄浓,對系統(tǒng)資源的消耗情臭,是否會耗盡的問題(雙11活動)
并發(fā)測試:主要目的是測試極短時間內(nèi),并發(fā)請求時赌蔑,系統(tǒng)資源爭搶的問題(搶紅包俯在、秒殺)
#####6.性能測試的指標
######(1)響應(yīng)時間
1. 指從客戶端發(fā)起請求開始,到客戶端接收到結(jié)果的總時間
2. 包括:服務(wù)器處理時間 + 網(wǎng)絡(luò)傳輸時間
######(2)并發(fā)用戶數(shù)
某一時刻同時向服務(wù)器發(fā)送請求的用戶數(shù)
######(3)吞吐量(Throughout)
1. 概念:單位時間內(nèi)處理客戶端的請求數(shù)量娃惯,直接體現(xiàn)軟件系統(tǒng)能能承載能力跷乐。
2. 吞吐量單位分類
######(4)QPS
QPS(Query Per Second)每秒查詢數(shù),即控制服務(wù)器每秒處理的指定請求的數(shù)量趾浅。
######(5)TPS
TPS(Transaction Per Second)每秒事務(wù)數(shù)愕提,即控制服務(wù)器每秒處理事務(wù)請求的數(shù)量。
如:支付請求事務(wù)=查詢用戶余額請求+校驗支付安全請求+發(fā)送支付請求
每秒處理查詢用戶余額15請求皿哨,每秒處理校驗支付安全15個請求浅侨,每秒處理發(fā)送支付15個請求
支付tsp為15
######(6)點擊數(shù)
所有的頁面元素(如:圖片、鏈接证膨、框架等)的請求總數(shù)量
**注意:**點擊數(shù)是請求數(shù)如输,不是頁面上的一次點擊
######(7)錯誤率
指系統(tǒng)在負載情況下,失敗業(yè)務(wù)的概率
**注意:**錯誤率是性能指標央勒,是高負載下的失敗業(yè)務(wù)的概率
-隨機bug是功能bug不见,先解決隨機bug才能進行性能測試
######(8)資源利用率
1. 概念:系統(tǒng)各種資源的使用情況,率=資源使用量/總資源可用量x100%
2. 常見資源指標
CPU使用率:不高于75%-85%
內(nèi)存大小使用率:不高于80%
磁盤IO(速率):不高于90%
網(wǎng)路(速率):不高于80%
#####7.性能測試工具

遇:
###三. 使用Jmeter測試快速入門
#####1. 線程組是什么
```
進程: 一個正在執(zhí)行的程序?qū)?yīng)一個進程
線程: 一個進程有多個執(zhí)行線程
線程組:? 按照線程性質(zhì)對線程分組崔步。查看任務(wù)管理器(愛奇藝有多個)
三者關(guān)系: 一個進程有多個線程組稳吮,一個線程組有多個線程
```
測試計劃—線程組—線程組屬性中的線程數(shù)
并發(fā)執(zhí)行:多個線程同時執(zhí)行,特點:執(zhí)行結(jié)束的順序與開始的順序不一致
順序執(zhí)行:按照線程的啟動順序挨個執(zhí)行
默認情況下井濒,線程組中的線程是并發(fā)執(zhí)行
每一個線程都要執(zhí)行組內(nèi)的http請求
設(shè)置線程組順序執(zhí)行:勾選測試計劃中的(獨立運行每個線程組)
線程組用來模擬用戶的并發(fā)訪問
######(1)線程組主要包含三個參數(shù):
線程數(shù)盖高、準備時長(Ramp-Up Period(in seconds))、循環(huán)次數(shù)眼虱。
######(2)線程數(shù):
虛擬用戶數(shù)喻奥。一個虛擬用戶占用一個線程。設(shè)置多少虛擬用戶數(shù)在這里也就是設(shè)置多少個線程數(shù)捏悬。
######(3)準備時長(秒):
設(shè)置的虛擬用戶數(shù)需要多長時間全部啟動撞蚕。如果線程數(shù)為20 ,準備時長為10 过牙,那么需要10秒鐘啟動20個線程甥厦。也就是每秒鐘啟動2個線程纺铭。
######(4)循環(huán)次數(shù):
每個線程發(fā)送請求的次數(shù)。如果線程數(shù)為20 刀疙,循環(huán)次數(shù)為100 舶赔,那么每個線程發(fā)送100次請求∏恚總請求數(shù)為20*100=2000 竟纳。如果勾選了“永遠”,那么所有線程會一直發(fā)送請求疚鲤,一直到選擇停止運行腳本锥累。
######(5)調(diào)度器:
設(shè)置線程組啟動的開始時間和結(jié)束時間(配置調(diào)度器時,需要勾選循環(huán)次數(shù)為永遠)
######(6)持續(xù)時間(秒):
測試持續(xù)時間集歇,會覆蓋結(jié)束時間
######(7)啟動延遲(秒):
測試延遲啟動時間桶略,會覆蓋啟動時間
######(8)啟動時間:
測試啟動時間,啟動延遲會覆蓋它诲宇。當(dāng)啟動時間已過际歼,手動只需測試時當(dāng)前時間也會覆蓋它。
######(9)結(jié)束時間
測試結(jié)束時間姑蓝,持續(xù)時間會覆蓋它蹬挺。
#####2. 創(chuàng)建http請求

#####3. 指定請求域名,請求路徑

| 一個HTTP請求有著許多的配置參數(shù),下面將詳細介紹: |
|--|
| 名稱:本屬性用于標識一個取樣器溯泣,建議使用一個有意義的名稱虐秋。 |
| 注釋:對于測試沒有任何作用,僅用戶記錄用戶可讀的注釋信息垃沦。 |
| 服務(wù)器名稱或IP :HTTP請求發(fā)送的目標服務(wù)器名稱或IP地址客给。 |
| 端口號:目標服務(wù)器的端口號。 |
| 方法:發(fā)送HTTP請求的方法肢簿,可用方法包括GET靶剑、POST、HEAD池充、PUT桩引、OPTIONS、TRACE收夸、DELETE等坑匠。 |
| Content encoding :內(nèi)容的編碼方式,默認值為iso8859 |
| 路徑:目標URL路徑(不包括服務(wù)器地址和端口) |
點擊run測試卧惜,很麻煩厘灼,我們使用postman測試更簡單夹纫,使用postman操作。
可以使用剛才的接口文檔中的设凹,聚合接口中演示一個舰讹。
#####4. 設(shè)置對應(yīng)的查看內(nèi)容

**注意:**如果監(jiān)聽器中有jp@gc開頭的,都是第三方插件