Jmeter簡介
jmeter基本概念
Apache JMeter是Apache組織開發(fā)的基于Java的壓力測試工具甥郑。
為什么使用jmeter
開源,免費荤西,基于Java編寫澜搅,可集成到其他系統(tǒng)可拓展各個功能插件
支持接口測試,壓力(負載和壓力)測試等多種功能邪锌,支持錄制回放勉躺,
入門簡單相較于自己編寫框架活其他開源工具,有較為完善的UI界面觅丰,便于接口調(diào)試
多平臺支持饵溅,可在Linux,Windows妇萄,Mac上運行
支持多協(xié)議
jmeter的作用
接口測試
性能測試
壓力測試
Web自動化測試
數(shù)據(jù)庫測試
Jmeter修改為中文
jmeter更改外觀
創(chuàng)建線程組
線程組主要包含三個參數(shù):線程數(shù)蜕企、準備時長(Ramp-Up Period(in seconds))、循環(huán)次數(shù)冠句。
線程數(shù):虛擬用戶數(shù)轻掩。一個虛擬用戶占用一個進程或線程。設置多少虛擬用戶數(shù)在這里也就是設置多少個線程數(shù)懦底。
準備時長(秒):設置的虛擬用戶數(shù)需要多長時間全部啟動唇牧。如果線程數(shù)為20 ,準備時長為10 聚唐,那么需要10秒鐘啟動20個線程丐重。也就是每秒鐘啟動2個線程。
循環(huán)次數(shù):每個線程發(fā)送請求的次數(shù)杆查。如果線程數(shù)為20 扮惦,循環(huán)次數(shù)為100 ,那么每個線程發(fā)送100次請求亲桦【睹澹總請求數(shù)為20*100=2000 。如果勾選了“永遠”烙肺,那么所有線程會一直發(fā)送請求纳猪,一到選擇停止運行腳本。
調(diào)度器:設置線程組啟動的開始時間和結(jié)束時間(配置調(diào)度器時桃笙,需要勾選循環(huán)次數(shù)為永遠)
持續(xù)時間(秒):測試持續(xù)時間氏堤,會覆蓋結(jié)束時間
啟動延遲(秒):測試延遲啟動時間,會覆蓋啟動時間
啟動時間:測試啟動時間,啟動延遲會覆蓋它鼠锈。當啟動時間已過闪檬,手動只需測試時當前時間也會覆蓋它。
結(jié)束時間:測試結(jié)束時間购笆,持續(xù)時間會覆蓋它粗悯。
創(chuàng)建http請求
指定請求域名,請求路徑
一個HTTP請求有著許多的配置參數(shù)同欠,下面將詳細介紹:
名稱:本屬性用于標識一個取樣器样傍,建議使用一個有意義的名稱。
注釋:對于測試沒有任何作用铺遂,僅用戶記錄用戶可讀的注釋信息衫哥。
服務器名稱或IP :HTTP請求發(fā)送的目標服務器名稱或IP地址。
端口號:目標服務器的端口號襟锐。
方法:發(fā)送HTTP請求的方法撤逢,可用方法包括GET、POST粮坞、HEAD蚊荣、PUT、OPTIONS莫杈、TRACE妇押、DELETE等。
Content encoding :內(nèi)容的編碼方式姓迅,默認值為iso8859
路徑:目標URL路徑(不包括服務器地址和端口)
Http請求
添加線程組
在線程組里面添加http請求
http中添加值
結(jié)果輸出
用戶定義的變量
添加線程組
在線程組里面添加http請求
添加用戶變量
Jmeter的對數(shù)據(jù)庫鏈接(對數(shù)據(jù)庫進行壓力測試):
測試數(shù)據(jù)的來源:
a.復用開發(fā)的原有數(shù)據(jù)?b.復用線上的真實數(shù)據(jù)c.直接使用線上數(shù)據(jù)?
d.測試人員手動添加 e.產(chǎn)品或者是運營提供數(shù)據(jù)
DBC驅(qū)動包鏈接:
鏈接:https://pan.baidu.com/s/1P_jAt2C0lMnITjcRd5OeFg
提取碼:ab12
Jmeter需要使用JDBC功能時敲霍,把解壓好的jar包放在(jmeter的lib路徑)即可。
1.打開jmeter,先創(chuàng)建線程組丁存。
2.測試計劃->添加->配置元件->JDBC Connection Configuration
3.然后第一個紅框隨便寫肩杈,第二個紅框配置JDBC數(shù)據(jù)庫連接
Database URL:? jdbc:mysql://替換ip地址:3306/數(shù)據(jù)庫名
配置完成就可以執(zhí)行數(shù)據(jù)庫了。
4.線程組下面添加JDBC sample,在紅框里輸入第三步里的輸入的值
5.查看結(jié)果樹解寝,顯示這樣就已經(jīng)連接數(shù)據(jù)庫扩然,可以操作數(shù)據(jù)庫數(shù)據(jù)了
****注意:query?type類型不同則寫sql語句不同****
Jemter的二種錄制方法:
一,Badboy(PC端)
Badboy下載地址:鏈接:https://pan.baidu.com/s/1UNDfT8btdyHt3EE6gKCjzg
提取碼:ab12
Badboy是一款不錯web自動化測試工具聋伦,利用它來錄制腳本夫偶,并且錄制的腳本可以直接保存為JMeter文件來使用。
Badboy? version 2.0.5
通過Badboy來錄制腳本
1.打開badboy ,點擊紅色按鈕觉增,在地址欄輸入被測項目地址兵拢。
錄制完后,點擊旁邊的黑色按鈕結(jié)束錄制逾礁。
2.選擇文件说铃,Export to Jmeter 保存.jmx類型文件
3.打開Jmter,打開“文件”->‘打開’選擇剛保存的.jmx類型文件。
Badboy下載完成打開頁面如下:
二,使用Jmeter自身的代理錄制腳本(移動端)
1.打開jemter腻扇,創(chuàng)建一個線程
2.添加代理服務器债热,點擊 “工作臺”,然后右鍵幼苛,根據(jù)如下圖步驟窒篱,添加一個代理服務器。
3.設置端口以及錄制地址
4.通過模擬機配置端口號就可以完成鏈接
Jemter提取器:
一舶沿、正則表達式提取器
步驟:右鍵“HTTP請求”->添加->后置處理器->正則表達式提取
下面是正則表達式各參數(shù)值的含義:
1.引用名稱:在HTTP等請求中墙杯,引用此數(shù)據(jù),需要用到的名稱
2.正則表達式:用于將需要的數(shù)據(jù)提取出來
3.模板:$ 1$ 這是固定格式
4.匹配數(shù)值:0代表隨機取值暑椰,1代表第一值,n代表第n個值
5.缺省值:如果正則表達式?jīng)]有搜到值荐绝,則使用此缺省值
正則正則表達式的格式:字符串形式"token":"(.+?)" 數(shù)字形式 “taken”:[(0-9)+]
( ) 標記一個子表達式的開始和結(jié)束位置一汽。子表達式可以獲取供以后使用。要匹配這些字符低滩,請使用 ( 和 )召夹。
匹配前面的子表達式一次或多次。要匹配 + 字符恕沫,請使用 +监憎。
. 匹配除換行符 \n 之外的任何單字符。要匹配 . 婶溯,請使用 . 鲸阔。
? 匹配前面的子表達式零次或一次,或指明一個非貪婪限定符迄委。要匹配 ? 字符褐筛,請使用?
二、JSON提取器
步驟:右鍵“HTTP請求”->添加->后置處理器->JSON提取器
下面是JSON提取器各參數(shù)值的含義:
1.引用名稱:在HTTP等請求中叙身,引用此數(shù)據(jù)渔扎,需要用到的名稱
2.提取格式:$data[0].name
3.匹配數(shù)值:0代表隨機取值,1代表第一值信轿,n代表第n個值
4.缺省值:如果正則表達式?jīng)]有搜到值晃痴,則使用此缺省值
json提取格式json講解:
1.json串 []表示對象組成的數(shù)組,{}表示對象财忽。
2.對象里包含多個 “屬性”:屬性值倘核。屬性值可以是值,或數(shù)組即彪,或?qū)ο蟆?/p>
3.JSON Extractor使用json path表達式匹配笤虫,可以一次取多個變量值。$表示響應的根對象。取子對象或?qū)ο蟮膶傩杂? 取數(shù)組里的對象用[]琼蚯,數(shù)組索引從0開始酬凳。
Jemter定時器:
?一,固定定時器
讓每個線程在請求之前按相同的指定時間停頓遭庶,可以使用這個定時器宁仔;需要注意,固定定時器的延時不會計入單個sampler的響應時間峦睡,但會計入事務控制器的時間翎苫。
二,高斯隨機定時器
如需要每個線程在請求前按隨機時間停頓榨了,那么使用這個定時器煎谍,圖表示暫停時間會分布在100到400之間
筆記
負載和壓力的區(qū)別:
負載測試:在一定的工作負荷下,給系統(tǒng)造成du的負zhi荷及系統(tǒng)響應的時間龙屉。
壓力測試:在一定的負荷條件下呐粘,長時間連續(xù)運行系統(tǒng)給系統(tǒng)性能造成的影響
TPS和QPS的區(qū)別:
tps可以理解為是每秒對事務的處理的能力 ?qps是每秒對服務器的查詢能力
性能測試web端和app端測試
Jmetere的斷言:
斷言用來判斷接口的返回值是否匹配
在線程租中進行添加斷言--響應斷言并將json放入到響應結(jié)果中在察看結(jié)果樹中來