一文帶你入門 JMeter 性能測(cè)試!

作者 | XMeter性能測(cè)試云服務(wù)
1. 簡介
本文由xmeter君寫給想了解性能測(cè)試和JMeter的小白,適合對(duì)這兩者了解很少的同學(xué)們,如果已經(jīng)有使用經(jīng)驗(yàn)的請(qǐng)繞道,別浪費(fèi)時(shí)間:-) 我們將介紹JMeter的使用場(chǎng)景,如何安裝、運(yùn)行JMeter,以及開始一個(gè)最最簡單的測(cè)試。你還徘徊在JMeter的門口嗎?別猶豫了,跟著本文做完,你就可以開啟你的JMeter之旅了。
JMeter是開源軟件Apache基金會(huì)下的一個(gè)性能測(cè)試工具,用來測(cè)試部署在服務(wù)器端的應(yīng)用程序的性能。近來,JMeter因?yàn)槠涫褂煤唵危F(xiàn)在也被社區(qū)作為接口測(cè)試工具...... 啥?什么是性能測(cè)試,怎么又來了個(gè)接口測(cè)試?好吧,xmeter君舉個(gè)栗子,你開了一個(gè)網(wǎng)店,興沖沖地準(zhǔn)備雙十一大干一把,沒想當(dāng)天活動(dòng)的時(shí)候大量用戶一訪問你的網(wǎng)店,你的網(wǎng)店掛了,那怎么辦?
如果您正在學(xué)習(xí)Spring Boot,推薦一個(gè)連載多年還在繼續(xù)更新的免費(fèi)教程:http://blog.didispace.com/spring-boot-learning-2x/
辦法就是在實(shí)際搞活動(dòng)之前,先測(cè)試一下以確認(rèn)系統(tǒng)能承受那么多的用戶,當(dāng)然測(cè)試的時(shí)候我們不需要請(qǐng)真正的這么多實(shí)際用戶,否則得花多少錢啊,JMeter就是那個(gè)能幫助模擬大量用戶訪問你網(wǎng)站的一個(gè)軟件。對(duì),而且它是開源的,不花錢!那個(gè)接口測(cè)試呢,這里大概了解一下就可以了,就是驗(yàn)證你的網(wǎng)店應(yīng)用邏輯有沒有問題的,比如你做打折活動(dòng)的時(shí)候,結(jié)算的時(shí)候金額別出錯(cuò),要不客戶找你麻煩不是?
2. JMeter下載和安裝
JMeter可以在JMeter的官方網(wǎng)站下載,下載鏈接如下圖所示,xmeter君寫本文的時(shí)候(2016/11)可以下載到的最新的版本是3.0。
JMeter下載
下載后解壓到你系統(tǒng)下的任意目錄,我們稱該目錄為%JMETER_HOME%,然后運(yùn)行%JMETER_HOME%\bin\jmeter.bat文件,怎么樣,JMeter出來了嗎?嗯!?等等,好像報(bào)錯(cuò)了。
仔細(xì)看一下報(bào)錯(cuò)原因,原來是Java沒安裝,因?yàn)镴Meter是用Java寫的,運(yùn)行的時(shí)候需要Java ......不對(duì)啊,xmeter君,我這里好像已經(jīng)看到JMeter的界面了 -- 當(dāng)然咯,恭喜你,這是因?yàn)槟阒耙呀?jīng)安裝了Java了,就跳過下一步吧。
Java未安裝錯(cuò)誤
3. 安裝Java
安裝之前先下載其安裝包,這里是下載地址。打開頁面后,按序點(diǎn)擊下列所示的鏈接。
Java下載地址
進(jìn)入下一個(gè)頁面后,按序點(diǎn)擊如下所示開始下載,當(dāng)然,下載的文件需要跟你的系統(tǒng)對(duì)應(yīng),如果是Linux請(qǐng)下載相關(guān)的Linux版本,xmeter君用的是Windows 64位版的Java。
下載Java的鏈接
下載完畢之后運(yùn)行exe文件,按照向?qū)崾景惭b完Java。再次運(yùn)行%JMETER_HOME%\bin\jmeter.bat,如果都安裝對(duì)了的話就應(yīng)該能出現(xiàn)JMeter的運(yùn)行界面了。
JMeter 3.0運(yùn)行界面
4. JMeter之初體驗(yàn)
JMeter安裝完了,那我們來一個(gè)簡單的實(shí)驗(yàn)。性能測(cè)試當(dāng)然得有個(gè)測(cè)試目標(biāo),就是被測(cè)系統(tǒng)是什么,xmeter君這里就以測(cè)度娘為例來描述構(gòu)造一個(gè)簡單的性能測(cè)試過程:xmeter君保證你在5分鐘之內(nèi)完成一次測(cè)試體驗(yàn)。
如果您正在學(xué)習(xí)Spring Boot,推薦一個(gè)連載多年還在繼續(xù)更新的免費(fèi)教程:http://blog.didispace.com/spring-boot-learning-2x/
5. 添加虛擬用戶組
如下圖所示,右擊“測(cè)試計(jì)劃”>添加>Threads(Users)>線程組。這里xmeter君需要解釋一下“線程組”的意思:JMeter是由Java實(shí)現(xiàn)的,并且使用一個(gè)Java線程來模擬一個(gè)用戶,因此線程組(Thread Group)就是指一組用戶的意思,換句話說一個(gè)線程組就是一組虛擬用戶(virtual users),這些虛擬用戶用來模擬訪問被測(cè)系統(tǒng)。
新建線程組
接下來xmeter君給大家介紹下“線程組”中常用到的一些設(shè)置。
1)線程數(shù):這里就是指虛擬用戶數(shù),默認(rèn)的輸入是“1”,則表明模擬一個(gè)虛擬用戶訪問被測(cè)系統(tǒng),如果想模擬100個(gè)用戶,則此處輸入100。
2)Ramp-Up Period (in seconds): 虛擬用戶增長時(shí)長。不明白別著急,xmeter君給你舉個(gè)栗子:比如你測(cè)試的是一個(gè)考勤系統(tǒng),那么實(shí)際用戶登錄使用考勤系統(tǒng)的時(shí)候并不是大家喊1、2、3 - 走起,然后一起登錄。
實(shí)際使用場(chǎng)景可能是9點(diǎn)鐘上班,那么從8:30開始,考勤系統(tǒng)會(huì)陸陸續(xù)續(xù)有人開始登錄,直到9:10左右,那么如果完全按照用戶的使用場(chǎng)景,設(shè)計(jì)該測(cè)試的時(shí)候此處應(yīng)輸入40(分鐘)* 60(秒)= 2400。但是實(shí)際測(cè)試一般不會(huì)設(shè)置如此長的Ramp-Up時(shí)間,原因嘛,難道你做一次測(cè)試要先等上40分鐘做登錄操作?
一般情況下,可以估計(jì)出登錄頻率最高的時(shí)間長度,比如此處可能從8:55到9:00登錄的人最多,那這里設(shè)置成300秒,如果“線程數(shù)”輸入為100,則意味著在5分鐘內(nèi)100用戶登錄完畢。
3)循環(huán)次數(shù):該處設(shè)置一個(gè)虛擬用戶做多少次的測(cè)試。默認(rèn)為1,意味著一個(gè)虛擬用戶做完一遍事情之后,該虛擬用戶停止運(yùn)行。如果選中“永遠(yuǎn)”,則意味著測(cè)試運(yùn)行起來之后就根本停不下來了,除非你把它強(qiáng)制咔嚓。
線程組的設(shè)置
6. 添加被測(cè)頁面
接下來的一步就是要加入實(shí)際被測(cè)頁面,右擊“線程組” > “添加” > “Sampler” > “HTTP請(qǐng)求”。
添加“HTTP請(qǐng)求”
接下來需要設(shè)置一下“HTTP請(qǐng)求” Sampler的屬性,如下所示:
1)名稱:輸入“百度”,就是被測(cè)試網(wǎng)頁的描述性文字
2)服務(wù)器名稱或IP:被測(cè)服務(wù)器的網(wǎng)站名字,也可以是IP地址。剩下的屬性可以按照被測(cè)系統(tǒng)的屬性按需配置,現(xiàn)在都可以為空。
設(shè)置HTTP請(qǐng)求的屬性
現(xiàn)在的測(cè)試腳本已經(jīng)可以運(yùn)行了,先點(diǎn)擊下面如圖所示的第一步:點(diǎn)擊保存腳本按鈕;然后點(diǎn)擊如圖所示的第二步:點(diǎn)擊運(yùn)行測(cè)試按鈕。
保存與運(yùn)行測(cè)試
測(cè)試日志視圖
這JMeter運(yùn)行看著也太不直觀了吧?那如果我的測(cè)試有問題了,怎么發(fā)現(xiàn)啊?別著急,JMeter提供了“監(jiān)聽器”讓用戶來觀察測(cè)試結(jié)果。
另外,如果您正在學(xué)習(xí)Spring Cloud,推薦一個(gè)連載多年還在繼續(xù)更新的免費(fèi)教程:https://blog.didispace.com/spring-cloud-learning/
7. 添加結(jié)果監(jiān)聽器
如下圖所示,右擊“線程組” > “監(jiān)聽器” > “察看結(jié)果樹”來查看性能測(cè)試過程中請(qǐng)求和響應(yīng)信息。添加完畢后,保存測(cè)試腳本,再次運(yùn)行。
添加查看結(jié)果樹
運(yùn)行測(cè)試完畢之后,點(diǎn)擊“察看結(jié)果樹” > “百度”,點(diǎn)擊下圖中3所示位置,你可以看到一些測(cè)試期間一些有用的信息,比如發(fā)送的請(qǐng)求的信息和響應(yīng)數(shù)據(jù)等。接下來可以試著改一下“線程組”里的“線程數(shù)”為10,就是模擬10個(gè)用戶訪問。別改太大哦,否則小心度娘把你的IP地址給封了 :-)
察看結(jié)果樹截圖
好啦,至此為止,你已經(jīng)學(xué)會(huì)了寫一個(gè)最簡單的JMeter的性能測(cè)試用例。怎么樣,夠簡單吧!
往期推薦
技術(shù)交流群
最近有很多人問,有沒有讀者交流群,想知道怎么加入。加入方式很簡單,有興趣的同學(xué),只需要點(diǎn)擊下方卡片,回復(fù)“加群“,即可免費(fèi)加入我們的高質(zhì)量技術(shù)交流群!
點(diǎn)擊閱讀原文,送你免費(fèi)Spring Boot教程!
