一.性能測試
? ? ? ? ? 1 .性能:時間:系統(tǒng)處理用戶請求的響應(yīng)時間? ? ?資源:系統(tǒng)運行過程中型豁,系統(tǒng)資源的消耗情況
? ? ? ? ? 2.性能測試:(1).概念:通過工具來模擬系統(tǒng)正常僵蛛、異常尚蝌、峰值場景對系統(tǒng)各項性能指標測試
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2).原因:①.評估當前系統(tǒng)能力? ②.獲取系統(tǒng)性能瓶頸迎变,進行性能優(yōu)化? ③.招聘需求
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ④.評估系統(tǒng)是否滿足未來的需求
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (3).分類:基準測試:建立基準線,當系統(tǒng)軟硬件環(huán)境發(fā)生變化后再進行基準測試以確定變化對? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?性能的影響.(單用戶測試)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *負載測試:通過逐步增加系統(tǒng)負載飘言,確定在滿足性能指標的情況下衣形,找出系統(tǒng)所能? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 承受最大負載量的測試.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *穩(wěn)定性測試:在服務(wù)器穩(wěn)定運行的情況進行長時間測試,并最終保證服務(wù)器能滿足? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 線上業(yè)務(wù)需求
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?壓力測試:在強負載下測試姿鸿,查看系統(tǒng)在峰值下是否功能隱患谆吴、系統(tǒng)是否具有良好? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?的容錯能力和可恢復(fù)的能力。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 并發(fā)測試:在極短時間內(nèi)苛预,發(fā)送多個請求句狼,來驗證服務(wù)器對并發(fā)的處理能力
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (4).性能指標:①.響應(yīng)時間:發(fā)送請求+服務(wù)器處理請求+接受響應(yīng)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *258原則:響應(yīng)時間2s為優(yōu)秀? 5s為一般? 8s為bug 超8s嚴重bug
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ②.并發(fā)用戶數(shù):同一時刻向發(fā)送請求的用戶數(shù),秒殺热某、請購腻菇、紅包等
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ③.吞吐量(throughput):單位時間內(nèi)處理請求數(shù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ④.QPS(Query per second):每秒查詢數(shù),單位時間內(nèi)服務(wù)器處理請求數(shù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ⑤.TPS(Transaction per second):每秒事務(wù)數(shù)昔馋,單位時間內(nèi)服務(wù)器處理事務(wù)請? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?求數(shù).
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *QPS與TPS不一樣的區(qū)別:QPS:處理單個請求? ?TPS:處理多個請求
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ⑥.點擊數(shù):頁面所有元素請求數(shù)量
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ⑦.錯誤率:失敗個數(shù).(在滿足系統(tǒng)指標的情況下筹吐,失敗的個數(shù))
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ⑧.資源使用率:系統(tǒng)各種資源的使用情況率=資源使用量/總資源可用量x100%
? ? ? ? ? ?3.性能測試工具:jmeter、loadrunner
二.Jmeter
? ? ? ? ? ?1.下載安裝即啟動:配置環(huán)境變量→找到j(luò)meter解壓→打開bin→打開jmeter.bat 即啟動
? ? ? ? ? ?2.基本使用:測試計劃→線程組(線程數(shù)秘遏、準備時間丘薛、循環(huán)次數(shù))→采樣器(http)→監(jiān)聽器(聚合報告、察看結(jié)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?果樹邦危、用表格查看)
? ? ? ? ? ?3.組件介紹:①.測試計劃:jmeter性能測試起點洋侨,其他元件容器
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ②.線程組:性質(zhì)相同的一組線程? ? ?線程數(shù):模擬用戶數(shù)??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?準備時間:啟動所有用戶所用的時間? ?循環(huán)次數(shù):在時間內(nèi)創(chuàng)建完所有的線程
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ③.采樣器:http:協(xié)議、主機地址倦蚪、端口(選填)希坚、請求方法、路徑审丘、編碼格式(選填)吏够、參數(shù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ④.監(jiān)聽器:采集測試結(jié)構(gòu)? ?ample# 放前面表示: 樣本個數(shù) 后面表示:案例編號
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1).察看結(jié)果樹:采樣器結(jié)果、請求、響應(yīng)數(shù)據(jù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2).聚合報告
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (3).用表格查看
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ⑤.循環(huán)控制器:控制單個采樣器或單個事務(wù)的執(zhí)行次數(shù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ⑥.事務(wù)控制器:(事務(wù)就是多個操作的組合)勾選
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?作用:事務(wù)控制器會生產(chǎn)一個額外的采樣器锅知,用來統(tǒng)計控制器子結(jié)點的所有時間
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ⑦.斷言:用來判斷請求響應(yīng)的結(jié)果是否如用戶所期望的.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1.Json斷言:判斷某個key對應(yīng)某個value? ? ? ?2.響應(yīng)斷言:響應(yīng)中包含某個串
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ⑧.前置處理器和后置處理器:負責在生成請求之前和之后完成工作
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?前置處理器常用來修改請求的設(shè)置,后置處理器則常常用來處理響應(yīng)的數(shù)據(jù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ⑨.定時器:定義請求之間的延遲間隔
? ? ? ? ? ? 4.jmeter組件參數(shù)化:①.參數(shù)化:動態(tài)的獲取并設(shè)置數(shù)據(jù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ②.為什么使用參數(shù)化:人工效率低 播急、安全高效 、模擬多個用戶同時登錄系統(tǒng)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ③.參數(shù)化實現(xiàn)功能:1.用戶自定義變量
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1).作用:提供全局變量售睹,方便修改
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2).使用:配置元件 → 用戶定義的變量 → key value → ${key}
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.CSV Data Set Config
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1).配置文件:a.txt中添加字段如1,2,1? ?2,3,2? ?3,4,3(英文) →幾條循環(huán)幾次
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2).添加元件:CSV data set config → 選中文件 → 編碼 → 字段1,字段2
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (3).在采樣器界面:添加參數(shù) → 調(diào)用${字段名稱}
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.使用Jmeter函數(shù)助手(文件中不要出現(xiàn)中文)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?工具 → 函數(shù)小助手 → 選擇CSV Read → 復(fù)制文件路徑 → 字段編號 → 生成 → 自動復(fù)制桩警,過去粘貼
? ? ? ? ? ? 5.Jmeter正則表達式提取:可以從請求的響應(yīng)結(jié)果中取到需要的內(nèi)容從而實現(xiàn)關(guān)聯(lián).(關(guān)聯(lián)是請求與請求之間存在數(shù)據(jù)依? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 賴關(guān)系,需要從上一個請求獲取下一個請求需要回傳回去的數(shù)據(jù))
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1).正則語法:* + ? . ()
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2).實現(xiàn):①添加HTTP請求昌妹,使用正則提取一個需要字段
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ②在第一個HTTP請求里邊調(diào)用字段${字段}
? ? ? ? ? ? ?6.Jmeter腳本錄制:(1).概念:使用工具錄制請求腳本
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2).作用:方便并發(fā)壓力測試
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(3).分類:①.APP:添加非測試元件→添加錄制控制器→HTTP代理服務(wù)器,設(shè)置目標控制器為剛剛創(chuàng)建的錄制控制器→設(shè)置端口捶枢、IP→手機請求網(wǎng)絡(luò)→在錄制控制器里邊
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ②.Web: badboy:地址,錄制(藍色背景正在錄制)飞崖,導出腳本
? ? ? ? ? 7.壓測:1.連接數(shù)據(jù)庫:(1).添加jar包:mysql-connector-java-8.0.11.jar
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2).配置元件→JDBC connect configuration
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ①.連接池名字? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ②.DataBaseURL:jdbc:mysql://127.0.0.1:3306/mydb2(可變)?serverTimezone=UTC&allowMultiQueries=true
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ③.JDBC driver class:com.mysqljdbc.driver
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ④.UserName:數(shù)據(jù)庫名稱? ? ⑤.password:數(shù)據(jù)庫密碼
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(3).采樣器→JDBC request:①.連接池名稱:池名? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?②.查詢類型:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?select statement:功能:查詢? ? 注意:只支持單條查詢烂叔,只支持第一條數(shù)據(jù)查詢
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? updata statement:功能:修、添固歪、刪? 注意:同時支持新增和修改蒜鸡,但查詢只能放在最后
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? callable statement:支持查詢、修改? ?支持多個查詢
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? preoared select statement:功能:參數(shù)化?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?操作:①.sql中用牢裳?代替參數(shù)值??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?②.添加CSV data set config
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?③.Parameter Values:${變量名}
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?④.Parameter Types:值的類型逢防,只能varchar
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?③.SQL語句
? ? ? ? ? ? ? ? ? ?2.Windows壓測:(1).添加jar包:JMeterPlugins-Extras.jar、JMeterPlugins-Standard.jar到lib/ext
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2).監(jiān)聽服務(wù):server-agent蒲讯,雙擊啟動
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(3).給服務(wù)器(用本地數(shù)據(jù)庫模擬服務(wù)器)添加監(jiān)聽器-jp@gc - PerfMon Metrics Collector
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(4).添加性能指標忘朝,線程組設(shè)置線程數(shù)和時間:①.CPU? ?②.Memory? ③.disk IO? ④.network IO
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(5).壓測:線程組:線程數(shù)(500等不限)pamp-Up時間(60不限)
? ? ? ? ? ? ? ? ? 3.Linux壓測(與Windows壓測一致)? ? ??