線程組是什么
進(jìn)程: 一個正在執(zhí)行的程序?qū)?yīng)一個進(jìn)程
線程: 一個進(jìn)程有多個執(zhí)行線程
線程組: 按照線程性質(zhì)對線程分組
三者關(guān)系: 一個進(jìn)程有多個線程組犁嗅,一個線程組有多個線程
測試計(jì)劃—線程組—線程組屬性中的線程數(shù)
并發(fā)執(zhí)行:多個線程同時執(zhí)行拯坟,特點(diǎn):執(zhí)行結(jié)束的順序與開始的順序不一致
順序執(zhí)行:按照線程的啟動順序挨個執(zhí)行
默認(rèn)情況下眶诈,線程組中的線程是并發(fā)執(zhí)行
每一個線程都要執(zhí)行組內(nèi)的http請求
設(shè)置線程組順序執(zhí)行:勾選測試計(jì)劃中的(獨(dú)立運(yùn)行每個線程組)
線程組用來模擬用戶的并發(fā)訪問
Jmeter修改為中文
Jmeter修改背景色
Jmeter修改字體
創(chuàng)建線程組
線程組主要包含三個參數(shù):線程數(shù)涨醋、準(zhǔn)備時長(Ramp-Up Period(in seconds))、循環(huán)次數(shù)逝撬。
線程數(shù):虛擬用戶數(shù)浴骂。一個虛擬用戶占用一個進(jìn)程或線程。設(shè)置多少虛擬用戶數(shù)在這里也就是設(shè)置多少個線程數(shù)宪潮。
準(zhǔn)備時長(秒):設(shè)置的虛擬用戶數(shù)需要多長時間全部啟動溯警。如果線程數(shù)為20 ,準(zhǔn)備時長為10 狡相,那么需要10秒鐘啟動20個線程梯轻。也就是每秒鐘啟動2個線程。
循環(huán)次數(shù):每個線程發(fā)送請求的次數(shù)尽棕。如果線程數(shù)為20 喳挑,循環(huán)次數(shù)為100 ,那么每個線程發(fā)送100次請求萄金◇霸茫總請求數(shù)為20*100=2000 。如果勾選了“永遠(yuǎn)”氧敢,那么所有線程會一直發(fā)送請求日戈,一到選擇停止運(yùn)行腳本。
調(diào)度器:設(shè)置線程組啟動的開始時間和結(jié)束時間(配置調(diào)度器時孙乖,需要勾選循環(huán)次數(shù)為永遠(yuǎn))
持續(xù)時間(秒):測試持續(xù)時間浙炼,會覆蓋結(jié)束時間
啟動延遲(秒):測試延遲啟動時間,會覆蓋啟動時間
啟動時間:測試啟動時間唯袄,啟動延遲會覆蓋它弯屈。當(dāng)啟動時間已過,手動只需測試時當(dāng)前時間也會覆蓋它恋拷。
結(jié)束時間:測試結(jié)束時間资厉,持續(xù)時間會覆蓋它。
創(chuàng)建HTTP請求
指定請求域名請求域名蔬顾,請求路徑
一個HTTP請求有著許多的配置參數(shù)宴偿,下面將詳細(xì)介紹:
名稱:本屬性用于標(biāo)識一個取樣器,建議使用一個有意義的名稱诀豁。
注釋:對于測試沒有任何作用窄刘,僅用戶記錄用戶可讀的注釋信息。
服務(wù)器名稱或IP :HTTP請求發(fā)送的目標(biāo)服務(wù)器名稱或IP地址舷胜。
端口號:目標(biāo)服務(wù)器的端口號娩践。
服務(wù)器名稱或IP、端口號 :配置目標(biāo)服務(wù)器名稱或者IP地址,端口號默認(rèn)情況下為80翻伺,也可以指定其它端口號材泄。
方法:發(fā)送HTTP請求的方法,可用方法包括GET穆趴、POST脸爱、HEAD遇汞、PUT未妹、OPTIONS、TRACE空入、DELETE等络它,注意在填寫路徑時服務(wù)器地址、端口及參數(shù)不需要歪赢,只需要填寫剩余后的部分化戳。。
Content encoding :內(nèi)容的編碼方式埋凯,此處采用utf-8点楼,如果為空默認(rèn)值為iso8859編碼。
路徑:目標(biāo)URL路徑(不包括服務(wù)器地址和端口)
方法:發(fā)送請求的具體方法白对,可以是GET掠廓、POST等。路徑:配置路徑甩恼,注意在填寫路徑時服務(wù)器地址蟀瞧、端口及參數(shù)不需要,只需要填寫剩余后的部分条摸。
參數(shù)配置:表中每行表示一個參數(shù)(與URL中的 name=value相對應(yīng))
設(shè)置對應(yīng)的查看內(nèi)容
查看表格信息
Sample:每個請求的序號
Start Time:每個請求開始時間
Thread Name:每個線程的名稱
Label:Http請求名稱
Sample Time:每個請求所花時間悦污,單位毫秒
Status:請求狀態(tài),如果為勾則表示成功钉蒲,如果為叉表示失敗切端。
Bytes:請求的字節(jié)數(shù)
樣本數(shù)目:也就是上面所說的請求個數(shù),成功的情況下等于你設(shè)定的并發(fā)數(shù)目乘以循環(huán)次數(shù)
平均:每個線程請求的平均時間
最新樣本:表示服務(wù)器響應(yīng)最后一個請求的時間
偏離:服務(wù)器響應(yīng)時間變化顷啼、離散程度測量值的大小踏枣,或者,換句話說线梗,就是數(shù)據(jù)的分布椰于。
Jmeter的壓力測試
1測試計(jì)劃中添加線程租
2在線程租中添加http請求 在http請求中需要填入
3. 在線程租中進(jìn)行修改并發(fā)數(shù)量(修改線程數(shù)量修改循環(huán)次數(shù))
4. 在線程組中進(jìn)行添加聚合報(bào)告/表格查看結(jié)果/圖形結(jié)果
?
Jmeter的對數(shù)據(jù)庫鏈接(對數(shù)據(jù)庫進(jìn)行壓力測試)
測試數(shù)據(jù)的來源:
A.復(fù)用開發(fā)的原有數(shù)據(jù) b.復(fù)用線上的真實(shí)數(shù)據(jù)c.直接使用線上數(shù)據(jù) d.測試人員手動添加
E:產(chǎn)品或者是運(yùn)營提供數(shù)據(jù)
在線程中添加配置原件jdbconection config
在線程租中添加取樣器中的jdbcrequest
注意:query type類型不同則寫sql語句不同
https://blog.csdn.net/vikeyyyy/article/details/80367135
查看結(jié)果樹
通過察看結(jié)果樹,我們可以看到每個請求的結(jié)果仪搔,其中紅色的是出錯的請求瘾婿,綠色的為通過。
Thread Name:線程組名稱
Sample Start: 啟動開始時間
Load time:加載時長
Latency:等待時長
Size in bytes:發(fā)送的數(shù)據(jù)總大小
Headers size in bytes:發(fā)送數(shù)據(jù)的其余部分大小
Sample Count:發(fā)送統(tǒng)計(jì)
Error Count:交互錯誤統(tǒng)計(jì)
Response code:返回碼
Response message:返回信息
Response headers:返回的頭部信息
聚合報(bào)告參數(shù)說明
與Summary Report類似,但是表格中的內(nèi)容有些許區(qū)別偏陪。聚合報(bào)告:記錄這次卻被行測試總請求數(shù)抢呆、錯誤率、用戶響應(yīng)時間(中間值笛谦、90%抱虐、最少、最大)饥脑、吞吐量等恳邀,用以幫助分析被測試系統(tǒng)的性能。
lable:對應(yīng)每一個http請求灶轰,顯示的是http請求的Name谣沸,如百度http請求name為baidu
#Samples:表示這一次的測試中一共發(fā)出了多少請求,如上圖所示笋颤,sougou和baidu的http請求每個都發(fā)出30個請求
Average:平均響應(yīng)時間乳附,指的是所有的請求的平均響應(yīng)時間,如上圖的30個請求的總的響應(yīng)時間除以30得出的平均響應(yīng)時間伴澄,默認(rèn)的情況下是單個請求的平均響應(yīng)時間赋除,但當(dāng)使用了“事務(wù)控制器”時,則以事物為單位顯示平均響應(yīng)時間
Median:中位數(shù)非凌,也就是50%用戶的響應(yīng)時間
90%Line:90%用戶的響應(yīng)時間
Min:最小響應(yīng)時間
Max:最大的響應(yīng)時間
Error%:本次測試中出現(xiàn)錯誤的請求的數(shù)量/請求的總數(shù)举农,如上圖所示,本次的測試中清焕,sougou的http請求66.6%的請求出錯并蝗,而baidu的請求則沒有出錯的請求
Throughput:吞吐量,默認(rèn)情況下表示每秒完成的請求數(shù)秸妥,如上圖所示滚停,每秒完成的請求數(shù)分別為6.6個每秒,6.2個每秒
Recived KB/Sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量粥惧,以kb為計(jì)算的單位
樣本數(shù)目:是總共發(fā)送到服務(wù)器的請求數(shù)键畴。
最新樣本:表示服務(wù)器相應(yīng)最后一個請求的響應(yīng)時間。
吞吐量:服務(wù)器每分鐘處理的請求數(shù)突雪。
平均值:是總運(yùn)行時間除以發(fā)送到服務(wù)器的請求數(shù)(平均響應(yīng)時間)起惕。
中間值:一半的響應(yīng)時間請求高于該值。
偏離:代表服務(wù)器相應(yīng)時間變化的數(shù)據(jù)的分布
斷言:
響應(yīng)斷言:
持續(xù)時間斷言
字節(jié)斷言
輸出性能報(bào)告
輸入以下命令咏删,進(jìn)行性能測試并輸出CSV執(zhí)行結(jié)果文件和HTML報(bào)告
jmeter -n -t C:\temp\jmeter.jmx -l C:\temp\jmeterfile\test.csv -e -o C:\temp\jmetertest
三個路徑依次是:xxx.jmx文件路徑惹想,輸出xxx.csv文件路徑,要保存的http report的文件路徑
[注意]當(dāng)這個兩個目錄已經(jīng)生成了文件時督函,請先清除或者備份嘀粱,保持目錄為空時激挪,在執(zhí)行以下操作
錄制腳本—Web端
打開Badboy
運(yùn)行網(wǎng)址獲取數(shù)據(jù)
在Jmeter中打開剛剛保存的文件
補(bǔ)充數(shù)據(jù)
運(yùn)行查看結(jié)果
錄制腳本—移動端
添加一個代理服務(wù)器
設(shè)置模擬器中的網(wǎng)絡(luò)
代理服務(wù)器添加修改信息
運(yùn)行代理服務(wù)器
運(yùn)行結(jié)果
正則表達(dá)式
創(chuàng)建正則表達(dá)式
填入數(shù)據(jù)
引用名稱:在HTTP請求中引用此數(shù)據(jù),需要用到的名稱
正則表達(dá)式:用于將需要的數(shù)據(jù)提取出來
():括起來的部分就是要提取的
. :匹配任何字符
+ :一次或者多次
* :所有字符串
? :在找到第一個匹配項(xiàng)后停止
模板:表示使用提取到的第幾個值
$ 1 $:表示取第一個
$ 2 $:表示取第二個
以此類推: $ n $:表示取第 n 個
匹配數(shù)字(0表示隨機(jī)): 0表示隨機(jī)锋叨,1代表全部取值
缺省值:如果正則表達(dá)式?jīng)]有找到值垄分,則使用此缺省值
need-to-insert-img
need-to-insert-img
need-to-insert-img
運(yùn)行結(jié)果
need-to-insert-img
連接數(shù)據(jù)庫
導(dǎo)入Jar包
need-to-insert-img
配置數(shù)據(jù)庫連接
need-to-insert-img
need-to-insert-img
數(shù)據(jù)庫配置
need-to-insert-img
查詢
need-to-insert-img
need-to-insert-img
need-to-insert-img
詳細(xì)說一下這個
need-to-insert-img
Selext Statement:查詢語句
僅支持select 語句 ,并且一次只能測試一條
Updata Statement:更新語句
支持測試非select語句娃磺,并且支持測試多條薄湿,入其中加載這色了系統(tǒng)語句,則自動忽略偷卧,若第一條語句為select語句豺瘤,報(bào)錯
Callable Statement:所有語句
只要語法正確,任何語句涯冠,在多條都支持