一.簡(jiǎn)介
? ? Jmeter是一款優(yōu)秀的開源測(cè)試工具, 是每個(gè)資深測(cè)試工程師,必須掌握的測(cè)試工具,熟練使用Jmeter能大大提高工作效率。
**開源,他是一款開源的免費(fèi)軟件,使用它你不需要支付任何費(fèi)用,
**小巧,相比LR的龐大(最新LR11將近4GB),它非常小巧,不需要安裝,但需要JDK環(huán)境,因?yàn)樗鞘褂胘ava開發(fā)的工具。
**功能強(qiáng)大,jmeter設(shè)計(jì)之初只是一個(gè)簡(jiǎn)單的web性能測(cè)試工具,但經(jīng)過不段的更新擴(kuò)展,現(xiàn)在可以完成數(shù)據(jù)庫、FTP、LDAP、WebService等方面的測(cè)試。因?yàn)樗拈_源性,當(dāng)然你也可以根據(jù)自己的需求擴(kuò)展它的功能。

環(huán)境搭建:
jemter安裝地址:http://jmeter.apache.org/
jemter官方學(xué)習(xí)地址:http://jmeter.apache.org/index.html

二.使用jemter做接口測(cè)試:
這里我們要注意有兩種接口方式是很常用的:get和post,
下面來演示兩者的不同。為了更好的區(qū)分,我在這里先簡(jiǎn)單的演示下它的不同:
get請(qǐng)求:http://localhost:8080?username=anqi&password=123456
post請(qǐng)求:http://localhost:8080
這樣看是不是清楚多了
1.找到你安裝的文件夾,找到bin文件夾,運(yùn)行jemter.bat.打開jemter

2.新建一個(gè)線程組:


線程數(shù):虛擬用戶數(shù)。一個(gè)虛擬用戶占用一個(gè)進(jìn)程或線程。設(shè)置多少虛擬用戶數(shù)在這里也就是設(shè)置多少個(gè)線程數(shù)。
準(zhǔn)備時(shí)長(zhǎng):?設(shè)置的虛擬用戶數(shù)需要多長(zhǎng)時(shí)間全部啟動(dòng)。如果線程數(shù)為20?,準(zhǔn)備時(shí)長(zhǎng)為10?,那么需要10秒鐘啟動(dòng)20個(gè)線程。也就是每秒鐘啟動(dòng)2個(gè)線程。
循環(huán)次數(shù):每個(gè)線程發(fā)送請(qǐng)求的次數(shù)。如果線程數(shù)為20?,循環(huán)次數(shù)為100?,那么每個(gè)線程發(fā)送100次請(qǐng)求。總請(qǐng)求數(shù)為20*100=2000?。如果勾選了“永遠(yuǎn)”,那么所有線程會(huì)一直發(fā)送請(qǐng)求,一到選擇停止運(yùn)行腳本。
(這里要做接口測(cè)試,所以各個(gè)參數(shù)為均1。)
3.添加一個(gè)http請(qǐng)求:

4.例子:我要發(fā)送一個(gè)get方法的http

(這里順路說一下用post請(qǐng)求跟get請(qǐng)求有什么區(qū)別,同樣是圖片來說明)
我要發(fā)送一個(gè)post方法的http

(這里對(duì)比一下就很容易看出區(qū)別了,get請(qǐng)求直接填就好了,post請(qǐng)求需要添加值)
get請(qǐng)求和post請(qǐng)求的區(qū)別:
1.get請(qǐng)求的后綴在地址欄里提交,post請(qǐng)求在webfroms中顯示,以表單形式提交
2.get請(qǐng)求數(shù)據(jù)比較小,post請(qǐng)求數(shù)據(jù)比較大。
3.post請(qǐng)求相對(duì)比較安全
名稱:本屬性用于標(biāo)識(shí)一個(gè)取樣器,建議使用一個(gè)有意義的名稱。
注釋:對(duì)于測(cè)試沒有任何作用,僅用戶記錄用戶可讀的注釋信息。
服務(wù)器名稱或IP:HTTP請(qǐng)求發(fā)送的目標(biāo)服務(wù)器名稱或IP地址。
端口號(hào):目標(biāo)服務(wù)器的端口號(hào),默認(rèn)值為80?。
協(xié)議:向目標(biāo)服務(wù)器發(fā)送HTTP請(qǐng)求時(shí)的協(xié)議,可以是http或者是https?,默認(rèn)值為http?
方法:發(fā)送HTTP請(qǐng)求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。(一般使用get和post)
Content?encoding:內(nèi)容的編碼方式,默認(rèn)值為iso8859
路徑:目標(biāo)URL路徑(不包括服務(wù)器地址和端口)
自動(dòng)重定向:如果選中該選項(xiàng),當(dāng)發(fā)送HTTP請(qǐng)求后得到的響應(yīng)是302/301時(shí),JMeter?自動(dòng)重定向到新的頁面。
Use?keep?Alive:?當(dāng)該選項(xiàng)被選中時(shí),jmeter?和目標(biāo)服務(wù)器之間使用?Keep-Alive方式進(jìn)行HTTP通信,默認(rèn)選中。
Use?multipart/from-data?for?HTTP?POST:當(dāng)發(fā)送HTTP?POST?請(qǐng)求時(shí),使用Use?multipart/from-data方法發(fā)送,默認(rèn)不選中。
同請(qǐng)求一起發(fā)送參數(shù):?在請(qǐng)求中發(fā)送URL參數(shù),對(duì)于帶參數(shù)的URL?,jmeter提供了一個(gè)簡(jiǎn)單的對(duì)參數(shù)化的方法。用戶可以將URL中所有參數(shù)設(shè)置在本表中,表中的每一行是一個(gè)參數(shù)值對(duì)(對(duì)應(yīng)RUL中的?名稱1=值1)。
5.點(diǎn)擊運(yùn)行按鈕,查看其結(jié)果。

除了使用查看結(jié)果樹,我們常用的查看數(shù)據(jù)的方法還有添加聚合報(bào)告查看結(jié)果。

得到以下結(jié)果頁面。

Label:每個(gè)JMeter的element(例如HTTP Request)都有一個(gè)Name屬性,這里顯示的就是Name屬性的值
Samples:表示你這次測(cè)試中一共發(fā)出了多少個(gè)請(qǐng)求,如果模擬10個(gè)用戶,每個(gè)用戶迭代10次,那么這里顯示100
Average:平均響應(yīng)時(shí)間——默認(rèn)情況下是單個(gè)Request的平均響應(yīng)時(shí)間,當(dāng)使用了Transaction Controller時(shí),也可以以Transaction為單位顯示平均響應(yīng)時(shí)間
Median:中位數(shù),也就是50%用戶的響應(yīng)時(shí)間
90% Line:90%用戶的響應(yīng)時(shí)間
Note:關(guān)于50%和90%并發(fā)用戶數(shù)的含義,請(qǐng)參考下文
http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html
Min:最小響應(yīng)時(shí)間
Max:最大響應(yīng)時(shí)間
Error%:本次測(cè)試中出現(xiàn)錯(cuò)誤的請(qǐng)求的數(shù)量/請(qǐng)求的總數(shù)
Throughput:吞吐量——默認(rèn)情況下表示每秒完成的請(qǐng)求數(shù)(Request per Second),當(dāng)使用了Transaction Controller時(shí),也可以表示類似LoadRunner的Transaction per Second數(shù)
KB/Sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量,相當(dāng)于LoadRunner中的Throughput/Sec
6.添加斷言:右鍵點(diǎn)擊HTTP請(qǐng)求“添加”-->“斷言”-->“響應(yīng)斷言”。
對(duì)于自動(dòng)化測(cè)試來說,斷言必須要有的,如果沒有斷言我們只能人眼對(duì)比對(duì)接口返回的數(shù)據(jù),有了斷言功能,就會(huì)簡(jiǎn)化這個(gè)過程。Jmeter提供了豐富的斷言方法來幫助我們完成這個(gè)工作。


要測(cè)試的響應(yīng)字段:響應(yīng)文本、Document(text)、URL樣本、響應(yīng)信息、Response Headers、Lgnore Staus等選項(xiàng)。雖然接口返回的是Json格式的數(shù)據(jù),但對(duì)于Jmeter來說返回?cái)?shù)據(jù)為文本,所以,這里可以勾選“響應(yīng)文本”
模式匹配規(guī)則:包括、匹配、Equals、Substring。這里只需要驗(yàn)證返回?cái)?shù)據(jù)中是否包含主要的關(guān)鍵字,所以,這里勾選“包括”。
要測(cè)試的模式:其實(shí)就是斷言的數(shù)據(jù)。點(diǎn)擊“添加”按鈕,輸入要斷言的數(shù)據(jù)。
運(yùn)行測(cè)試:
再次清除測(cè)試數(shù)據(jù),點(diǎn)擊啟動(dòng)測(cè)試,查看結(jié)果樹,如下圖。

這是個(gè)簡(jiǎn)單的接口測(cè)試,適合初學(xué)者。