Jmeter性能測試簡介_第1頁
Jmeter性能測試簡介_第2頁
Jmeter性能測試簡介_第3頁
Jmeter性能測試簡介_第4頁
Jmeter性能測試簡介_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Jmeter

性能測試簡介文檔作者:胡麗.日期:2017/1/11

^檔修訂記錄1、概述性能測試作為測試重要內(nèi)容一致,其重要性不可忽略,然而性能測試的方式有很多,有些可以手工實現(xiàn),有些需要借助工具。測試頁面的響應(yīng)時間我們可以使用Httpwatch,或者模擬大批量數(shù)據(jù),自己估算時間,然而多個用戶并發(fā)操作測試如果不借助工具似乎很難實現(xiàn)。業(yè)內(nèi)提供了很多性能測試的工具,綜合考慮,Jmeter經(jīng)濟實用,并且容易掌握,應(yīng)對簡單的性能測試足以。Jmeter可以對接口做功能測試以及性能測試,本文主要介紹Jmeter一些簡單的性能測試操作。2、適用對象本文主要對Jmeter做簡單的介紹,適用于測試人員使用此工具做接口簡單的性能測試,同時也適合開發(fā)人員調(diào)試接口性能。僅為工具入門做參考。3、工具介紹工具下載可以到Jmeter的官網(wǎng)下載最新版本:/或者可以用此安裝包:apache-jmeter-3.1.zip工具安裝此工具是一個免安裝包,只需要將其解壓,至此血目錄下執(zhí)行jmeter.bat文件即可打開工作界面,進行測試,如下圖;Jmeter能夠正常打開的前提是環(huán)境中需要有JDK。

Jmeter的工作界面工具界面簡潔明了,其中菜單欄中涉及的主要操作基本上提到了工具欄,當在工具欄中找不到對應(yīng)操作時再返回菜單欄查找。工作區(qū)域也分為工作目錄樹形結(jié)構(gòu)和主要區(qū)域,樹形目錄方便歸類查詢,使用過程更便捷,管理更加便利。接下來在使用過程中介紹一些常用的操作。

Jmeter關(guān)鍵組件組件的功能介紹在樹形菜單測試計劃節(jié)點或者工作臺節(jié)點點擊右鍵,會出現(xiàn)如下一些組件:,HTTP直立jEKIE勝賴(胤*1HH1命喇血,HTTP直立jEKIE勝賴(胤*1HH1命喇血-ApacheJlMQrMlF177OC2J)rhrc-aDS[Us4?x|耀和阻TowesaHJpTrarc-adurouplearDtHvnThreadGroupy-f杷父FragmcfrlSaw:ScmsnA-gImagoG^+S-'■■以下做簡單歸納:1、Threads:這個組件主要用來控制Jmeter并發(fā)時產(chǎn)生線程的數(shù)量,在它的下一級菜單下只有一個組件(線程組),可以這么理解每個線程就是一個虛擬的用戶。所有的其他類型組件必須是(線程組)節(jié)點的子節(jié)點。我們測試就是從線程組開始的;2、配置單元:和Sample組件一起工作,主要用來配置Sample如何來發(fā)起請求訪問服務(wù)器,這個東西的主要特點是可以把一些Sample的共同配置放在一個元素里面方便管理,配置單元是有作用域的。作用域和樹的那個關(guān)系一樣越是上級節(jié)點的作用域越大,越是接近葉子節(jié)點的作用域就越小,可以復寫上級作用域的配置;3、定時器:這個主要是用來調(diào)節(jié)(線程組),控制線程每次運行測試邏輯(比如說:發(fā)出請求)的時間間隔。當然這個下面還有很多類型的定時器,他們主要功能就是調(diào)節(jié)時間間隔,但個個組件之間的策略有很大不同。4、Sample:可能上圖中沒有出現(xiàn)Sample,需要在線程組上添加才可以,見

!'.iti-'.lStartSiannopausesVeilidare打開-國度骨睡Undo匚ir;陪囂50+iJDuplicate由辿GuiDQlQIGiCkikXc*i+&hiftc通珅難IE永遠1□DelayIIIreadcre^tinnuntilneededip-UpPeriodl?isecMdsJ;1出,加刖IT器附式后看th.力船動力田樹油I薄,比舌百件,定時器!'.iti-'.lStartSiannopausesVeilidare打開-國度骨睡Undo匚ir;陪囂50+iJDuplicate由辿GuiDQlQIGiCkikXc*i+&hiftc通珅難IE永遠1□DelayIIIreadcre^tinnuntilneededip-UpPeriodl?isecMdsJ;1出,加刖IT器附式后看th.力船動力田樹油I薄,比舌百件,定時器■n:舌川?用君卜文科search運行魅頊Sample表示客戶端發(fā)送某種格式或者規(guī)范的請求到服務(wù)端,如Http請求;5、斷言:意思是指對于Sample完成了請求發(fā)送之后,判斷一下返回的結(jié)果是否滿足期望。6、監(jiān)聽器:這個組件不同于平時在Web編程的那種監(jiān)聽器,他是伴隨著Jemeter測試的運行而從中抓取運行期間的數(shù)據(jù)的一個組件,經(jīng)常使用的是聚合報告組件,可以看到一些性能相關(guān)的數(shù)據(jù)。組件作用域介紹取樣器Sample沒有作用域,其它元件的作用域根據(jù)其所在節(jié)點決定其作用域。其它元件可以和Sample是同一級,也可以成為Sample的子級,但是邏輯控制器可以和Sample是同一級,也可以是Sample的父節(jié)點。組件執(zhí)行順序配置元件->前置處理程序->定時器->取樣器->后置處理程序->斷言->監(jiān)聽器注意點:1、前置處理器、后置處理器和斷言等元件公能對取樣器作用,因此,如果在它們的作用域內(nèi)沒有任何取樣器,則不會被執(zhí)行。2、如果在同一作用域范圍內(nèi)有多個同一類型的元件,則這些元件按照它們在測試計劃中的上下順序一次執(zhí)行。4、實例操作下面以模擬用戶并發(fā)登錄作為事例進行簡單的介紹。新建線程組使用Jmeter測試從線程組開始,就像前文提到一個線程組相當于一個用戶,模擬多個用戶進行一個操作就配置多個線程組即可。右鍵點擊工作區(qū)域左邊的樹形菜單節(jié)點“測試計劃”,添加一Threaders(Users)一線程組:,Apsche(3.1rl77flO33j文件疏搬,Apsche(3.1rl77flO33j文件疏搬Search運行旭師嘉助設(shè)置相關(guān)參數(shù)并發(fā)登錄需要模擬多個用戶,這里的一個線程是一個用戶,那么模擬多個用戶就需要做相關(guān)配置,如下圖:上圖圈出來的幾個都是比較常用的,下面做簡單介紹:名稱:可以修改線程組的名稱,根據(jù)實際需要進行修改,如此處改為“并發(fā)登錄”;線程數(shù):虛擬用戶數(shù),一個虛擬用戶占用一個進程或者線程,設(shè)置多少個虛擬用戶數(shù)在這里就設(shè)置多少個線程數(shù);準備時長:設(shè)置的虛擬用戶數(shù)需要多長時間全部啟動,如線程數(shù)為20,準備時長為10,那么需要10秒內(nèi)啟動20個線程;循環(huán)次數(shù):每個線程發(fā)送請求的次數(shù),如果線程數(shù)為20,循環(huán)次數(shù)為100,那么每個線程發(fā)送100次請求,總請求數(shù)為:20*100=2000,如果勾選了永遠,那么所有線程會一直發(fā)送請求,一直到停止腳本運行。添加請求請求在上文中介紹的Sample中添加:

融逶輯住割§S1BbarL向:置元件卜Sbarlno[Muses定射器 ,V-aiidateKSWlfM,更由dkXSampler,E制后五處理涉,汕此融逶輯住割§S1BbarL向:置元件卜Sbarlno[Muses定射器 ,V-aiidateKSWlfM,更由dkXSampler,E制后五處理涉,汕此Qri-V陽二?則環(huán)區(qū)隨Gffl+EhHtG:at器 ?R電鐘4Gul出比DilblAUndoRedo選中等注保存為“.SaveNodeAsImageClrl-BSaveScreenAsImageOrltShift-G色睬iA-q|l]禁用TOSMleCffl-T名將;i法毅AccessLogSamplerAJPflJSamplerDebusSamplerFTP?*HTTPifl本g也請求JDBCReqiueslJMSPointlo-Poin(JNSPuHisherJUSSubscriberJSR223Sam[HefJUnitRequestLDAPExtendedRtqiiEstLM嘴求麻*依「sampiiefOSProcessSamplerSMIPSampler才科:在取作西眼接片要執(zhí)打的功力線程組Ssmpl^fccnds):1ionuntilneededSample是與服務(wù)器進行交互的單元,通常一個Sample工作如下:向服務(wù)器發(fā)送請求;記錄服務(wù)器響應(yīng)數(shù)據(jù);記錄相應(yīng)時間信息下圖是建立的Http請求:HTTP#裳3門HTTP#裳3門HTTP請求的參數(shù)介紹:名稱:一個Sample的名稱,根據(jù)實際需要修改為對應(yīng)名稱服務(wù)器名稱或IP:HTTP請求發(fā)送的目標服務(wù)器名稱或者IP地址端口號:目標服務(wù)器的端口號協(xié)議:發(fā)送HTTP請求的協(xié)議,如http或者https,默認為http方法:發(fā)送Http請求的方法,如GET,POST,HEAD,PUT,DELETE,OPTIONS,TRACE路徑:目標取1(不包括主機和端口號)自動重定向:如果選中該選項,當發(fā)送HTTP請求后得到的響應(yīng)是302/301時,JMeter自動重定向到新的頁面。UsekeepAlive:當該選項被選中時,向6=6=和目標服務(wù)器之間使用Keep-Alive方式進行HTTP通信,默認選中。Usemultipart/from-dataforHTTPPOST:當發(fā)送HTTPPOST請求時,使用Usemultipart/from-data方法發(fā)送,默認不選中。Parameters:在請求中發(fā)送URL參數(shù),對于帶參數(shù)的URL,jmeter提供了一個簡單的對參數(shù)化的方法。用戶可以將URL中所有參數(shù)設(shè)置在本表中,表中的每一行是一個參數(shù)值對(對應(yīng)RUL中的名稱1二值1)。設(shè)置(^限制QPS:QueryPerSecond每秒查詢率。是一臺查詢服務(wù)器每秒能夠處理的查詢次數(shù)。在因特網(wǎng)上,作為域名系統(tǒng)服務(wù)器的機器的性能經(jīng)常用每秒查詢率來衡量。本次并發(fā)登錄實例不做此限制,這里僅僅作為了解,方便其它測試使用到此功能。添加:fApacheJMeter(3.Lrl7700?3:.文件靖盾searcn運行送哽靜勵B]|>|a|l?|[a|加研即囿面|+因|小|.ti。時計劃?如保定型0Cd3 總加 ?遇他性但卜L1弄愛笠景startStartw.u石。5Validate酎置元件?才時強,BeanShelJlTimer前五處理5S-Samolef卜后道處理55卜用哈 卜監(jiān)聽濤 卜Cofi&tiantThroughputTimer眄得加利站此Dumicnfe Cm-S'iIi-CResetGuiMei-J5R22JTimerPolsaonRandomrimerSyntMcwaj叩TMierumitomiRandomnnw固冊附器箭機定1攝UndoRfrdo打開-合并DelayTnreancreauc-nuntilnee口局0原虐較削苗持例擷他設(shè)置:ConttantThroughputTinnerTtiraiMhixJ:Tln>5rConttantThroughputTinnerTtiraiMhixJ:Tln>5r¥弓.梁蛀錄我尋MJn1陸* .C-flnsJariHuijuQhpjtTirTKr國工初 - 名稱:根據(jù)實際需要進行修改Targetthroughput(insamplesperminute):目標吞吐量。注意這里是每分鐘發(fā)送的請求數(shù),因此,對應(yīng)測試需求中所要求的20QPS,這里的值應(yīng)該是1200。CalculateThroughputbasedon:有5個選項,分別是:Thisthreadonly:控制每個線程的吞吐量,選擇這種模式時,總的吞吐量為設(shè)置的targetThroughput乘以矣線程的數(shù)量。Allactivethreads:設(shè)置的targetThroughput將分配在每個活躍線程上,每個活躍線程在上一次運行結(jié)束后等待合理的時間后再次運行。活躍線程指同一時刻同時運行的線程。Allactivethreadsincurrentthreadgroup:設(shè)置的targetThroughput將分配在當前線程組的每一個活躍線程上,當測試計劃中只有一個線程組時,該選項和Allactivethreads選項的效果完全相同。Allactivethreads(shared):與Allactivethreads的選項基本相同,唯一的區(qū)別是,每個活躍線程都會在所有活躍線程上一次運行結(jié)束后等待合理的時間后再次運行。Allcativethreadsincurrentthreadgroup(shared):與Allactivethreadsincurrentthreadgroup基本相同,唯一的區(qū)別是,每個活躍線程都會在所有活躍線程的上一次運行結(jié)束后等待合理的時間后再次運行設(shè)置監(jiān)聽器腳本的主要部分設(shè)置完成后,需要通過某種方式獲得性能測試中的測試結(jié)果,在本例中,我們關(guān)心的是請求的響應(yīng)時間。Jmeter中使用監(jiān)聽器元件收集取樣器記錄的數(shù)據(jù)并以可視化的方式來呈現(xiàn)。Jmeter有各種不同的監(jiān)聽器類型,因為上HTTP請求,我們可在添加聚合報告,更為直觀的查看測試結(jié)果。添加聚合報告,右鍵點擊線程組,在彈的菜單(添加一->監(jiān)聽器―->聚合報告)中選擇聚合報告:T5#左啰~bJr:-1誣輕捶制那T5#左啰~bJr:-1誣輕捶制那>53nS元件》5注Rm的通&部信 斷VMxtotis前宣熱鰥舌>嚼切CbhXSampler>EMCbK后宣賤理當卜粘婚Cbl-V尚言 卜cbpo-m-c監(jiān)聽急》R出凱的■圈近C?bai?打開總以讖中部分保存的一:在服?2錢混捌曲仲瞅睡riHUKtt巴胃救,50Ajgreoale->jrnphBdchefttiLisbenerbeanShellLiMnerCompansDnAsserbcmEVisualizfrJ£R222Li5lEnierAespofiseTimeGr-aptiSimpleDotaWrrterSummarYReporl保存喝崎■皮件國跑姑第禱看結(jié)果國目藝姑果生成假蠢結(jié)里鼎表梢療前骷爆添加完如下圖:運行腳本設(shè)置參數(shù)如下:線程組線程數(shù):50準備時長:1循環(huán)次數(shù):1http請求服務(wù)器名稱或者IP:1

端口號:80協(xié)議:http方法:POSTParamters:username=yanan120,userpassword=admin123點擊工具的看的綠色三角形箭頭運行請求:或者在sample點擊工具的看的綠色三角形箭頭運行請求:或者在sample上右鍵一>Start:?事則記計劃?事則記計劃Lt回■-/并F累N工作臺添加StartStartnopausesValidateM Ctrl-X4.7查看結(jié)果查看聚合報告:於amples:查看聚合報告:於amples:表示這次測試中一共發(fā)出了多少個請求Average:平均響應(yīng)時間,默認是單個Request的平均響應(yīng)時間Medium:表示50%用戶的響應(yīng)時間90%Line:90%用戶的響應(yīng)時間Min:最小響應(yīng)時間Max:最大響應(yīng)時間Error%:本次測試中出現(xiàn)錯誤的請求的數(shù)量/請求的總數(shù)Throughput:吞吐量,默認情況下表示每秒完成的請求數(shù)RevivedKB/sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量以上完成了一個簡單的用戶并發(fā)的性能測試,Jmeter的功能遠不僅此,還有很多組件此實例中并未使用上,需要在工作中不斷的使用總結(jié)。5、Jmeter其它功能5.1數(shù)據(jù)傳遞實際測試中,最常用的數(shù)據(jù)傳遞就是會話ID傳遞。很多接口都需要在登錄的前提下進行,那么使用Jmeter測試也需要將登錄操作的會話ID傳送給其它接口操作。首先,會話ID傳遞需要修改匕m目錄下的文件perties,將里面的配置項CookieManager.save.cookies設(shè)置為true,即:CookieManager.save.cookies=true;其次,需要使用HttpCookie管理器,右鍵點擊線程組名稱,選擇添加一配置元件--HttpCookie管理器:身件畸刖5達行送嗔幫助0察□◎日蚓刈可值區(qū)也-X-X劃線程組濟加 ?延輯i空制器卜46H l-ino-HStiirt即置元件?csvDatas&iconfigil£tartnopausesvalidate定暇落卜前置處理器卜Sampler卜后置處理能卜DNSCacheManager「TPi百家提省值HlTPCacftsManager的tJl復制拈站Oupiiurte ct'KSirt-zR&setGui皿館HTTPCODKie管理器圈吉 卜監(jiān)所落 卜KTTP白息頭宣理器E喉秋芒作落MTI精求斯認值Jauar請素班認值1 添加httpcookie管理器后獲取登錄操作cookie,如下圖:定義參數(shù)ck_value,值為${COOKIE_ck_value},名稱可以自己定義,但是值一定是${COOKIE_定義的參數(shù)名稱},這一個請求獲取保存了登錄的會話ID,下面的一個請求就是應(yīng)用此ID。運行后可以看到日志中帶有獲取的cookie:家若玷果樹用而祀r入守交代*1相 |a?c. 陽匚Tut -J1眠脾劈地聚|通*曲曲獨■13T?alaQiTut -J1眠脾劈地聚|通*曲曲獨■13T?alaQicoo^jcgil-rTTFRiQui^-ijjerr<HTTPQgqqg電"口必江Rcqustbhadur,Cann4clan'1?12阿Conlent-irpeas0icaficimMw^lcrnHjrtenaiCMCanlenl-LenQlh71Hast10.10.4B1U5er.*flPnl.?ipa.che-HUpCfcerfi,4.52(Jm.l1.?.0_7Qi?SThit01D431itaidDU-4m-A,arilDDrraEDuncDE.^Qlid3lGic_7alu5?I?iI4?fa7E[-CC4i;IE_ck_ydufl^i7EiEmsfnamfl-Yflnfln1Auanrp-jJswoni-a[!min122!DCDDkl4S|囪徹損贈入一個克件文件容PDSTdata囪徹損贈入一個克件文件容PDSTdata注中qqelcaone.MTTPR^qL^st-Querf性aeLcooHe交HTTPReqL^!Slr€uer>CaoHeDarinJS£S90NO=ifl6QC>Efl5C42C462fl75EClCA£ilF£AflEF!5RequestHBaxfers:Connerton:keep-aliueCorrtgm-Typfl-ap^icaHon^-wv^'-iorrn-urienKidedCQnknH.enslh;DHOSt1D.lfl.4S1User-Agant:AnaGhe-HlIpCIierfi1+5.2(Jawgi,170_791如果沒有上一步獲取的cookie,那么下面的查詢請求運行時沒有cookie,并且運行結(jié)果會提示:請先登錄系統(tǒng)。增加斷言這里的斷言是對測試的結(jié)果做判斷,可以判斷字符串,數(shù)據(jù)包大小、HTML、XML、圖片等做判斷,可以在線程組處添加斷言,對該線程組下的所有請求做判斷,也可以在請求上添加斷言,僅僅對該請求做判斷。在線程組或者請求上點擊右鍵■添加-斷言,選擇類型,如下:還可以添加斷言結(jié)果,對斷言匹配做檢查,同樣在線程組或者請求上點擊右鍵-添加-監(jiān)聽器-斷言結(jié)果,這樣就可以再斷言結(jié)果里面檢查斷言的匹配情況。錄制腳本Jmeter也是支持錄制的,支持第三方錄制方式和代理錄制方式。1、第三方錄制主要是通過badboy來錄制,錄制后另存為jmx格式即可。2、Jmeter也有自己的代理,錄制腳本前,我們只要啟動好代理,手動通過IE或者火狐來錄制,錄制完畢停止代理。通過Jmeter自身可以錄制腳本,需要做本地IE代理服務(wù)器設(shè)置,設(shè)置為/8080Jmeter錄制腳本本身操作如下:創(chuàng)建一個線程組(右鍵點擊測試計劃-添加-Threads(Users)-線程組),然后添加Http請求默認值:設(shè)置要測試的服務(wù)器IP以及端口號

f0加it計劃小.tesn韓程組A%.312口二陽M靛]丁斗與添力u 卜退柜悴制遛?4簿&J_1_作己小罟萬仕.CSVDalaSetConfigDM5cacliQManagerFT端求熱省值SinnStartrx>pausesValidate東呢濡 ,前置處理器,Sampler?后孟處理器?斷言 上監(jiān)聽器 ?HTTPCacheMsi岫qerHnPCMkle官理S&HTT哨目頭苣理器htt喉機管理器剪切五制 CtbC超貼 8小Diipigte cti-Siiit-cResetGul刪除1HTTPjfi求好Ml百|(zhì)生嚼城里胡伯JDBCCDfinectionConliguratiDnKe^jgtoreCourguration1neededundoHTTP遢求取認特注弭iMw

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論