性能測試工具Jmeter

一抒钱、Jmeter腳本錄制

Jmeter使用概述


錄制腳本首先我們需要設(shè)置Jmeter:

① 測試計(jì)劃>添加>Threads(Users)>線程組;

② 工作臺(tái)>添加>非測試元件>HTTP代理服務(wù)器。


那么又如何配置HTTP代理服務(wù)器呢:

??Global settings Jmeter代理服務(wù)器監(jiān)聽的端口诅蝶,默認(rèn)8080,可以修改為:8888缰泡;

??目標(biāo)控制器:測試計(jì)劃>線程組棘钞;(這樣設(shè)置后,錄制下來的HTTP請(qǐng)求會(huì)保存在“測試計(jì)劃>線程組”下面)

??分組:每個(gè)組放入一個(gè)新的控制器宝恶,這樣設(shè)置后JMeter會(huì)將我們錄制下來的HTTP請(qǐng)求進(jìn)行適當(dāng)?shù)姆纸M,效果后面能看到;

??“記錄HTTP信息頭”“添加斷言”“Regex matching(正則匹配)”保持默認(rèn)配置

??HTTP Sampler Settings和Content-type膀藐,保持默認(rèn)

??包含模式(重要配置項(xiàng):只有請(qǐng)求的url国觉,匹配包含模式中的正則表達(dá)式麻诀,這條請(qǐng)求才會(huì)被錄制):如添加“www.baidu.com.*”我們的請(qǐng)求,只有以www.baidu.com開頭的請(qǐng)求才會(huì)被Jmeter錄制下來呻引;

??排除模式(重要配置項(xiàng):只有請(qǐng)求的url苞七,匹配排除模式中的正則表達(dá)式乾蓬,這條請(qǐng)求就會(huì)被過濾):如添加“.*\.(js|css|png).*”當(dāng)HTTP請(qǐng)求中包含任内,js粒氧,或css摘盆,或png,就會(huì)被Jmeter排除掉饱苟;

設(shè)置Jmeter


Jmeter的HTTP代理服務(wù)器就配置好了孩擂,在啟動(dòng)這個(gè)代理服務(wù)器之前,我們還應(yīng)該去瀏覽器添加一個(gè)本地代理(本文以火狐瀏覽器做例箱熬,其他瀏覽器設(shè)置代理的方法也是一樣)类垦,如下:

瀏覽器代理設(shè)置

設(shè)置好Jmeter和瀏覽器的HTTP代理服務(wù)器之后狈邑,瀏覽器訪問任何url地址蚤认,都會(huì)轉(zhuǎn)發(fā)到127.0.0.1:8888亏较,也就是Jmeter的代理服務(wù)地址舍哄,同時(shí)被jmeter記錄下來籽暇,這樣我們就可以開始錄制腳本了累盗。


啟動(dòng)Jmeter的HTTP代理服務(wù)器

二孕索、Jmeter測試腳本

利用Jmeter測試組件對(duì)錄制腳本進(jìn)行加工和編輯镇眷;

測試組件介紹:

1.線程組圈驼,是Jmeter組件中最核心的測試組件

如:打開主頁,登錄等操作都是Jmeter線程來完成的阁猜;線程組,就是管理這些線程的組件蹭沛;

線程組中的配置項(xiàng):

① 線程數(shù):Jmeter線程的數(shù)量集嵌,決定著Jmeter用多少個(gè)線程去同時(shí)執(zhí)行這些操作(如圖模擬10個(gè)用戶)嫌拣,線程數(shù)越大酝润,服務(wù)器所承受的壓力就越大垦梆;

② Ramp-up Period:啟動(dòng)所有Jmeter線程所花費(fèi)的時(shí)間厅各,為了防止Jmeter測試時(shí)涝桅,瞬間給被測服務(wù)器施加太大的壓力盐肃,從第一個(gè)開始慢慢慢慢增加到第10個(gè);(在十秒鐘啟動(dòng)10個(gè)線程控嗜,平均每秒增加1個(gè)線程壁顶,直到10個(gè)都啟動(dòng)完成);Ramp-up Period越大飞盆,被測服務(wù)器施加的壓力幅度越平緩逃默;

③ 循環(huán)次數(shù):決定線程重復(fù)循環(huán)執(zhí)行的次數(shù)鹃愤;(如:勾選永遠(yuǎn),主頁>登錄也>登錄的動(dòng)作將無限循環(huán)的執(zhí)行下去)

④ 調(diào)度器:可以詳細(xì)的設(shè)置線程執(zhí)行測試的時(shí)間完域;(持續(xù)時(shí)間:設(shè)置測試能持續(xù)執(zhí)行多久软吐;持續(xù)時(shí)間填寫之后,上面的結(jié)束時(shí)間就失效吟税;啟動(dòng)延遲:從當(dāng)前時(shí)刻算起凹耙,延遲幾秒才開始執(zhí)行測試,填寫之后肠仪,上面的啟動(dòng)時(shí)間也就失效了)

?2.采樣器(Sample)

添加采樣器:

添加采樣器

Connect timeout:指的是肖抱,在Jmeter發(fā)送請(qǐng)求的時(shí)候,會(huì)等待多久直到跟服務(wù)器的連接正確的建立起來异旧,如果超過這個(gè)時(shí)間意述,連接還沒有建立,那么Jmeter就判斷這次請(qǐng)求是失敗的吮蛹;

Response timeout:Jmeter會(huì)等待多久荤崇,直到收到服務(wù)端的響應(yīng)數(shù)據(jù)。

他們的單位都是:“毫秒”潮针;

HTTP請(qǐng)求:Implementation术荤,一般選擇空或HttpClient4;Content encoding:如果前面的方法是“POST”然低,“PUT”“PATCH”和“(喜每。。雳攘。沒聽出來)”這四種方式時(shí)的带兜,會(huì)使用哪一種字符編碼方式;

路徑:請(qǐng)求的url路徑

參數(shù):也可以手動(dòng)添加參數(shù)


3.斷言


給某個(gè)請(qǐng)求添加斷言:

Apply to指定了斷言的作用范圍吨灭;保持默認(rèn)刚照,只對(duì)當(dāng)前的采樣器生效;

要測試的響應(yīng)字段:指的是喧兄,斷言要檢查的目標(biāo)无畔;重點(diǎn)關(guān)注“響應(yīng)文本”“響應(yīng)代碼”和“響應(yīng)信息”這三個(gè);響應(yīng)文本:指的是服務(wù)器返回的數(shù)據(jù)吠冤;響應(yīng)代碼:HTTP的響應(yīng)code(如:200浑彰;500;403等)拯辙;響應(yīng)信息:http的響應(yīng)massage:OK郭变,error等;

模式匹配規(guī)則和要測試的模式涯保;

例子:

響應(yīng)代碼 Equals 200诉濒;響應(yīng)代碼 = 200

響應(yīng)信息 Equals OK;響應(yīng)信息 = OK

響應(yīng)文本 包括 夜空黑夕春;響應(yīng)文本中包括 “夜空黑”三個(gè)字 這樣的HTTP請(qǐng)求即為成功的未荒,否則失敗及志;

4.參數(shù)化

如圖:登錄名密碼為固定的20000000000/netease123片排,模擬的是同一個(gè)用戶對(duì)操作進(jìn)行十次。如果要模擬不同用戶對(duì)頁面進(jìn)行操作速侈,就需要對(duì)用戶名密碼進(jìn)行參數(shù)化划纽;

先在系統(tǒng)中注冊(cè)10個(gè)用戶,用戶名密碼寫在一個(gè)txt文本中锌畸,如下圖勇劣,中間用英文的逗號(hào)隔開;


首先在線程組下添加>配置元件>CSV Data Set Config潭枣,這個(gè)組件可以幫助我們實(shí)現(xiàn)參數(shù)化

Filename:配置文件的絕對(duì)路徑比默;

File encoding:JMeter在讀取文件的時(shí)候使用的字符編碼方式;

Variable Names:配置文件中各列代表的數(shù)據(jù)項(xiàng)盆犁;

Delimiter:配置文件中不同列之間的分隔符

接下來的幾個(gè)配置項(xiàng)全部選用默認(rèn)值

在login頁面的body中修改需要傳入的數(shù)據(jù)命咐,為剛才測試組件中設(shè)置的項(xiàng)完全一致


5.HTTP?Cookie管理器:

>實(shí)際的登錄動(dòng)作前后,進(jìn)行了兩次checkLogin谐岁;

>在login操作時(shí)醋奠,開發(fā)者工具(F12)的ResponseHeaders中可以看到榛臼,進(jìn)行了一些set-Cookie操作;換句話說窜司,服務(wù)端會(huì)返回一些cookie信息給瀏覽器沛善,瀏覽器會(huì)自動(dòng)的在后續(xù)的所有請(qǐng)求中自動(dòng)的帶上這些Cookie;

>但在Jmeter不會(huì)錄制下這些Cookie塞祈,正是因?yàn)槿鄙倭诉@個(gè)cookie金刁,我們的jmeter線程,即使成功執(zhí)行了登錄操作议薪,后續(xù)的請(qǐng)求尤蛮,服務(wù)器依然會(huì)認(rèn)為我們沒有登錄;

>那為什么Jmeter沒有錄制下這些cookie呢斯议?因?yàn)檫@些cookie常常是不固定的产捞,每次測試都有可能不一樣,把這些cookie錄制到Jmeter哼御,反而會(huì)有些問題轧葛;

? ?>那當(dāng)前的腳本需要進(jìn)行怎樣的加工,才能生效呢艇搀?我們?cè)诖诵枰肓硪粋€(gè)測試組件:HTTP Cookie管理器

添加:

勾選“每次反復(fù)清除Cookies”尿扯,腳本反復(fù)執(zhí)行登錄測試,每次執(zhí)行主頁焰雕,登錄頁衷笋,登錄這一輪測試后,會(huì)清除cookie矩屁,下一次執(zhí)行操作時(shí)辟宗,仍會(huì)以一個(gè)未登錄的狀態(tài)來執(zhí)行主頁,登錄頁吝秕,登錄的操作泊脐;

添加HTTP Cookie管理器后執(zhí)行測試,再查看結(jié)果樹checkLogin信息烁峭,可以看到服務(wù)端返回了用戶信息容客,此時(shí)服務(wù)端認(rèn)為我們真正完成了登錄;

三约郁、JMeter測試執(zhí)行

查看結(jié)果樹

添加:

取樣器結(jié)果:

Load time:請(qǐng)求從發(fā)出到接收到完整的返回結(jié)果的時(shí)間缩挑;(即響應(yīng)時(shí)間)

Latency:請(qǐng)求從發(fā)出到接收開始接收到響應(yīng),一般略小于Load time鬓梅;

Connect Time:JMeter和服務(wù)端建立連接所花費(fèi)的時(shí)間供置,這個(gè)時(shí)間端已經(jīng)包含在Load time中了;

Size in bytes:這次請(qǐng)求的大姓揽臁芥丧;

請(qǐng)求

響應(yīng)數(shù)據(jù):服務(wù)端返回的數(shù)據(jù)

查看結(jié)果樹這個(gè)監(jiān)聽器紧阔,需要每個(gè)請(qǐng)求的詳細(xì)信息都顯示出來,所以對(duì)系統(tǒng)資源是有一定開銷的续担。如果在測試的時(shí)候擅耽,若系統(tǒng)的吞吐率很高,查看結(jié)果樹會(huì)對(duì)性能帶來比較大的影響赤拒,不建議用這個(gè)監(jiān)聽器,以免影響測試結(jié)果诱鞠;

聚合報(bào)告:

響應(yīng)時(shí)間曲線

添加>監(jiān)聽器>Response Time Graph

Interval(ms):橫坐標(biāo)的統(tǒng)計(jì)間隔挎挖;Jmeter會(huì)在10秒內(nèi)的執(zhí)行的結(jié)果做一個(gè)平均值的聚合;

Sampler label

selection:可以設(shè)置過濾請(qǐng)求航夺,只顯示一部分的請(qǐng)求蕉朵;(如下圖:過濾以46和18開頭的請(qǐng)求)

只顯示46開頭的請(qǐng)求

常見問題和解決思路:

小壓力(如2個(gè)并發(fā)數(shù))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市阳掐,隨后出現(xiàn)的幾起案子始衅,更是在濱河造成了極大的恐慌,老刑警劉巖缭保,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件汛闸,死亡現(xiàn)場離奇詭異,居然都是意外死亡艺骂,警方通過查閱死者的電腦和手機(jī)诸老,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钳恕,“玉大人别伏,你說我怎么就攤上這事∮嵌睿” “怎么了厘肮?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長睦番。 經(jīng)常有香客問我类茂,道長,這世上最難降的妖魔是什么托嚣? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任大咱,我火速辦了婚禮,結(jié)果婚禮上注益,老公的妹妹穿的比我還像新娘碴巾。我一直安慰自己,他們只是感情好丑搔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布厦瓢。 她就那樣靜靜地躺著提揍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪煮仇。 梳的紋絲不亂的頭發(fā)上劳跃,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音浙垫,去河邊找鬼刨仑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛夹姥,可吹牛的內(nèi)容都是我干的杉武。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼辙售,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼轻抱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起旦部,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤祈搜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后士八,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體容燕,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年婚度,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缰趋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡陕见,死狀恐怖秘血,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情评甜,我是刑警寧澤灰粮,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站忍坷,受9級(jí)特大地震影響粘舟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜佩研,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一柑肴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧旬薯,春花似錦晰骑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秽荞。三九已至,卻和暖如春抚官,著一層夾襖步出監(jiān)牢的瞬間扬跋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國打工凌节, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钦听,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓倍奢,卻偏偏與公主長得像朴上,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子娱挨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

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

  • 主要文體來自 CDNS:https://www.cnblogs.com/ceshisanren/p/5639895...
    Amano閱讀 10,993評(píng)論 3 27
  • JMeter有兩種類型的控制器:取樣器和邏輯控制器余指。 取樣器指示JMeter向一個(gè)服務(wù)器發(fā)送請(qǐng)求捕犬。例如跷坝,如果你想讓...
    七月尾巴_葵花閱讀 1,681評(píng)論 0 3
  • 早起,七點(diǎn) 八點(diǎn)左右開始學(xué)習(xí) 近兩個(gè)小時(shí)復(fù)習(xí)以及聽完EnglishPod C0022 而后是高數(shù)上習(xí)題1.1(B)...
    披著馬甲寫日記閱讀 203評(píng)論 0 0
  • 我曾經(jīng)上過兩個(gè)學(xué)期的京劇選修課碉碉,一次在大二柴钻,一次在大四。大二的時(shí)候剛好香港回歸垢粮,大四又遇上八十年校慶贴届,所以老師都組...
    auding閱讀 512評(píng)論 2 1
  • 君子最引以為恥的,就是自己的名聲超過了自己的實(shí)力蜡吧,名聲超過了實(shí)力毫蚓,就成了欺世盜名的小人了,那怎么受得了昔善!毀譽(yù)是大事...
    華杉2009閱讀 1,228評(píng)論 0 2