本文版權(quán)歸xmeter.net所有。歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處。
簡(jiǎn)介
本文由xmeter君寫(xiě)給想了解性能測(cè)試和JMeter的小白,適合對(duì)這兩者了解很少的同學(xué)們,如果已經(jīng)有使用經(jīng)驗(yàn)的請(qǐng)繞道,別浪費(fèi)時(shí)間:-) ?我們將介紹JMeter的使用場(chǎng)景,如何安裝、運(yùn)行JMeter,以及開(kāi)始一個(gè)最最簡(jiǎn)單的測(cè)試。你還徘徊在JMeter的門(mén)口嗎?別猶豫了,跟著本文做完,你就可以開(kāi)啟你的JMeter之旅了。
JMeter是開(kāi)源軟件Apache基金會(huì)下的一個(gè)性能測(cè)試工具,用來(lái)測(cè)試部署在服務(wù)器端的應(yīng)用程序的性能。近來(lái),JMeter因?yàn)槠涫褂煤?jiǎn)單,現(xiàn)在也被社區(qū)作為接口測(cè)試工具...... 啥?什么是性能測(cè)試,怎么又來(lái)了個(gè)接口測(cè)試?好吧,xmeter君舉個(gè)栗子,你開(kāi)了一個(gè)網(wǎng)店,興沖沖地準(zhǔn)備雙十一大干一把,沒(méi)想當(dāng)天活動(dòng)的時(shí)候大量用戶(hù)一訪問(wèn)你的網(wǎng)店,你的網(wǎng)店掛了,那怎么辦?辦法就是在實(shí)際搞活動(dòng)之前,先測(cè)試一下以確認(rèn)系統(tǒng)能承受那么多的用戶(hù),當(dāng)然測(cè)試的時(shí)候我們不需要請(qǐng)真正的這么多實(shí)際用戶(hù),否則得花多少錢(qián)啊,JMeter就是那個(gè)能幫助模擬大量用戶(hù)訪問(wèn)你網(wǎng)站的一個(gè)軟件。對(duì),而且它是開(kāi)源的,不花錢(qián)!那個(gè)接口測(cè)試呢,這里大概了解一下就可以了,就是驗(yàn)證你的網(wǎng)店應(yīng)用邏輯有沒(méi)有問(wèn)題的,比如你做打折活動(dòng)的時(shí)候,結(jié)算的時(shí)候金額別出錯(cuò),要不客戶(hù)找你麻煩不是?
JMeter下載和安裝
JMeter可以在JMeter的官方網(wǎng)站下載,下載鏈接如下圖所示,xmeter君寫(xiě)本文的時(shí)候(2016/11)可以下載到的最新的版本是3.0,

下載后解壓到你系統(tǒng)下的任意目錄,我們稱(chēng)該目錄為%JMETER_HOME%,然后運(yùn)行%JMETER_HOME%\bin\jmeter.bat文件,怎么樣,JMeter出來(lái)了嗎?嗯!?等等,好像報(bào)錯(cuò)了。仔細(xì)看一下報(bào)錯(cuò)原因,原來(lái)是Java沒(méi)安裝,因?yàn)镴Meter是用Java寫(xiě)的,運(yùn)行的時(shí)候需要Java ......不對(duì)啊,xmeter君,我這里好像已經(jīng)看到JMeter的界面了 -- 當(dāng)然咯,恭喜你,這是因?yàn)槟阒耙呀?jīng)安裝了Java了,就跳過(guò)下一步吧。

安裝Java
安裝之前先下載其安裝包,這里是下載地址。打開(kāi)頁(yè)面后,按序點(diǎn)擊下列所示的鏈接,xmeter君寫(xiě)本文的時(shí)候,Java的最新版本是8。

進(jìn)入下一個(gè)頁(yè)面后,按序點(diǎn)擊如下所示開(kāi)始下載,當(dāng)然,下載的文件需要跟你的系統(tǒng)對(duì)應(yīng),如果是Linux請(qǐng)下載相關(guān)的Linux版本,xmeter君用的是Windows 64位版的Java。

下載完畢之后運(yùn)行exe文件,按照向?qū)崾景惭b完Java。再次運(yùn)行%JMETER_HOME%\bin\jmeter.bat,如果都安裝對(duì)了的話就應(yīng)該能出現(xiàn)JMeter的運(yùn)行界面了。

JMeter之初體驗(yàn)
JMeter安裝完了,那我們來(lái)一個(gè)簡(jiǎn)單的實(shí)驗(yàn)。性能測(cè)試當(dāng)然得有個(gè)測(cè)試目標(biāo),就是被測(cè)系統(tǒng)是什么,xmeter君這里就以測(cè)度娘為例來(lái)描述構(gòu)造一個(gè)簡(jiǎn)單的性能測(cè)試過(guò)程:xmeter君保證你在5分鐘之內(nèi)完成一次測(cè)試體驗(yàn)。
添加虛擬用戶(hù)組
如下圖所示,右擊“測(cè)試計(jì)劃”>添加>Threads(Users)>線程組。這里xmeter君需要解釋一下“線程組”的意思:JMeter是由Java實(shí)現(xiàn)的,并且使用一個(gè)Java線程來(lái)模擬一個(gè)用戶(hù),因此線程組(Thread Group)就是指一組用戶(hù)的意思,換句話說(shuō)一個(gè)線程組就是一組虛擬用戶(hù)(virtual users),這些虛擬用戶(hù)用來(lái)模擬訪問(wèn)被測(cè)系統(tǒng)。

接下來(lái)xmeter君給大家介紹下“線程組”中常用到的一些設(shè)置。
1)線程數(shù):這里就是指虛擬用戶(hù)數(shù),默認(rèn)的輸入是“1”,則表明模擬一個(gè)虛擬用戶(hù)訪問(wèn)被測(cè)系統(tǒng),如果想模擬100個(gè)用戶(hù),則此處輸入100。
2)Ramp-Up Period (in seconds): 虛擬用戶(hù)增長(zhǎng)時(shí)長(zhǎng)。不明白別著急,xmeter君給你舉個(gè)栗子:比如你測(cè)試的是一個(gè)考勤系統(tǒng),那么實(shí)際用戶(hù)登錄使用考勤系統(tǒng)的時(shí)候并不是大家喊1、2、3 - 走起,然后一起登錄。實(shí)際使用場(chǎng)景可能是9點(diǎn)鐘上班,那么從8:30開(kāi)始,考勤系統(tǒng)會(huì)陸陸續(xù)續(xù)有人開(kāi)始登錄,直到9:10左右,那么如果完全按照用戶(hù)的使用場(chǎng)景,設(shè)計(jì)該測(cè)試的時(shí)候此處應(yīng)輸入40(分鐘)* 60(秒)= 2400。但是實(shí)際測(cè)試一般不會(huì)設(shè)置如此長(zhǎng)的Ramp-Up時(shí)間,原因嘛,難道你做一次測(cè)試要先等上40分鐘做登錄操作?一般情況下,可以估計(jì)出登錄頻率最高的時(shí)間長(zhǎng)度,比如此處可能從8:55到9:00登錄的人最多,那這里設(shè)置成300秒,如果“線程數(shù)”輸入為100,則意味著在5分鐘內(nèi)100用戶(hù)登錄完畢。
3)循環(huán)次數(shù):該處設(shè)置一個(gè)虛擬用戶(hù)做多少次的測(cè)試。默認(rèn)為1,意味著一個(gè)虛擬用戶(hù)做完一遍事情之后,該虛擬用戶(hù)停止運(yùn)行。如果選中“永遠(yuǎn)”,則意味著測(cè)試運(yùn)行起來(lái)之后就根本停不下來(lái)了,除非你把它強(qiáng)制咔嚓。

添加被測(cè)頁(yè)面
接下來(lái)的一步就是要加入實(shí)際被測(cè)頁(yè)面,右擊“線程組” > “添加” > “Sampler” > “HTTP請(qǐng)求”。

接下來(lái)需要設(shè)置一下“HTTP請(qǐng)求” Sampler的屬性,如下所示:
1)名稱(chēng):輸入“百度”,就是被測(cè)試網(wǎng)頁(yè)的描述性文字
2)服務(wù)器名稱(chēng)或IP:被測(cè)服務(wù)器的網(wǎng)站名字,也可以是IP地址。剩下的屬性可以按照被測(cè)系統(tǒng)的屬性按需配置,現(xiàn)在都可以為空。

現(xiàn)在的測(cè)試腳本已經(jīng)可以運(yùn)行了,先點(diǎn)擊下面如圖所示的第一步:點(diǎn)擊保存腳本按鈕;然后點(diǎn)擊如圖所示的第二步:點(diǎn)擊運(yùn)行測(cè)試按鈕。

等等,xmeter君,為什么我的測(cè)試跑完了沒(méi)啥反應(yīng)?嗯,其實(shí)測(cè)試已經(jīng)跑完了,你可以去“選項(xiàng)” > “Log Viewer”看看運(yùn)行的日志。如果你還是看不到日志,你可以點(diǎn)擊下面所示的三角箭頭展開(kāi)或者收起日志視圖。日志視圖中可以看到“線程組 1-1”的啟動(dòng)和結(jié)束時(shí)間,表明測(cè)試已經(jīng)跑完。

這JMeter運(yùn)行看著也太不直觀了吧?那如果我的測(cè)試有問(wèn)題了,怎么發(fā)現(xiàn)啊?別著急,JMeter提供了“監(jiān)聽(tīng)器”讓用戶(hù)來(lái)觀察測(cè)試結(jié)果。
添加結(jié)果監(jiān)聽(tīng)器
如下圖所示,右擊“線程組” > “監(jiān)聽(tīng)器” > “察看結(jié)果樹(shù)”來(lái)查看性能測(cè)試過(guò)程中請(qǐng)求和響應(yīng)信息。添加完畢后,保存測(cè)試腳本,再次運(yùn)行。

運(yùn)行測(cè)試完畢之后,點(diǎn)擊“察看結(jié)果樹(shù)” > “百度”,點(diǎn)擊下圖中3所示位置,你可以看到一些測(cè)試期間一些有用的信息,比如發(fā)送的請(qǐng)求的信息和響應(yīng)數(shù)據(jù)等。接下來(lái)可以試著改一下“線程組”里的“線程數(shù)”為10,就是模擬10個(gè)用戶(hù)訪問(wèn)。別改太大哦,否則小心度娘把你的IP地址給封了 :-)

好啦,至此為止,你已經(jīng)學(xué)會(huì)了寫(xiě)一個(gè)最簡(jiǎn)單的JMeter的性能測(cè)試用例。怎么樣,夠簡(jiǎn)單吧!
更多JMeter在線知識(shí)(視頻、文章等)
當(dāng)然咯,xmeter君在這篇文章里只是介紹了最簡(jiǎn)單的JMeter知識(shí),如果要完成一個(gè)比較專(zhuān)業(yè)的性能測(cè)試用例還需要對(duì)性能測(cè)試過(guò)程用到的技術(shù)有系統(tǒng)的了解才可以。xmeter君近期將在網(wǎng)站上推出比較系統(tǒng)的性能測(cè)試培訓(xùn)課程,包括性能測(cè)試的基本理論、JMeter基礎(chǔ)、JMeter高級(jí)擴(kuò)展,以及云上性能測(cè)試服務(wù) - XMeter等,敬請(qǐng)期待。