JMeter下載
Apache JMeter - Download Apache JMeter
下載Binaries下 zip格式的壓縮包

環(huán)境要求
JMeter是完全Java開發(fā)的軟件,所以電腦需要安裝Java環(huán)境
JMeter運(yùn)行需要Java8或更高的Java版本
如果未安裝Java,參考其他教程進(jìn)行安裝,并配置Java環(huán)境變量
運(yùn)行JMeter
解壓JMeter壓縮文件,解壓后格式如下圖所示

進(jìn)入bin文件夾,找到ApacheJMeter.jar文件,雙擊運(yùn)行

出現(xiàn)以下界面即為運(yùn)行成功

切換語(yǔ)言
中文切換為英文
菜單欄 -> 選項(xiàng) -> 選擇語(yǔ)言 -> 選擇英語(yǔ)

英文切換為中文
菜單欄 -> Options -> Choose Language -> Chinese
這里有兩種:Chinese(Simplified) 簡(jiǎn)體中文、Chinese(Traditional) 繁體中文

測(cè)試步驟
1、新建測(cè)試計(jì)劃
2、創(chuàng)建一到多個(gè)線程組,采樣器,控制器等元件
3、執(zhí)行測(cè)試計(jì)劃
起步
添加元件
方式一:添加
界面左側(cè),測(cè)試計(jì)劃(Test Plan)右鍵,添加(add),選擇需要的元件,一般來(lái)說(shuō)都是先添加線程組

方式二:合并
如果有之前定義的元件及配置,這次可以使用到,可以在需要添加之前配置的元件上右鍵,點(diǎn)擊合并選項(xiàng)
方式三:打開
打開之前定義的元件及配置文件,打開文件將會(huì)覆蓋現(xiàn)有的元件及配置,請(qǐng)確保已經(jīng)保存,否則將會(huì)丟失現(xiàn)有左側(cè)元件樹中的元件及配置
移除元件
選擇要?jiǎng)h除的元件,右鍵,點(diǎn)擊刪除(Remove)選項(xiàng)
調(diào)整元件及順序
選中要調(diào)整的元件,長(zhǎng)按鼠標(biāo)左側(cè),即可上下移動(dòng),調(diào)整元件的位置及順序
保存測(cè)試計(jì)劃
最新版JMeter這一步不是必須的,為了減少以后的重復(fù)配置,所以最好將測(cè)試計(jì)劃保存下來(lái),下次直接打開即可使用
菜單欄(Menu Bar)-> 文件 (File)-> 保存(Save)或 保存測(cè)試計(jì)劃為(Save Test Plan as)
運(yùn)行測(cè)試計(jì)劃
菜單欄(Menu Bar)-> 運(yùn)行(Run)-> 啟動(dòng)(Start)或 不停頓啟動(dòng)(Start no pauses)
或者是工具欄中綠色箭頭,啟動(dòng)(Start)和不停頓啟動(dòng)(Start no pauses)
ps: 僅當(dāng)調(diào)試測(cè)試計(jì)劃時(shí),才應(yīng)使用GUI模式。要運(yùn)行實(shí)際負(fù)載測(cè)試,請(qǐng)使用命令行(CLI)模式。
停止測(cè)試計(jì)劃
菜單欄 -> 運(yùn)行 -> 停止(Stop)或 關(guān)閉(Shutdown)
或菜單欄,啟動(dòng)按鈕右側(cè)按鈕,停止(Stop)和關(guān)閉(Shutdown)
兩種停止的區(qū)別
停止(Stop):立即停止,如果線程或采樣器正在運(yùn)行,將會(huì)提前結(jié)束
關(guān)閉(Shutdown):等待當(dāng)前線程或采樣器執(zhí)行結(jié)束后停止
各類元件及作用
在添加元件時(shí),我們可以看到,元件分為線程(用戶)、取樣器、配置元件、監(jiān)聽器、定時(shí)器、前置處理器、后置處理器、斷言等
線程(用戶)
線程是一切測(cè)試計(jì)劃的起點(diǎn),所有的控制器和采樣器必須放在線程組下,其他一些組件,比如監(jiān)聽器,可以直接放在測(cè)試計(jì)劃下。放在線程組下,是監(jiān)聽當(dāng)前線程組的執(zhí)行結(jié)果,放在測(cè)試計(jì)劃下,是監(jiān)聽測(cè)試計(jì)劃下所有線程組的執(zhí)行結(jié)果。
取樣器
取樣器告訴JMeter向服務(wù)器發(fā)送一個(gè)請(qǐng)求并等待響應(yīng)。它們將按照它們?cè)跇渲谐霈F(xiàn)的順序進(jìn)行處理??刂破骺捎糜谛薷娜悠鞯闹貜?fù)次數(shù)。
JMeter包括以下采樣器:FTP、HTTP(可用于WebService)、JDBC、Java對(duì)象、JMS、JUnit Test、LDAP、Mail、OS Process、TCP等
你可以通過(guò)向測(cè)試計(jì)劃添加一個(gè)或多個(gè)配置元件來(lái)進(jìn)一步定制采樣器。
如果你打算發(fā)送多個(gè)同類型請(qǐng)求到服務(wù)器,考慮使用默認(rèn)配置元件。
邏輯控制器
邏輯控制器允許您自定義JMeter用來(lái)決定何時(shí)發(fā)送請(qǐng)求的邏輯。邏輯控制器可以更改來(lái)自其子元件的請(qǐng)求順序。它們可以修改請(qǐng)求本身,使JMeter重復(fù)請(qǐng)求,等等。
配置元件
配置元件與取樣器配合使用。它可以添加或修改請(qǐng)求的配置信息,例如,配置配置HTTP請(qǐng)求頭,Cookie等信息
監(jiān)聽器
請(qǐng)注意,所有監(jiān)聽器都保存相同的數(shù)據(jù);唯一的區(qū)別在于數(shù)據(jù)在屏幕上的顯示方式,可以以圖表或表格等不同的形式進(jìn)行展示
監(jiān)聽器可以添加到測(cè)試中的任何地方,包括直接放到測(cè)試計(jì)劃下。他們將收集同級(jí)別或比他們級(jí)別低的元件的數(shù)據(jù)。
定時(shí)器
默認(rèn)情況下,JMeter線程按順序執(zhí)行采樣器而不暫停。我們建議您通過(guò)向線程組添加一個(gè)可用定時(shí)器來(lái)指定延遲。如果不增加延遲,JMeter可能會(huì)在很短的時(shí)間內(nèi)發(fā)出過(guò)多的請(qǐng)求,從而使服務(wù)器崩潰。
定時(shí)器將使JMeter在其范圍內(nèi)的每個(gè)采樣器之前延遲一定的時(shí)間。
前置處理器
前置處理器在發(fā)出取樣器請(qǐng)求之前執(zhí)行一些操作。如果前置處理器連接到取樣器元件,那么它將在該取樣器元件運(yùn)行之前執(zhí)行。前置處理器最常用于在示例請(qǐng)求運(yùn)行之前修改其設(shè)置。
后置處理器
后置處理器在發(fā)出采樣器請(qǐng)求后執(zhí)行某些操作。如果后置處理器連接到取樣器元件,那么它將在該取樣器元件運(yùn)行后立即執(zhí)行。后置處理器最常用于處理響應(yīng)數(shù)據(jù),通常用于從中提取值。
斷言
斷言允許你斷言有關(guān)從被測(cè)試服務(wù)器收到的響應(yīng)。使用斷言,你可以“測(cè)試”您的應(yīng)用程序是否返回你期望的結(jié)果。
例如,你可以斷言對(duì)查詢的響應(yīng)是否包含某些特定文本。
你可以向任何采樣器添加斷言。例如,你可以向HTTP請(qǐng)求添加一個(gè)斷言,以檢查文本“</HTML>”。然后,JMeter將檢查HTTP響應(yīng)中是否存在文本。如果JMeter找不到文本,那么它會(huì)將此標(biāo)記為失敗的請(qǐng)求。
請(qǐng)注意,斷言適用于其范圍內(nèi)的所有采樣器。要將斷言限制為單個(gè)采樣器,請(qǐng)將斷言添加為采樣器的子級(jí)。
元件的執(zhí)行順序
配置元件
前置處理器
定時(shí)器
取樣器
后置處理器
斷言
監(jiān)聽器
構(gòu)建Web測(cè)試計(jì)劃
新建測(cè)試計(jì)劃
菜單欄 -> 文件 -> 新建
如果不想叫測(cè)試計(jì)劃,可以取個(gè)更貼切的名字,我這里就叫Web測(cè)試計(jì)劃Demo

添加線程(用戶)
第一步,先添加線程組元件。線程組告訴JMeter你想要模擬的用戶數(shù)量,用戶發(fā)送請(qǐng)求的頻率和他們應(yīng)該發(fā)送多少請(qǐng)求。
給線程組起一個(gè)更具描述性的名字,例:JMeter用戶
下一步,增加用戶(線程)數(shù)到5,模擬5個(gè)用戶。也可以調(diào)整Ramp-Up時(shí)間和循環(huán)次數(shù)

添加默認(rèn)的HTTP請(qǐng)求屬性
定義完用戶之后,下一步就是定義要指定的任務(wù)了。
線程組右鍵,添加,配置元件,HTTP請(qǐng)求默認(rèn)值。
如果線程組下有多個(gè)請(qǐng)求,我們不想在每個(gè)請(qǐng)求處配置主機(jī)信息(域名或IP地址),我們就可以添加一個(gè)HTTP請(qǐng)求屬性,所有的請(qǐng)求都會(huì)采用請(qǐng)求屬性中配置的信息。

添加Cookie支持
幾乎所有的web測(cè)試都應(yīng)該使用cookie支持,除非你的應(yīng)用明確不需要cookie。給線程組添加一個(gè)HTTP Cookie Manager,確保每個(gè)線程組有自己的cookie,但是可以在每個(gè)線程組內(nèi)所有的HTTP 請(qǐng)求對(duì)象間共享。
添加HTTP請(qǐng)求
給JMeter Users元件添加第一個(gè)HTTP請(qǐng)求,添加-> 采樣器 -> HTTP 請(qǐng)求,之后選擇HTTP請(qǐng)求元件,編輯以下屬性
修改名稱字段為: “Home Page”
設(shè)置路徑字段為 "/"。我們不需要設(shè)置服務(wù)器名稱字段,因?yàn)槲覀円呀?jīng)在HTTP請(qǐng)求默認(rèn)值元件中進(jìn)行了配置。
我們這里路徑只配置了"/",是因?yàn)槲覀円呀?jīng)配置了通用的請(qǐng)求屬性

下一步,添加第二個(gè)HTTP請(qǐng)求元件
修改名稱為"Changes"
設(shè)置Path字段為 "/changes.html"

添加監(jiān)聽器查看測(cè)試結(jié)果
可以隨便添加幾個(gè)監(jiān)聽器,看下不同的監(jiān)聽器的展示結(jié)果,我這里只添加一個(gè)查看結(jié)果樹監(jiān)聽器
