第五單元、性能測試
1.什么是性能測試
? ? ? ? 通過自動化的測試工具模擬系統(tǒng)正常绣硝、異常蜻势、峰值的場景對系統(tǒng)的各項性能指標測試
2.什么是性能
? ? ? ? 時間:系統(tǒng)處理用戶請求的響應(yīng)時間
? ? ? ? 資源:系統(tǒng)運行過程中,系統(tǒng)資源的消耗情況
3.為什么進行性能測試
? ? ? ? 1.評估當前系統(tǒng)的能力
? ? ? ? 2.評估軟件是否滿足未來的需要
? ? ? ? 3.尋找性能瓶頸鹉胖,優(yōu)化系統(tǒng)性能
? ? ? ? 4.招聘需要
4.性能測試的分類
? ? ? ? 1.基準測試
? ? ? ? ? ? 單用戶測試/建立基準線握玛,當系統(tǒng)軟硬件環(huán)境發(fā)生變化之后
? ? ? ? ? ? 再進行一次基準測試以確定變化對性能的影響。
? ? ? ? 2.負載測試
? ? ? ? ? ? 增加系統(tǒng)負載甫菠,在滿足性能指標的情況下挠铲,找出系統(tǒng)所能承受最大負載量的測試
? ? ? ? 3.穩(wěn)定性測試
? ? ? ? ? ? 服務(wù)器穩(wěn)定運行的情況下進行長時間測試并最終保證服務(wù)器能滿足線上業(yè)務(wù)需求
? ? ? ? 4.壓力測試
? ? ? ? ? ? 在強壓下,查看系統(tǒng)是否具有良好的容錯能力和修復能力
? ? ? ? 5.并發(fā)測試
? ? ? ? ? ? 在極短時間內(nèi)寂诱,發(fā)送多個請求拂苹,驗證服務(wù)器對并發(fā)的處理能力
5.性能測試的指標
? ? ? ? 1.響應(yīng)時間? 2s? 5s? 8s
? ? ? ? ? ? 客戶端發(fā)送請求開始,到客戶端接收到結(jié)果的總時間
? ? ? ? ? ? 服務(wù)器處理時間+網(wǎng)絡(luò)傳輸時間
? ? ? ? 2.并發(fā)用戶數(shù)
? ? ? ? ? ? 某一時刻同時向服務(wù)器發(fā)送請求的用戶數(shù)
? ? ? ? 3.吞吐量
? ? ? ? ? ? 單位時間內(nèi)處理客戶端的請求數(shù)量痰洒,直接體現(xiàn)軟件系統(tǒng)的承載能力瓢棒。
? ? ? ? 4.QPS
? ? ? ? ? ? 每秒查詢數(shù),即控制服務(wù)器每秒處理的指定請求的數(shù)量
? ? ? ? 5.TPS
? ? ? ? ? ? 每秒事務(wù)數(shù)丘喻,即控制服務(wù)數(shù)每秒處理事務(wù)請求的數(shù)量
? ? ? ? 6.點擊數(shù)
? ? ? ? ? ? 所有頁面元素的請求總數(shù)量
? ? ? ? 7.錯誤率
? ? ? ? ? ? 系統(tǒng)在負載情況下脯宿,失敗業(yè)務(wù)的概率
? ? ? ? 8.資源利用率
? ? ? ? ? ? 系統(tǒng)各種資源的使用情況? ? 率=資源使用率/總資源可用率*100%
? ? ? ? ? ? 常見資源指標:
? ? ? ? ? ? CPU使用率:不高于75%-85%
? ? ? ? ? ? 內(nèi)存大小使用率:不高于80%
? ? ? ? ? ? 磁盤IO(速率):不高于90%
? ? ? ? ? ? 網(wǎng)路(速率):不高于80%
? ? ? ? 9.業(yè)務(wù)成功率
? ? ? ? ? ? 多用戶對某一業(yè)務(wù)發(fā)送操作的成功率
Jmeter
6.jmeter的作用
? ? ? ? 1.接口測試 面試說postman,因為方便好用泉粉。
? ? ? ? 2.性能測試 jmeter连霉,也可以用postman(runner),但是沒有性能指標
? ? ? ? 3.數(shù)據(jù)庫測試
7..線程組是什么搀继?
? ? ? ? 概念:性質(zhì)相同的線程放在一個組內(nèi)
? ? ? ? 線程組包含線程數(shù)窘面、準備時長、循環(huán)次數(shù)
? ? ? ? 1.線程數(shù):虛擬用戶數(shù)
? ? ? ? 2.準備時長:啟動所有用戶的時間
? ? ? ? 3.循環(huán)次數(shù):每個線程發(fā)送請求的次數(shù)
8.jmeter主要組件
? ? ? ? 1.測試計劃
? ? ? ? 2.線程組:性質(zhì)相同的一組線程(線程數(shù)叽躯、準備時間财边、循環(huán)次數(shù))
? ? ? ? 3.采樣器:HTTP
協(xié)議点骑、主機地址酣难、端口號(選填)谍夭、請求方法、路徑憨募、編碼格式(選填)紧索、參數(shù)
? ? ? ? 4.監(jiān)聽器:采集測試結(jié)構(gòu)
? ? ? ? ? ? 察看結(jié)果樹、用表格查看菜谣、聚合報告
? ? ? ? 5.循環(huán)控制器
? ? ? ? 6.事務(wù)控制器
? ? ? ? ? ? 事務(wù):多個操作組合
? ? ? ? ? ? 作用:
? ? ? ? 7.固定定時器
? ? ? ? ? ? ? ? 作用:控制兩個采樣器的間隔
? ? ? ? 8.斷言
? ? ? ? ? ? ? ? 1.Json斷言:判斷某個key對應(yīng)某個value
? ? ? ? ? ? ? ? 2.響應(yīng)斷言:響應(yīng)中包含某個串
? ? ? ? 9.前置處理器和后置處理器
9.參數(shù)化
? ? ? ? 1.用戶自定義變量:
? ? ? ? ? ? ? ? 作用:提供全局變量珠漂,方便修改
? ? ? ? ? ? ? ? 使用:配置元件 → 用戶定義的變量 → key value → ${key}
? ? ? ? 2.CSV data set config
? ? ? ? ? ? ? ? 配置文件:
? ? ? ? ? ? ? ? 添加元件:CSV data set config → 選中文件 → 編碼 → 字段1,字段2
? ? ? ? ? ? ? ? 在采樣器界面:添加參數(shù) → 調(diào)用${字段名稱}
? ? ? ? 3.CSV函數(shù)小助手
? ? ? ? ? ? ? ? ? 工具? → 函數(shù)小助手 → 選擇CSV Read → 復制文件路徑 → 字段編號 → 生成 → 自動復制,過去粘貼
10.接口依賴
? ? ? ? 正則語法:* + ? . ()
? ? ? ? 實現(xiàn):
? ? ? ? ? ? ①添加HTTP請求尾膊,使用正則提取一個需要字段
? ? ? ? ? ? ②在第一個HTTP請求里邊調(diào)用字段${字段}
第六單元 jmeter腳本錄制和壓測
1.什么是腳本錄制
在進行測試的時候媳危,可能有好多腳本或者界面需要操作測試,并且有些測試鏈接需要重復多線程高并發(fā)進行測試冈敛,我們一般會針對這一些操作待笑,進行一個腳本錄制,錄制好之后抓谴,之后測試就可以在這個基礎(chǔ)上進行測試暮蹂。
2.腳本錄制方式
? ? web端:badboy腳本錄制
? ? app端:使用Jmeter自帶的代理服務(wù)器進行腳本錄制
3.Android手機端腳本錄制
? ? 1.同網(wǎng)
? ? 2.添加http代理服務(wù)器
? ? 3.在線程中添加錄制控制器
? ? 4.在http代理服務(wù)器中指定錄制腳本的路徑烦周,默認端口8888
? ? 5.查看本地的ip
? ? 6.設(shè)置移動端代理闺兢,IP和端口號
? ? 7.啟動
? ? 8.打開手機app析恋,抓取接口
4.web端腳本錄制
安裝badboy腳本軟件→打開badboy軟件→使用
第七單元 Jmeter壓測
一.數(shù)據(jù)庫壓測
? ? 1.為什么要緊行數(shù)據(jù)庫壓測
? ? ? ? 不斷給數(shù)據(jù)庫施加壓力禀挫,驗證數(shù)據(jù)庫處理的性能
? ? 2.如何進行數(shù)據(jù)庫壓測
? ? ? ? 1.jdbc配置:創(chuàng)建線程組→添加配置元件JDBC Connection Configuration→對數(shù)據(jù)庫連接的配置進行設(shè)置→添加jdbc Request請求→運行
select statement:只支持單條查詢,只支持第一條數(shù)據(jù)查詢
updata statement:修改數(shù)據(jù)
Callable Statement:支持查詢芹扭、修改悬赏、支持多個查詢
Prepared Select Statement:類型必須為varchar**結(jié)合csv配置數(shù)據(jù)
二.1.jmeter對服務(wù)器壓測(windows)
? ? ? 資源準備:? JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar放到apache-jmeter-3.0\lib\ext目錄下
? ? 操作:打開server的監(jiān)聽→添加監(jiān)聽器-jp@gc - PerfMon Metrics Collector→添加性能指標,線程組設(shè)置線程數(shù)和時間
? ? 2.jmeter對服務(wù)器壓測(linux)
同上