上一篇中對JMeter做了初步的介紹露久,接下來認(rèn)識下配置元件
1更米、添加HTTP請求默認(rèn)值
路徑:添加--配置元件--HTTP Requests Defaults
可以設(shè)定一些缺省值,假設(shè)有10個請求毫痕,訪問域名和端口都是一樣的征峦,那HTTP請求中就不再需要單獨(dú)配置了,比較方便(增加腳本的移植性)
2消请、HTTP信息頭管理器
內(nèi)容為空栏笆,有需要的時候進(jìn)行添加,否則無需處理
一般的請求格式:
1梯啤、類似form表單
2竖伯、參數(shù)json格式,添加Content-Type:application/json,utf-8
3因宇、參數(shù)是XML七婴,添加text/xml
注:HTTP請求下的【HTTP信息頭管理器】,有些值是發(fā)送請求必須的頭信息察滑,比如Referer打厘、X-Requested-With、Content-Type(目前發(fā)現(xiàn)這幾個可能會影響請求是否成功)
3贺辰、添加HTTP Cookie管理器
儲存在用戶本地終端上的數(shù)據(jù)户盯,主要用于默認(rèn)cookie管理
通常情況下嵌施,當(dāng)用戶結(jié)束瀏覽器會話時,系統(tǒng)將終止所有的cookie莽鸭,當(dāng)web服務(wù)器創(chuàng)建了Cookie后吗伤,只要在其有效期內(nèi),當(dāng)用戶訪問同一個Web服務(wù)器時硫眨,瀏覽器首先要檢查本地的cookies足淆,并將其原樣發(fā)送給web服務(wù)器
作用:
1)發(fā)送請求,經(jīng)常要校驗cookies信息
2 )錄制時使用的cookie管理器礁阁,只能在指定的域下面使用巧号,如果服務(wù)器地址切換,發(fā)現(xiàn)發(fā)送請求時姥闭,就會出現(xiàn)no cookies
最典型的應(yīng)用:
(1)判斷注冊用戶是否已經(jīng)登錄網(wǎng)站丹鸿,用戶可能會收到提示,是否在下一次進(jìn)入此網(wǎng)站時保留用戶信息以便簡化登錄手續(xù)
(2)購物車之類的處理棚品,用戶可能會在一段時間內(nèi)在同一家網(wǎng)站的不同頁面中選擇不同的商品靠欢,這些信息都會寫入cookies,以便在最后付款時提取信息
如圖南片,禁用了cookie掺涛,登錄成功,但訪問其它頁面時仍跳轉(zhuǎn)到了登錄頁面
如何設(shè)置:
1疼进、自動管理cookies薪缆,jmeter配置文件中設(shè)置(bin目錄)CookieManage.save.cookies=true,去掉前面的#伞广,然后重啟jmeter
2拣帽、手動添加cookies,可以利用Firefox中導(dǎo)出cookies之后嚼锄,再導(dǎo)入Jmeter中輕松完成(瀏覽器需安裝Firebug)
4减拭、添加HTTP請求
路徑:線程組右擊—>添加—>Sampler—>HTTP請求
如上圖路徑中?號后面的可以寫在url中区丑,也可以寫在Parameters中
- 名稱:用于標(biāo)識一個取樣器拧粪,可以使用一個有意義的名稱,方便快速識別
- 注釋:記錄用戶可讀的注釋信息
- 協(xié)議:向目標(biāo)服務(wù)器發(fā)送HTTP請求時的協(xié)議沧侥,可以是HTTP或者是HTTPS 可霎,默認(rèn)值為HTTP
- 服務(wù)器名稱或IP :HTTP 請求發(fā)送的目標(biāo)服務(wù)器名稱或IP地址
- 端口號:目標(biāo)服務(wù)器的端口號,默認(rèn)值為80
- 方法:發(fā)送HTTP請求的方法宴杀,可用方法包括GET癣朗、POST、HEAD旺罢、PUT旷余、OPTIONS绢记、TRACE、DELETE正卧,通過下拉選擇
- 路徑:目標(biāo)URL 路徑(不包括服務(wù)器地址和端口)
- Content encoding :內(nèi)容的編碼方式蠢熄,默認(rèn)值為iso8859
- 自動重定向:如果選中該選項,當(dāng)發(fā)送HTTP 請求后得到的響應(yīng)是302/301 時穗酥,JMeter 自動重定向到新的頁面
- 跟隨重定向:如果請求中涉及到了類似session id的變化护赊,就選擇這個
- Use keep Alive : 當(dāng)該選項被選中時,jmeter 和目標(biāo)服務(wù)器之間使用Keep-Alive 方式進(jìn)行HTTP 通信砾跃,默認(rèn)選中。
- Use multipart/from-data for HTTP POST :當(dāng)發(fā)送HTTP POST 請求時节吮,可以使用表單形式發(fā)送抽高,默認(rèn)不選中。
- Parameters透绩,同請求一起發(fā)送參數(shù): 在請求中發(fā)送URL 參數(shù)翘骂,用戶可以將URL 中所有參數(shù)設(shè)置在本表中,表中的每一行是一個參數(shù)值對(Name帚豪、Value值)
PS:如果是POST請求碳竟,數(shù)據(jù)以Json的格式傳的,那么可以把參數(shù)寫在Body Data里面狸臣,格式:{"XXX":"XXX"}莹桅,若不是Json格式的話就直接寫xx=xx,多個參數(shù)中間用&
以公司OA系統(tǒng)加班管理來演示下:
通過Fiddler工具抓包分析得到這個頁面有5個參數(shù)烛亦,圖中用申請編號進(jìn)行搜索诈泼,有2個參數(shù)值是空值,因此我以為是沒什么用煤禽,請求腳本中就沒有填寫申請日期和狀態(tài)的值铐达,只維護(hù)了3個參數(shù),運(yùn)行后發(fā)現(xiàn)數(shù)據(jù)是0檬果,但頁面是有一條數(shù)據(jù)的瓮孙,心想難不成沒有值的2個參數(shù)也是必填的嗎,加上去一試选脊,果不其然杭抠,運(yùn)行成功了
5、HTTP授權(quán)管理器(用的較少)
可以理解為用戶名和密碼的驗證過程知牌,也是一種驗證機(jī)制祈争,比如說客戶端或瀏覽器與服務(wù)端發(fā)生交互、發(fā)生請求時角寸,需要提供憑證(URL菩混、用戶名忿墅、密碼),提交后服務(wù)端通過后才會繼續(xù)后續(xù)的請求或者交互
- clear auth on each iteration:是不是每次迭代時都清空沮峡,不勾驗證一次可能就不再去驗證了疚脐,一般不勾
6、用戶定義的變量
具體用法在變量參數(shù)化章節(jié)有提到
7邢疙、計數(shù)器:數(shù)字記錄
- 啟動(Starting value):開始值
- 遞增:即步長棍弄,以多少進(jìn)行增長,若值為2疟游,起始值為1呼畸,那么第二個請求執(zhí)行時就是3
- 最大值(Maxinum value):一直遞增到最大值時停止增長
- Number format:python-00000000,0表示占位符
- 引用名稱:存儲遞增后的值颁虐,如num
- 與每用戶獨(dú)立的跟蹤計數(shù)器:每個線程都去獨(dú)立計數(shù)蛮原,互不干擾,準(zhǔn)確性會更高一點(diǎn)
PS:如果遍歷一次后已經(jīng)達(dá)到最大值了另绩,但還達(dá)到線程的循環(huán)數(shù)儒陨,此時又會重頭開始遍歷
為了看起來更直觀一點(diǎn),把線程數(shù)改成15笋籽,重新運(yùn)行蹦漠,結(jié)果如下: