2019廣東省工程建設(shè)網(wǎng)站搜索引擎優(yōu)化代理
協(xié)議
性能理論:并發(fā)編程?,系統(tǒng)調(diào)度,調(diào)度算法
監(jiān)控
壓力測試與負(fù)載測試的區(qū)別是什么?
負(fù)載測試
在被測系統(tǒng)上持續(xù)不斷的增加壓力,直到性能指標(biāo)(響應(yīng)時間等)超過預(yù)定指標(biāo)或者某種資源(CPU&內(nèi)存)使用已達(dá)到飽和狀態(tài)。核心是找到系統(tǒng)的處理極限,為系統(tǒng)調(diào)優(yōu)提供數(shù)據(jù),從而達(dá)到了解系統(tǒng)性能的容量
目的:
1、驗證服務(wù)被部署的系統(tǒng)出現(xiàn)資源瓶頸的時候,服務(wù)依然能夠提供產(chǎn)品的特性
2、找到系統(tǒng)的最大飽和狀態(tài),或者是最大的處理極限,為系統(tǒng)后續(xù)的容量規(guī)劃提供參考的數(shù)據(jù)
壓力測試
?????該方法是指系統(tǒng)在一定飽和狀態(tài)下,具體如CPU,內(nèi)存等飽和使用的情況下,系統(tǒng)能夠處理的會話能力,以及系統(tǒng)是否會出現(xiàn)錯誤,比如TimeOut,OOM,OverStackExpection(堆棧異常)。壓力測試的特點:
??檢查系統(tǒng)在處于壓力情況下時應(yīng)用的性能表現(xiàn)
??等價于負(fù)載測試,使系統(tǒng)的資源處于一個瓶頸的狀態(tài)(建議CPU和內(nèi)存在75%以上)
??這種方式一般用于測試系統(tǒng)的穩(wěn)定性
穩(wěn)定性:指的是系統(tǒng)在最大的極限下,依然能夠正常的訪問,不會對客戶造成任何的影響。
驗收負(fù)載測試
??????在QA的環(huán)境模擬生產(chǎn)運(yùn)行的業(yè)務(wù)壓力和使用場景組合,測試系統(tǒng)的性能是否滿足生產(chǎn)環(huán)境的性能訴求。
流量回放:
獲取生產(chǎn)環(huán)境的網(wǎng)絡(luò)請求,拿到QA的環(huán)境執(zhí)行
配置測試
??????被測環(huán)境軟硬件環(huán)境參數(shù)的調(diào)整,達(dá)到最優(yōu)的分配原則。
JVM:CPU,內(nèi)存
MySQL:連接數(shù),超時參數(shù)
操作系統(tǒng)監(jiān)控:CPU和內(nèi)存 使用率達(dá)到多少的時候觸發(fā)報警機(jī)制
達(dá)到一個好的系統(tǒng)的表現(xiàn):服務(wù)在客戶端高并發(fā)的情況下依然能夠正常的為客戶提供業(yè)務(wù)的能力和服務(wù)
并發(fā)測試
???????模擬用戶的并發(fā)訪問,測試多用戶并發(fā)訪問同一個應(yīng)用時是否存在死鎖或者其他的問題,并發(fā)測試的特點是:
??發(fā)現(xiàn)系統(tǒng)中可能隱藏的并發(fā)訪問(線程同步和死鎖)的問題
??關(guān)注系統(tǒng)可能存在的并發(fā)問題,如內(nèi)存泄露,線程鎖,資源爭用(調(diào)度算法)情況
??使用的測試工具如profiler等
?
高并發(fā)情況下:
1、線程同步
2、死鎖
業(yè)務(wù):文件讀寫的時候特別容易發(fā)生
死鎖:
A和B兩個,為了保持線程同步,那么A操作B的時候,鎖定B,B操作A的時候,鎖定A。
線程同步:
A和B兩個任務(wù),有100張車票,A和B同時進(jìn)行搶購,各搶100張
可靠性測試:給系統(tǒng)加載一定的業(yè)務(wù)壓力,讓應(yīng)用持續(xù)運(yùn)行一段時間,測試系統(tǒng)在這種條件下是否能穩(wěn)定運(yùn)行。
穩(wěn)定性測試:系統(tǒng)在持續(xù)運(yùn)行很長的一段時間后依然能穩(wěn)定的運(yùn)行。
JMeter執(zhí)?原理
??????JMerer通過線程組來驅(qū)動多個(也可以理解為LR?具??的虛擬?戶)運(yùn)?測試腳本對?標(biāo)服務(wù)器發(fā)起?量的?絡(luò)請 求,在每個客戶端上可以運(yùn)?多個線程組,也就是說?個測試計劃??可以包含N個線程組。
繼續(xù)
如果有?個請求錯誤,其他的請求會繼續(xù),不會因為有?個請求錯誤的導(dǎo)致其他請求終?。
?
啟動下?個進(jìn)程循環(huán)
如果請求出現(xiàn)問題,同?腳本中的其他請求就都不再執(zhí)?,直接執(zhí)?下?個進(jìn)程的信息。如登錄后下?個請求是查?看個?主?,但是因為登錄出錯,下個接?查看個?主?就不會被執(zhí)?。
?
停?線程
停?線程指的是如果請求失敗,就停?當(dāng)前線程執(zhí)?,不再繼續(xù)執(zhí)?。如果線程數(shù)很多的,那么導(dǎo)致的結(jié)果是停??的線程就會很多,處于真正運(yùn)?的線程會很少,最后導(dǎo)致服務(wù)器的負(fù)載不夠,?般不建議構(gòu)選改選項。
?
停?測試
如果請求失敗,那么停?所有線程執(zhí)?,也就是說停?整個測試。
?
?即停?測試
如果請求失敗,?即停?整個測試場景的執(zhí)?。
線程數(shù)
?個線程可以理解為對應(yīng)模擬?個?戶,所以線程數(shù)越多,那么也就認(rèn)為可以模擬的?戶數(shù)越多。
Ramp-Up時間(秒)
該屬性指的是所有線程從啟動到開始運(yùn)?的時間間隔,單位是秒,也就是說所有線程在多?時間內(nèi)開始執(zhí)?,如線?程數(shù)設(shè)置50,設(shè)置的時間為5秒,那么計算的公式為:
循環(huán)次數(shù)
循環(huán)次數(shù)可以理解為,請求的重復(fù)次數(shù)。如果選擇“永遠(yuǎn)”,那么請求將?直進(jìn)?,不建議這樣操作。
調(diào)度器
所謂調(diào)度器可以理解為設(shè)置何時開始運(yùn)?。
持續(xù)時間
測試計劃持續(xù)多?時間
啟動延遲
從當(dāng)前時間延遲多?時間開始運(yùn)?測試,也就是說點擊執(zhí)?后,僅僅是做初始化的場景,不會執(zhí)?測試,等待延遲?到達(dá)后開始運(yùn)?測試,執(zhí)?的時間為持續(xù)時間設(shè)置的時間。
總的虛擬用戶數(shù)是50,每秒啟動10個用戶,并發(fā)測試50個用戶(10秒加載完所有用戶,然后同時執(zhí)行)
聚合報告在監(jiān)聽器中添加
?
Label:取樣器名稱
Samples:取樣器運(yùn)?次數(shù)
Average:單個請求的平均響應(yīng)時間
Median:50%請求的響應(yīng)時間
90%Line:90%請求響應(yīng)時間
95%Line:95%請求響應(yīng)時間
99%Line:99%請求的響應(yīng)時間
Min:請求的最?響應(yīng)時間
Max:請求的最?響應(yīng)時間
Std.Dev:響應(yīng)時間的標(biāo)準(zhǔn)?差
Error%:事務(wù)錯誤率
Throughput:吞吐率,也就是TPS
KB/sec:每秒數(shù)據(jù)包流量
Avg.Bytes:平均數(shù)據(jù)流量
Received KB/sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量
SentKB/sec:每秒從客戶端發(fā)送的請求的數(shù)量
標(biāo)準(zhǔn)偏差SD:標(biāo)準(zhǔn)偏差為您提供了一定程度的穩(wěn)定性,但是,只需注意,標(biāo)準(zhǔn)偏差不會顯示最慢和最快的響應(yīng),而是有助于識別響應(yīng)趨勢。低標(biāo)準(zhǔn)偏差意味著系統(tǒng)內(nèi)的性能更穩(wěn)定或更一致。
響應(yīng)時間圖的添加
?
參數(shù)化:相同的測試步驟,不同的測試數(shù)據(jù),那么這個時候我們把測試的數(shù)據(jù)分離到文件中,在JMeter中,是通過CSV數(shù)據(jù)文件設(shè)置來實現(xiàn)的。
CSV Data Set Config的添加
創(chuàng)建一個含有登錄賬戶和密碼的文件
在CSV中添加文件,文件編碼中添加UTF-8,更改名稱:username,passward,
再使用${uswename}和${passward}調(diào)用變量
再到線程組中設(shè)置線程數(shù),也就是登錄賬號的數(shù)量
執(zhí)行后會看到登錄的賬戶
資料獲取方法
【留言777】
各位想獲取源碼等教程資料的朋友請點贊 + 評論 + 收藏,三連!
三連之后我會在評論區(qū)挨個私信發(fā)給你們~