Jmeter配置安裝成功后進入就可以看到以下頁面
a、測試計劃:? ? ? ?名稱與注釋就是相對于這個測試計劃的一些備注信息,在有多個計劃的時候方便在結果中查看
b、用戶定義變量:? ? 測試計劃上可以添加用戶定義的變量,一般添加一些系統常用的配置,如果測試過程中想切換環境,切換配置,一般不建議在測試計劃上添加變量,一般是直接添加用戶自定義變量組建:右擊【添加】-【配置原件】-【用戶自定義變量】
注:復制過來的變量名及變量值可直接點擊【Add from Clipboard】實現粘貼
c、獨立運行每一個線程:? ? 如計劃下有多個線程組時,勾選后可以保證多個線程的執行順序,順序數默認從上往下,如果沒有勾選那么計劃執行是并行的,且先后順序不可預料
d、Run tearDown Thread Group after shutdown of main threads:? ? 如果有勾選此項,在測試線程執行失敗的時候會執行其他的線程組,沒有勾選在測試執行中遇到配置錯誤則會停止測試,不會執行其他線程
d、函數模式:? ? 如果選中了此項,監聽組件如“查看結果樹”配置了保存到一個文件中,那么jmeter會將每次請求的結果保存到文件中,一般不勾選
線程組取樣錯誤后執行的動作:
a、繼續:????如果取樣器里的執行出現錯誤失敗的時候,請求不會停止,繼續執行
b、Start Next Thead Loop :忽略錯誤,線程當前循環錯誤,執行下一個循環
c、停止線程:????只限當前線程停止,不影響其他線程執行
d、停止測試:當前執行的線程全部執行完畢后結束
e、Stop test Now:????立刻停止測試
線程屬性:
a、線程數:????配置線程數時可以實現并發,配合循環可實現壓力測試
b、Ramp-up Period(in seconds):????它指定了啟動所有線程所花費的時間,如果需要Jmeter立即啟動所有線程,將此設定為0即可
c、循環次數:????表示每個線程執行多少次請求
d、Delay Thread creation until needed:?默認不勾選,測試開始的時候,所有線程就被創建完。勾選了此選項,那么線程只會在合適的需要用到的時候創建,可適當減輕些壓力
e、調度器:勾選時啟用一下的調度器配置信息,否則不啟用
調度器配置:在老版本中需要注意的是,“啟動延遲”會使“啟動時間”無效,而“持續時間”會使“結束時間”無效(此版本頁面沒有啟動時間)
線程組下元件:
a、Sample: 取樣器,用來向服務器發送請求
b、邏輯控制器(Logic controller):? ? 用來控制線程執行時的邏輯,能更改它的子元件中的請求的順序,重復請求等
c、前(Pre processors)、后置處理器(Post processors):前置處理器在取樣器請求前執行一些操作。如果前置處理器附有取樣器元件,那么它將先于這個取樣器元件執行。前置處理器常用于在取樣器元件運行前修改它的設置,或是更新從響應文本里提取出來的變量。后置處理器則在取樣器請求后執行,多用于處理響應數據,從里面抽取出有價值的東西。
d、斷言(Assertions):????斷言從被測的服務器端接收到的響應的事實,要查看斷言結果,添加斷言監聽器到這個線程組中
e、定時器(Timer):建意通過添加一個可用的定時器到線程組里來指定延遲時間。如果不添加延時,JMeter可能在較短的時間內發送大量的請求致使服務器癱瘓。
定時器將導致JMeter在線程組里,在每個請求間,延遲一定時間。
f、配置元件(Config Element):工作和取樣器很接近,盡管它不能發送請求(HTTP代理服務器除外),它可以補充或修改請求
g、監聽器(Listener):監聽器可以提供訪問JMeter所收集的關于測試用例的信息。圖像結果監聽器在一個圖表里繪制響應時間。查看結果樹監聽器具體的顯示取樣器的請求和響應,然后以HTML和XML格式顯示出來。其它的監聽器提供匯總或組合信息。此外,監聽器能處理一個為日后所用,收集到一個文件里的數據。在JMeter里的每個監聽器都可以指定一個文件,用來存儲數據。
執行順序:
1–配置元件(Config Element)
2–前置處理器(Pre Processors)
3–定時器(Timer)
4–取樣器(sampler)
5–后置處理器(Post Processors,只在有結果可用情況下執行)
6–斷言(Assertions,只在有結果可用情況下執行)
7–監聽器(Listener,只在有結果可用情況下執行)
1、web服務器
a、協議:向目標服務器發送HTTP請求時的協議,可以是http或者是https或者File ,默認值為http?
b、服務器名稱:HTTP請求發送的目標服務器名稱或IP地址(注意:此處不可帶http:/或者https:/如:www.baidu.com即可)
c、端口號:目標服務器的端口號,默認值為80 ,根據實際情況可做更改
2、HTTP請求:
a、方法:發送HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
b、路徑:目標URL路徑(不包括服務器地址和端口)-也可以直接寫完整路徑(上面的IP+端口就可以省略了)
c、content encoding:內容的編碼方式,默認值為iso8859(所以常用為UTF-8減少亂碼)
d、自動重定向:選中該選項,當發送HTTP請求后得到的響應是302/301時,JMeter 會自動重定向到新的頁面,但是Jmeter是不記錄重定向的過程內容。只能用于get和head方法,如果是post或者put請求則取樣器不會發送
e、跟隨重定向:取樣器的默認選項,當響應code是3xx時,自動跳轉到目標地址。與自動重定向不同,Jmeter會記錄重定向過程中的所有請求響應,在查看結果樹時可以看到服務器返回的內容,如有多個跳轉則多個請求都會被記錄下來
注:自動重定向和跟隨重定向的區別只在于是否記錄多個跳轉的請求上?
f、Use KeepAlive:jmeter 和目標服務器之間使用 Keep-Alive方式進行HTTP通信,默認選中
g、Use multipart/form-data for POST:當發送HTTP POST 請求時,使用Use multipart/from-data方法或者application/x-www-form-urlencoded方法發送
h、Browser-compatible headers:當勾選multipart/form-data時,勾選此項會截掉http請求頭中的Content-Type和Content-Transfer-Encoding,而只發送Content-Disposition部分
i、Parameter:鍵值對方式向發送請求的服務器傳值
j、Body Data:命令形式向發送請求的服務器傳值
k、Files Upload:文件形式向發送請求的服務器傳值
1、Client implementation:
a、Implementation:發送http請求的方式,可選項為java和HttpClient4,默認為HttpClient4
2、Timeouts(milliseconds)
a、Connect:連接超時時間,單位為毫秒;?
b、Response:響應等待超時時間,單位為毫秒;
3、Embedded Resources from HTML Files
a、從HTML文件獲取所有內含的資源:當該選項被選中時,jmeter在發出HTTP請求并獲得響應的HTML文件內容后,還對該HTML進行解析 并獲取HTML中包含的所有資源(圖片、flash等),默認不選中,如果用戶只希望獲取頁面中的特定資源,可以在下方的Embedded URLs must match 文本框中填入需要下載的特定資源表達式,這樣,只有能匹配指定正則表達式的URL指向資源會被下載。?
b、Parallel downloads.:是否使用自設資源池,勾選后可設置大?。?
c、Number:資源池大小,默認為6。?
d、URLs must match:URL匹配過濾,填寫此項則只會下載與此內容項匹配的url的資源,例如要獲取http://example.com/下的所有資源,使用正則表達式http://example.com/.*;
4、Source address
a、Source address:只用于http協議且Implementation為HttpClient4的情況。?
此屬性用于啟用IP欺騙。會重寫了這個http請求使用的默認本地IP地址。用于Jmeter主機具有多個IP地址(即IP別名、網絡接口、設備)的情況。該值可以是主機名、IP地址或網絡接口設備,如“ey0”或“l0”或“wlan0”。?
- IP/Hostname:IP /主機名以使用特定的IP地址或(本地)主機名?
- Device:選擇設備以選擇該接口的第一個可用地址,該設備可以是IPv4或IPv6。?
- Device IPV4:選擇IPv4設備來選擇名稱設備的IPv4地址(如eth0, lo, em0);?
- Device IPV6:選擇IPv6設備來選擇名稱設備的IPv4地址(如eth0, lo, em0);
5、Proxy Server(不想用本機的地址來發送請想使用代理服務器則填寫這部分)
服務器名稱或IP:代理服務器的名稱或者IP地址;?
端口號:該代理的端口號;?
用戶名:使用該代理的用戶名;?
密碼:用戶密碼;
6、其他任務
Save response as MD5 hash:選中該項,在執行時僅記錄服務端響應數據的MD5值,而不記錄完整的響應數據。在需要進行數據量非常大的測試時,建議選中該項以減少取樣器記錄響應數據的開銷;
http請求默認值(頁面與HTTP請求差不多)
在每次訪問的地址(服務器名稱或IP)是不變的,端口也是不變的,協議也是不變的(http協議);每個請求都要寫一遍,在我們的HTTP請求取樣器數量很多的情況下,這種修改的工作量是很大的,可以把測試計劃中所有的http請求的默認配置放到HTTP請求默認值(HTTP Request Defaults)中
HTTP信息頭管理器:用于管理請求頭內容,信息頭管理器中設置的值,會被添加到http請求的請求頭中發送
HTTPcookie管理器:自動幫你存cookie保持登陸狀態
用戶定義的變量:自定義變量可以讓我們隨機選取變量,從而達到在性能測試過程中可以隨機選取變量的目的。但是在實際使用中發現一個問題,并不試用于所有場景,比如登錄
文件名:????此項包括文件的路徑及拓展名,可直接預覽選擇
文件編碼:????給出頁面的編碼格式,可以不填寫,頁可以下拉選擇
變量名稱:????給出變量名如:name,pwd;這里的變量名是給后面引用用的,如要用到這個文件的值,可以利用變量名來引用:${name},${pwd},如test.csv文件中有這樣的數據:1@180chen.cn,abc1233,那${name}就可以引用到1@180chen.cn,${pwd}就可以引用到abc1233
忽略首行:設置后文件中的首行數據不讀取
分隔符:是用來隔開變量的分隔符,如上面的name,pwd,那分隔符就是“,”
是否允許帶引號:設置為true時,文件中的參數值必須用引號括起來
遇到文件讀取結束時再次循環:配置為false 當文件讀取結束時一直讀取最后一行,配置為true時重新從第一行讀取
遇到文件讀取結束時停止線程:配置為false當文件讀取結束時不停止線程,配置為true時停止當前線程測試,當選擇再次循環時該配置無效
線程共享:配置取出來的文件可用范圍,有All threads---所有線程,Current thread group—當前線程組,Current thread—當前線程
變量名稱:在之后用到是使用該變量名稱${....}
輸出格式:如寫入name1,那么在輸出的時候就是name1+隨機結果
配置隨機發生器:均配置為數字,隨機種子暫時沒發現用法
ps:jmeter中自帶的函數比這個控件好用,其中還有很多的其他函數
所有數據寫入一個文件:文件名就是把響應的結果樹保存到本地的路徑文件,文件為xml或jtl格式,可選保存機制 僅日志錯誤、成功的,默認所有;config可配置察看結果樹,勾選所有配置項
search:在輸入框中對結果內容進行搜索
case sensitive:勾選則在搜索時區分大小寫
regular exp:勾選則標識使用正則表達式進行搜索
search:點擊進行搜索,匹配搜素框輸入的內容。ps:如果沒有對應結果text下不會有任何反應
reset:清空搜索結果
text:此處可調整結果響應的格式,常用的有JSON格式與xml,HTML格式等
正則表達式提取器
apply to :此項選擇表達式提取范圍,從左至右分別為:匹配當前父取樣器及其子取樣器、匹配當前父取樣器(默認項)、僅匹配子取樣器、支持變量進行匹配
要檢查的響應字段:
主體:除去header的主體部分
body(UNescaped):針對轉義碼的body部分
body as a docment:返回內容作為文檔進行匹配
信息頭:只匹配頭部內容
request headers:匹配請求頭部內容
url:只匹配URL鏈接
響應代碼:只匹配相應的代碼,如相應狀態200等
響應信息:匹配相應信息,如“成功”‘OK’等
參數釋義
引用名稱:在HTTP等請求中,引用此數據,需要用到的名稱
正則表達式:用于將需要的數據提取出來,把提取規則寫入
模板:表示使用提取到的第幾個值:
$-1$:表示取所有值
$0$:表示隨機取值
$1$:表示取第1個
$2$:表示取第2個
以此類推:$n$:表示取第n個
匹配數字(0代表隨機):0 代表隨機取值,1 代表全部取值
缺省值如果正則表達式沒有搜找到值,則使用此缺省值,即默認值