jmeter學(xué)習(xí)指南

  1. jmeter入門(mén)
    1.1. jmeter簡(jiǎn)介
    1.2. jmeter安裝
  2. jmeter基本使用
    2.1. jmeter基本組件介紹
    2.2. 參數(shù)化
  3. jmeter接口測(cè)試
    3.1. jmeter接口測(cè)試-簡(jiǎn)介
    3.2. jmeter接口測(cè)試-功能測(cè)試
    3.3. jmeter接口測(cè)試-性能測(cè)試
  4. jmeter數(shù)據(jù)庫(kù)測(cè)試-壓力測(cè)試
  5. jenkins+maven+jmeter
    5.1. jenkins簡(jiǎn)介
    5.2. maven簡(jiǎn)介
    5.3. jenkins+maven+jmeter環(huán)境搭建
    5.4. jenkins+maven+jmeter實(shí)戰(zhàn)

1. JMeter入門(mén)

1.1 JMeter簡(jiǎn)介

Apache JMeter是100%純JAVA桌面應(yīng)用程序舶衬,被設(shè)計(jì)為用于測(cè)試CS結(jié)構(gòu)的軟件虽画。同時(shí)也可以用來(lái)測(cè)試靜態(tài)和動(dòng)態(tài)資源的性能脖岛,例如:靜態(tài)文件绍在,Java Servlets溜宽,CGI Scripts稼跳,Java Object吃沪,數(shù)據(jù)庫(kù)和FTP服務(wù)器等等汤善。JMeter可用于模擬大量負(fù)載來(lái)測(cè)試一臺(tái)服務(wù)器,網(wǎng)絡(luò)或者對(duì)象的健壯性或者分析不同負(fù)載下的整體性能票彪。
同時(shí)红淡,JMeter可以幫助你對(duì)你的應(yīng)用程序進(jìn)行回歸測(cè)試。通過(guò)你創(chuàng)建的測(cè)試腳本和assertions(斷言)來(lái)驗(yàn)證你的程序返回來(lái)所期待的值降铸。為了更高的適應(yīng)性在旱,JMeter允許你使用常規(guī)表達(dá)式來(lái)創(chuàng)建這些assertions。
jmeter的未來(lái):隨著開(kāi)發(fā)人員借助它的可嵌入的結(jié)構(gòu)推掸,希望看到JMeter的能力也隨之快速的被擴(kuò)大桶蝎。更進(jìn)一步的主要發(fā)展目標(biāo)是把JMeter在沒(méi)有減弱他的負(fù)載測(cè)試的能力的同時(shí)盡可能的做成最有效的回歸測(cè)試工具。

1.2 JMeter安裝

安裝環(huán)境要求:
java版本

  • JMeter要求充分滿(mǎn)足JVM1.3或更高谅畅。
    操作系統(tǒng)[JMeter可以在當(dāng)前任何一個(gè)已經(jīng)部署來(lái)Java的操作系統(tǒng)上運(yùn)行]
  • Unix
  • Windows
  • Open VMS Alpha 7.3+

安裝步驟

  • 安裝環(huán)境:win7
  • 安裝包準(zhǔn)備:1) JDK安裝包登渣。2) JMeter安裝包

安裝過(guò)程

  • JDK的安裝與配置(不多介紹)
  • JMeter的安裝:
    ** 1) 解壓JMeter安裝包到響應(yīng)目錄,如:解壓到D:\apache- jmeter毡泻。
    ** 2) 配置jmeter環(huán)境變量胜茧,新建環(huán)境變量名"JMETER_HOME", 變量值"D:\apache-jmeter"
    ** 3) 在系統(tǒng)變量"CLASSPATH"添加%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME%/lib/jorphan.jar;%JMETER_HOME%/lib/logkit-2.0.jar配置完成。
    ** 4) 命令行運(yùn)行jmeter即可(或直接找到D:\apache-jmeter\bin下的jmeter.bat運(yùn)行)

2 JMeter基本使用

2.1 JMeter基本組件介紹

JMeter主要組件

  • 測(cè)試計(jì)劃(Test Plan)
  • 線(xiàn)程序(Thread Group)
  • 配置元件(Configuration)
  • 邏輯控制器(Login Controller)
  • 取樣器(Sampler)
  • 斷言(Assertion)
  • 監(jiān)聽(tīng)器(monitor)

測(cè)試計(jì)劃
測(cè)試計(jì)劃是使用jmeter進(jìn)行測(cè)試的起點(diǎn)仇味,一個(gè)測(cè)試計(jì)劃描述了一系列jmeter運(yùn)行時(shí)要執(zhí)行的步驟呻顽。一個(gè)完整的測(cè)試計(jì)劃包含一個(gè)或多個(gè)線(xiàn)程組,邏輯控制丹墨,曲陽(yáng)發(fā)生控制廊遍,監(jiān)聽(tīng)器,定時(shí)器带到,斷言和配置元件昧碉。

測(cè)試計(jì)劃

線(xiàn)程組
線(xiàn)程組

  • 線(xiàn)程組:測(cè)試?yán)锩總€(gè)任務(wù)都要線(xiàn)程去處理,所有任務(wù)必須在線(xiàn)程組下面創(chuàng)建揽惹。
  • 線(xiàn)程數(shù):設(shè)置發(fā)送請(qǐng)求的用戶(hù)數(shù)。
  • Ramp-Up Period(in seconds): 創(chuàng)建完所有線(xiàn)程的時(shí)間搪搏,防止對(duì)服務(wù)器有太大的負(fù)載。[如果選擇了10個(gè)線(xiàn)程闪金,并且ramp-up是2秒疯溺,那么JMeter將用2秒使10個(gè)線(xiàn)程啟動(dòng)并運(yùn)行论颅。每個(gè)線(xiàn)程將在前一個(gè)線(xiàn)程啟動(dòng)后0.2秒后啟動(dòng)。如果將此值設(shè)置為0囱嫩,則表示并發(fā)恃疯,也就是所有線(xiàn)程在同一時(shí)間啟動(dòng)。Ramp-up需要足夠長(zhǎng)的時(shí)間來(lái)避免在開(kāi)始測(cè)試時(shí)產(chǎn)生太大的負(fù)載墨闲,并且有足夠短的時(shí)間使最后一個(gè)線(xiàn)程在第一個(gè)線(xiàn)程結(jié)束之前運(yùn)行]
  • 循環(huán)次數(shù):請(qǐng)求的重復(fù)次數(shù)今妄。[如果次數(shù)為1,那么JMeter在停止前只執(zhí)行測(cè)試計(jì)劃一次]
  • 持續(xù)時(shí)間:測(cè)試計(jì)劃持續(xù)時(shí)間
  • 啟動(dòng)延遲:測(cè)試計(jì)劃延遲啟動(dòng)時(shí)間
    配置元件
    配置元件
  • 配置元件維護(hù)sampler需要的配置信息鸳碧,配置元件不發(fā)送請(qǐng)求(除了HTTP代理服務(wù)器例外)盾鳞,可以根據(jù)實(shí)際需要添加或修改請(qǐng)求的內(nèi)容。
  • 配置元件"用戶(hù)定義的變量"會(huì)在測(cè)試的初始階段執(zhí)行(無(wú)論它處于測(cè)試樹(shù)的哪個(gè)位置)
  • 配置元件僅對(duì)其所在的測(cè)試書(shū)分支有效
    邏輯控制器
  • 邏輯控制器可以控制jmeter發(fā)送請(qǐng)求的測(cè)試邏輯瞻离,它與sampler結(jié)合使用可以模擬復(fù)雜的請(qǐng)求序列
  • 循環(huán)控制器:設(shè)置請(qǐng)求的循環(huán)次數(shù)或永遠(yuǎn)循環(huán)腾仅,可以用于壓力測(cè)試
  • 簡(jiǎn)單控制器:測(cè)試用例順序執(zhí)行
  • 事務(wù)控制器:將多個(gè)請(qǐng)求放在同一個(gè)事務(wù)中。Gegerate parent sample套利,則聚合報(bào)告中只顯示事務(wù)控制器的數(shù)據(jù)推励,不會(huì)顯示其中的各個(gè)請(qǐng)求的數(shù)據(jù),反之則全部顯示肉迫。
    邏輯控制器

    取樣器(真正的http請(qǐng)求)
    取樣器
  • 可以認(rèn)為所有的測(cè)試任務(wù)都由取樣器成單验辞,如:HTTP請(qǐng)求、FTP請(qǐng)求昂拂、JAVA請(qǐng)求等等受神。
  • 取樣器告訴jmeter發(fā)送一個(gè)請(qǐng)求到指定的服務(wù)器,并等待服務(wù)器的請(qǐng)求格侯。取樣器會(huì)按照其在測(cè)試樹(shù)中的順序去執(zhí)行鼻听,還可以用邏輯控制器來(lái)改變?nèi)悠鬟\(yùn)行的重復(fù)冊(cè)書(shū)。
    斷言
  • 斷言:對(duì)取樣器返回的請(qǐng)求結(jié)果給出結(jié)果作出判斷联四,是否正確撑碴。
  • 用戶(hù)可以使用斷言來(lái)檢查服務(wù)器獲得的響應(yīng)內(nèi)容,用來(lái)判斷請(qǐng)求響應(yīng)的結(jié)果是否如用戶(hù)所期待朝墩。
  • 斷言會(huì)影響作用域的所有采樣器醉拓。如果要讓斷言只影響某個(gè)采樣器,需要將斷言作為該采樣器的子項(xiàng)
  • 斷言中設(shè)置要測(cè)試的模式收苏,則會(huì)對(duì)響應(yīng)的內(nèi)容(如http請(qǐng)求后亿卤,服務(wù)器返回的內(nèi)容)進(jìn)行與字符串進(jìn)行匹配,如果返回來(lái)內(nèi)容包括了字符串鹿霸,則認(rèn)為該測(cè)試通過(guò)排吴,否則就是失敗。一般通過(guò)添加監(jiān)聽(tīng)響應(yīng)斷言懦鼠。
    斷言

    監(jiān)聽(tīng)器
  • 監(jiān)聽(tīng)器:負(fù)責(zé)收集測(cè)試結(jié)果钻哩,支持將結(jié)果數(shù)據(jù)寫(xiě)入文件屹堰。
  • 監(jiān)聽(tīng)范圍:當(dāng)前節(jié)點(diǎn)層以及當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)(直至葉子節(jié)點(diǎn)),即監(jiān)聽(tīng)器可以監(jiān)聽(tīng)當(dāng)前層以及比它更低的層街氢。
  • 常用監(jiān)聽(tīng)器:查看結(jié)果樹(shù)扯键、聚合報(bào)告、徒刑結(jié)果珊肃、用表格查看結(jié)果
    • 查看結(jié)果樹(shù):顯示取樣器請(qǐng)求和響應(yīng)的細(xì)節(jié)荣刑,包括消息頭、請(qǐng)求的數(shù)據(jù)近范、響應(yīng)的數(shù)據(jù)

      • 取樣器結(jié)果:顯示的是取樣器相關(guān)參數(shù)(客戶(hù)端參數(shù)與響應(yīng)參數(shù))
      • 請(qǐng)求:發(fā)送請(qǐng)求的具體值
      • 響應(yīng)數(shù)據(jù):服務(wù)器返回的響應(yīng)參數(shù)
    • 聚合報(bào)告:


      聚合報(bào)告
      • Label:取樣器名稱(chēng)
      • Samples:運(yùn)行過(guò)程中一共發(fā)出了多少個(gè)請(qǐng)求嘶摊,一般來(lái)說(shuō)是其值=線(xiàn)程數(shù)*循環(huán)次數(shù)(前提:測(cè)試按計(jì)劃跑完,其中沒(méi)有異常結(jié)束的線(xiàn)程)评矩∫抖眩總體samples是各請(qǐng)求samples之和。
      • Average:平均響應(yīng)時(shí)間
      • Median:響應(yīng)時(shí)間中間值
      • 90%Line:響應(yīng)時(shí)間90%線(xiàn)(即90%的用戶(hù)處于這個(gè)值)
      • Min/Max:最小/最大的響應(yīng)時(shí)間
      • Error%:出錯(cuò)率(出錯(cuò)的Request數(shù)/所有的Request數(shù))
      • Throughput:吞吐量斥杜,每秒/每分鐘(具體看/后面的單位)處理的Request數(shù)
      • KB/sec:每秒從服務(wù)器接收到的數(shù)據(jù)
    • 圖形結(jié)果:


      圖形結(jié)果
      • 樣本數(shù)據(jù):發(fā)出去的請(qǐng)求數(shù)
      • 最新樣本:最近一個(gè)Request的響應(yīng)時(shí)間
      • 平均:所有Request響應(yīng)時(shí)間的平均值
      • 偏離:所有Request響應(yīng)時(shí)間的偏差
      • 吞吐量:單位時(shí)間內(nèi)(一般是1分鐘)chuli Request的個(gè)數(shù)
      • 中值:所有Request響應(yīng)時(shí)間的中間值虱颗。
    • 表格查看結(jié)果:


      表格結(jié)果
      • 顯示每一個(gè)請(qǐng)求的信息,包括發(fā)起請(qǐng)求的線(xiàn)程蔗喂,開(kāi)始時(shí)間忘渔,請(qǐng)求響應(yīng)時(shí)間,請(qǐng)求字節(jié)缰儿。

2.2 參數(shù)化

參數(shù)化數(shù)據(jù)畦粮,用記事本寫(xiě)參數(shù)并保存為.dat格式的文件,編碼問(wèn)題在使用CSV Data Set Config參數(shù)化時(shí)要求比較嚴(yán)格乖阵,記事本另存為修改編碼為UTF-8宣赔,注意參數(shù)要一一對(duì)應(yīng),中間用都好隔開(kāi)


參數(shù)化
這里介紹兩種參數(shù)化的方式:

  • 函數(shù)助手
  • CSV Data Set Config
    借助函數(shù)助手的方式
  • 點(diǎn)擊菜單欄“選項(xiàng)”---->函數(shù)助手對(duì)話(huà)框瞪浸,如下圖(CVS文件列號(hào)是從0開(kāi)始的儒将,第一列0,第二列1...)


  • 復(fù)制生成的參數(shù)化函數(shù)对蒲,參數(shù)化我們需要參數(shù)化的字段钩蚊,這里是對(duì)phone和empNo參數(shù)化,phone的列號(hào)為0蹈矮,empNo列號(hào)為1



    **借助JMeter中的配置元件(CSV Data Set Config)

  • 選中線(xiàn)程組砰逻,點(diǎn)擊右鍵,添加-配置元件-CSV Data Set Config


    CVS 數(shù)據(jù)文件設(shè)置
  • 使用剛才定義好的變量

引用:wuyan.gitbooks

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末泛鸟,一起剝皮案震驚了整個(gè)濱河市诱渤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谈况,老刑警劉巖勺美,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異碑韵,居然都是意外死亡赡茸,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)祝闻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)占卧,“玉大人,你說(shuō)我怎么就攤上這事联喘』眩” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵豁遭,是天一觀的道長(zhǎng)叭喜。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蓖谢,這世上最難降的妖魔是什么捂蕴? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮闪幽,結(jié)果婚禮上啥辨,老公的妹妹穿的比我還像新娘。我一直安慰自己盯腌,他們只是感情好溉知,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著腕够,像睡著了一般级乍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上燕少,一...
    開(kāi)封第一講書(shū)人閱讀 51,208評(píng)論 1 299
  • 那天卡者,我揣著相機(jī)與錄音,去河邊找鬼客们。 笑死崇决,一個(gè)胖子當(dāng)著我的面吹牛费坊,可吹牛的內(nèi)容都是我干的秤掌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼畏纲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼建邓!你這毒婦竟也來(lái)了盈厘?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤官边,失蹤者是張志新(化名)和其女友劉穎沸手,沒(méi)想到半個(gè)月后外遇,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡契吉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年跳仿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捐晶。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡菲语,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惑灵,到底是詐尸還是另有隱情山上,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布英支,位于F島的核電站佩憾,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏潭辈。R本人自食惡果不足惜鸯屿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望把敢。 院中可真熱鬧寄摆,春花似錦、人聲如沸修赞。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)柏副。三九已至勾邦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間割择,已是汗流浹背眷篇。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荔泳,地道東北人蕉饼。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像玛歌,于是被迫代替她去往敵國(guó)和親昧港。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 主要文體來(lái)自 CDNS:https://www.cnblogs.com/ceshisanren/p/5639895...
    Amano閱讀 10,988評(píng)論 3 27
  • JMeter有兩種類(lèi)型的控制器:取樣器和邏輯控制器支子。 取樣器指示JMeter向一個(gè)服務(wù)器發(fā)送請(qǐng)求创肥。例如,如果你想讓...
    七月尾巴_葵花閱讀 1,677評(píng)論 0 3
  • 在使用Jmeter進(jìn)行接口的性能測(cè)試時(shí),由于Jmeter 是JAVA應(yīng)用叹侄,對(duì)于CPU和內(nèi)存的消耗比較大巩搏,所以,當(dāng)需...
    燕京博士閱讀 4,166評(píng)論 0 16
  • 夢(mèng)醒十分圈膏,思緒悠悠塔猾,我在彌霧的回憶中踉蹌了一下,又一下稽坤,只記得腦海中的浪濤吐又復(fù)收,忘記了什么糯俗?記憶好似梗在咽喉尿褪,...
    LR逸凡閱讀 277評(píng)論 0 0
  • config配置類(lèi): 1.provide Plugin 用途:$出現(xiàn)就會(huì)自動(dòng)加載模塊;$默認(rèn)為jquery的exp...
    折梅踏雪閱讀 239評(píng)論 0 0