測(cè)試Jmeter軟件

Day09_JMeter軟件測(cè)試

1. 性能測(cè)試

1.1. 性能測(cè)試是什么

基于協(xié)議模擬用戶發(fā)出請(qǐng)求咬崔,對(duì)服務(wù)器形成一定負(fù)載,來測(cè)試服務(wù)器的性能指標(biāo)是否滿足要求

性能指標(biāo)關(guān)注點(diǎn):時(shí)間性能、空間性能

性能測(cè)試與頁(yè)面無關(guān)

性能測(cè)試定義:指通過自動(dòng)化的測(cè)試工具模擬多種正常、峰值以及異常負(fù)載條件來對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試汉买。

1.2. 性能測(cè)試類型

  1. 基準(zhǔn)測(cè)試:在給系統(tǒng)施加較低壓力時(shí)滋将,查看系統(tǒng)的運(yùn)行狀況并記錄相關(guān)數(shù)做為基礎(chǔ)參考

  2. 負(fù)載測(cè)試:是指對(duì)系統(tǒng)不斷地增加壓力或增加一定壓力下的持續(xù)時(shí)間邻悬,直到系統(tǒng)的某項(xiàng)或多項(xiàng)性能指標(biāo)達(dá)到安全臨界值,例如某種資源已經(jīng)達(dá)到飽和狀態(tài)等 随闽。

  3. 壓力測(cè)試:壓力測(cè)試是評(píng)估系統(tǒng)處于或超過預(yù)期負(fù)載時(shí)系統(tǒng)的運(yùn)行情況父丰,關(guān)注點(diǎn)在于系統(tǒng)在峰值負(fù)載或超出最大載荷情況下的處理能力。

  4. 穩(wěn)定性測(cè)試(可靠性測(cè)試):在給系統(tǒng)加載一定業(yè)務(wù)壓力的情況下掘宪,使系統(tǒng)運(yùn)行一段時(shí)間蛾扇,以此檢測(cè)系統(tǒng)是否穩(wěn)定。24X3小時(shí)

  5. 并發(fā)測(cè)試:測(cè)試多個(gè)用戶同時(shí)訪問同一個(gè)應(yīng)用魏滚、同一個(gè)模塊或者數(shù)據(jù)記錄時(shí)是否存在死鎖或者其他性能問題蘑斧,

1.3. 性能測(cè)試工具

image.png

2. Jmeter簡(jiǎn)介

2.1. Jmeter的基本概念

Apache JMeter是Apache組織開發(fā)的基于Java的壓力測(cè)試工具。

2.2. 我們?yōu)槭裁词褂肑meter

開源职辅,免費(fèi)秀鞭,基于Java編寫,可集成到其他系統(tǒng)可拓展各個(gè)功能插件

支持接口測(cè)試,壓力(負(fù)載和壓力)測(cè)試等多種功能,支持錄制回放,

入門簡(jiǎn)單相較于自己編寫框架活其他開源工具噪馏,有較為完善的UI界面粹淋,便于接口調(diào)試

多平臺(tái)支持葛碧,可在Linux进泼,Windows纤虽,Mac上運(yùn)行

支持多協(xié)議

2.3. Jmeter的作用

  1. 接口測(cè)試

  2. 性能測(cè)試

  3. 壓力測(cè)試

  4. Web自動(dòng)化測(cè)試

  5. 數(shù)據(jù)庫(kù)測(cè)試

  6. JAVA程序測(cè)試

2.4. Jmeter****怎么用

Windows下Jmeter下載安裝

登錄 http://jmeter.apache.org/download_jmeter.cgi 绞惦,根據(jù)自己平臺(tái),下載對(duì)應(yīng)文件

image.png

2.5. 安裝****JAVA環(huán)境

安裝JDK,配置環(huán)境變量(具體步驟不做介紹)

將下載Jmeter文件解壓涝婉,打開/bin/jmeter.bat


image.png
image.png

2.6. Jmeter的目錄結(jié)構(gòu)

image.png

/bin 目錄(常用文件介紹)

examples:目錄下包含Jmeter使用實(shí)例

ApacheJMeter.jar:JMeter源碼包

jmeter.bat:windows下啟動(dòng)文件

jmeter.sh:Linux下啟動(dòng)文件

jmeter.log:Jmeter運(yùn)行日志文件

jmeter.properties:Jmeter配置文件

jmeter-server.bat:windows下啟動(dòng)負(fù)載生成器服務(wù)文件

jmeter-server:Linux下啟動(dòng)負(fù)載生成器文件

/docs目錄——Jmeter幫助文檔

/extras目錄——提供了對(duì)Ant的支持文件,可也用于持續(xù)集成

/lib目錄——存放Jmeter依賴的jar包寞射,同時(shí)安裝插件也放于此目錄

/licenses目錄——軟件許可文件渔工,不用管

/printable_docs目錄——Jmeter用戶手冊(cè)

3. 使用Jmeter測(cè)試快速入門

3.1. 線程組是什么

進(jìn)程: 一個(gè)正在執(zhí)行的程序?qū)?yīng)一個(gè)進(jìn)程

線程: 一個(gè)進(jìn)程有多個(gè)執(zhí)行線程

線程組: 按照線程性質(zhì)對(duì)線程分組

三者關(guān)系: 一個(gè)進(jìn)程有多個(gè)線程組,一個(gè)線程組有多個(gè)線程

測(cè)試計(jì)劃—線程組—線程組屬性中的線程數(shù)

并發(fā)執(zhí)行:多個(gè)線程同時(shí)執(zhí)行桥温,特點(diǎn):執(zhí)行結(jié)束的順序與開始的順序不一致

順序執(zhí)行:按照線程的啟動(dòng)順序挨個(gè)執(zhí)行

默認(rèn)情況下引矩,線程組中的線程是并發(fā)執(zhí)行

每一個(gè)線程都要執(zhí)行組內(nèi)的http請(qǐng)求

設(shè)置線程組順序執(zhí)行:勾選測(cè)試計(jì)劃中的(獨(dú)立運(yùn)行每個(gè)線程組)

線程組用來模擬用戶的并發(fā)訪問

1.1.1. 創(chuàng)建線程組

image.png

1.1.2. 線程組主要包含三個(gè)參數(shù):線程數(shù)、準(zhǔn)備時(shí)長(zhǎng)(Ramp-Up Period(in seconds))侵浸、循環(huán)次數(shù)旺韭。

1.1.3. 線程數(shù):虛擬用戶數(shù)。一個(gè)虛擬用戶占用一個(gè)進(jìn)程或線程掏觉。設(shè)置多少虛擬用戶數(shù)在這里也就是設(shè)置多少個(gè)線程數(shù)区端。

1.1.4. 準(zhǔn)備時(shí)長(zhǎng)(秒):設(shè)置的虛擬用戶數(shù)需要多長(zhǎng)時(shí)間全部啟動(dòng)。如果線程數(shù)為20 澳腹,準(zhǔn)備時(shí)長(zhǎng)為10 织盼,那么需要10秒鐘啟動(dòng)20個(gè)線程。也就是每秒鐘啟動(dòng)2個(gè)線程酱塔。

1.1.5. 循環(huán)次數(shù):每個(gè)線程發(fā)送請(qǐng)求的次數(shù)沥邻。如果線程數(shù)為20 ,循環(huán)次數(shù)為100 羊娃,那么每個(gè)線程發(fā)送100次請(qǐng)求谋国。總請(qǐng)求數(shù)為20*100=2000 迁沫。如果勾選了“永遠(yuǎn)”芦瘾,那么所有線程會(huì)一直發(fā)送請(qǐng)求捌蚊,一到選擇停止運(yùn)行腳本。

1.1.6. . 調(diào)度器:設(shè)置線程組啟動(dòng)的開始時(shí)間和結(jié)束時(shí)間(配置調(diào)度器時(shí)近弟,需要勾選循環(huán)次數(shù)為永遠(yuǎn))

1.1.7. 持續(xù)時(shí)間(秒):測(cè)試持續(xù)時(shí)間缅糟,會(huì)覆蓋結(jié)束時(shí)間

1.1.8. 啟動(dòng)延遲(秒):測(cè)試延遲啟動(dòng)時(shí)間,會(huì)覆蓋啟動(dòng)時(shí)間

1.1.9. 啟動(dòng)時(shí)間:測(cè)試啟動(dòng)時(shí)間祷愉,啟動(dòng)延遲會(huì)覆蓋它窗宦。當(dāng)啟動(dòng)時(shí)間已過,手動(dòng)只需測(cè)試時(shí)當(dāng)前時(shí)間也會(huì)覆蓋它二鳄。

1.1.10. 結(jié)束時(shí)間:測(cè)試結(jié)束時(shí)間赴涵,持續(xù)時(shí)間會(huì)覆蓋它霍狰。

image.png

3.2. 創(chuàng)建http請(qǐng)求

image.png

3.3. 指定請(qǐng)求域名蹦肴,請(qǐng)求路徑

image.png
image.png

3.4. 設(shè)置對(duì)應(yīng)的查看內(nèi)容

image.png

3.5. 查看表格信息

image.png
image.png

3.6. 查看結(jié)果樹

image.png
image.png

通過察看結(jié)果樹,我們可以看到每個(gè)請(qǐng)求的結(jié)果据某,其中紅色的是出錯(cuò)的請(qǐng)求欺殿,綠色的為通過寄纵。

Thread Name:線程組名稱

Sample Start: 啟動(dòng)開始時(shí)間

Load time:加載時(shí)長(zhǎng)

Latency:等待時(shí)長(zhǎng)

Size in bytes:發(fā)送的數(shù)據(jù)總大小

Headers size in bytes:發(fā)送數(shù)據(jù)的其余部分大小

Sample Count:發(fā)送統(tǒng)計(jì)

Error Count:交互錯(cuò)誤統(tǒng)計(jì)

Response code:返回碼

Response message:返回信息

Response headers:返回的頭部信息

3.7. 聚合報(bào)告參數(shù)說明

image.png
image.png

3.8. 圖形結(jié)果

image.png

樣本數(shù)目:總共發(fā)送到服務(wù)器的請(qǐng)求數(shù)。

最新樣本:代表時(shí)間的數(shù)字脖苏,是服務(wù)器響應(yīng)最后一個(gè)請(qǐng)求的時(shí)間程拭。

吞吐量:服務(wù)器每分鐘處理的請(qǐng)求數(shù)。

平均值:總運(yùn)行時(shí)間除以發(fā)送到服務(wù)器的請(qǐng)求數(shù)棍潘。

中間值:有一半的服務(wù)器響應(yīng)時(shí)間低于改值而另一半高于該值恃鞋。

偏離:表示服務(wù)器響應(yīng)時(shí)間變化、離散程度測(cè)量值的大小亦歉。

4. Jmeter主要組件介紹

|

1.測(cè)試計(jì)劃是使用 JMeter 進(jìn)行測(cè)試的起點(diǎn)恤浪,它是其它 JMeter 測(cè)試元件的容器。

image.png

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

image.png
  1. 測(cè)試計(jì)劃就是一個(gè)完整的場(chǎng)景

  2. “獨(dú)立運(yùn)行每個(gè)線程組” :勾選以后所有的線程組都是順序執(zhí)行的了鳍徽。一般不勾選,讓所有 的線程組并發(fā)啟動(dòng)敢课。

  3. “函數(shù)測(cè)試模式” :勾選后會(huì)有詳細(xì)的請(qǐng)求記錄阶祭,消耗資源,影響客戶端性能直秆。一般不勾選濒募。

  4. 用戶定義的變量:全局變量,測(cè)試計(jì)劃上可以添加用戶定義的變量圾结。一般添加一些系統(tǒng)常用的配置瑰剃。如果測(cè)試過程中想切換環(huán)境,切換配置筝野,一般不建議在測(cè)試計(jì)劃上添加變量

image.png

4.2. 線程組

image.png

(1)晌姚、thread group(線程組)

這個(gè)就是我們通常添加運(yùn)行的線程粤剧。通俗的講一個(gè)線程組,可以看做一個(gè)虛擬用戶組挥唠,線程組中的每個(gè)線程都可以理解為一個(gè)虛擬用戶抵恋。

(2)、setup thread group

一種特殊類型的ThreadGroup的宝磨,可用于執(zhí)行預(yù)測(cè)試操作弧关。這些線程的行為完全像一個(gè)正常的線程組元件。不同的是唤锉,這些類型的線程執(zhí)行測(cè)試前進(jìn)行定期線程組的執(zhí)行世囊;類似LoadRunner的init,測(cè)試開始時(shí)進(jìn)行初始化的工作窿祥。

(3)株憾、teardown thread group

一種特殊類型的ThreadGroup的,可用于執(zhí)行測(cè)試后動(dòng)作壁肋。這些線程的行為完全像一個(gè)正常的線程組元件号胚。不同的是,這些類型的線程執(zhí)行測(cè)試結(jié)束后執(zhí)行定期的線程組浸遗;類似LoadRunnner的end猫胁,測(cè)試結(jié)束時(shí)進(jìn)行回收工作。

image.png

4.3. 取樣器(Http請(qǐng)求)

image.png

關(guān)于http請(qǐng)求的的屬性參數(shù)說明:

1)名稱:用于標(biāo)識(shí)一個(gè)sample跛锌。建議使用一個(gè)有意義的名稱

2)注釋:對(duì)于測(cè)試沒任何影響弃秆,僅用來記錄用戶可讀的注釋信息

3)服務(wù)器名稱或IP:http請(qǐng)求發(fā)送的目標(biāo)服務(wù)器名稱或者IP地址,比如http://www.baidu.com

4)端口號(hào):目標(biāo)服務(wù)器的端口號(hào)髓帽,默認(rèn)值為80菠赚,可不填

5)協(xié)議:向目標(biāo)服務(wù)器發(fā)送http請(qǐng)求時(shí)的協(xié)議,http/https郑藏,大小寫不敏感衡查,默認(rèn)http

6)方法:發(fā)送http請(qǐng)求的方法(鏈接:http://www.cnblogs.com/imyalost/p/5630940.html

7)Content encoding:內(nèi)容的編碼方式(Content-Type=application/json;charset=utf-8)

8)路徑:目標(biāo)的URL路徑(不包括服務(wù)器地址和端口)

9)自動(dòng)重定向:如果選中該項(xiàng),發(fā)出的http請(qǐng)求得到響應(yīng)是301/302必盖,jmeter會(huì)重定向到新的界面

10)Use keep Alive:jmeter 和目標(biāo)服務(wù)器之間使用 Keep-Alive方式進(jìn)行HTTP通信(默認(rèn)選中)

11)Use multipart/from-data for HTTP POST :當(dāng)發(fā)送HTTP POST 請(qǐng)求時(shí)拌牲,使用

12)Parameters、Body Data以及Files Upload的區(qū)別:

1. parameter是指函數(shù)定義中參數(shù)歌粥,而argument指的是函數(shù)調(diào)用時(shí)的實(shí)際參數(shù)

2. 簡(jiǎn)略描述為:parameter=形參(formal parameter)塌忽, argument=實(shí)參(actual parameter)

3.在不很嚴(yán)格的情況下,現(xiàn)在二者可以混用失驶,一般用argument土居,而parameter則比較少用

While defining method, variables passed in the method are called parameters.

當(dāng)定義方法時(shí),傳遞到方法中的變量稱為參數(shù).

While using those methods, values passed to those variables are called arguments.

當(dāng)調(diào)用方法時(shí),傳給變量的值稱為引數(shù).(有時(shí)argument被翻譯為“引數(shù)“)

4擦耀、Body Data指的是實(shí)體數(shù)據(jù)棉圈,就是請(qǐng)求報(bào)文里面主體實(shí)體的內(nèi)容,一般我們向服務(wù)器發(fā)送請(qǐng)求埂奈,攜帶的實(shí)體主體參數(shù)迄损,可以寫入這里

5、Files Upload指的是:從HTML文件獲取所有有內(nèi)含的資源:被選中時(shí)账磺,發(fā)出HTTP請(qǐng)求并獲得響應(yīng)的HTML文件內(nèi)容后還對(duì)該HTML

  進(jìn)行Parse 并獲取HTML中包含的所有資源(圖片芹敌、flash等):(默認(rèn)不選中)

  如果用戶只希望獲取特定資源,可以在下方的Embedded URLs must match 文本框中填入需要下載的特定資源表達(dá)式垮抗,只有能匹配指定正則表達(dá)式的URL指向資源會(huì)被下載

4.4. 監(jiān)聽器

監(jiān)聽器(Listener)負(fù)責(zé)收集測(cè)試結(jié)果氏捞,同時(shí)也被告知了結(jié)果顯示的方式。我們常用的包括:聚合報(bào)告冒版、查看結(jié)果樹液茎、用表格查看結(jié)果,都支持將結(jié)果數(shù)據(jù)寫入文件辞嗡。其他的添加上去看看就行捆等。聚合報(bào)告前面我們介紹過,后面是查看結(jié)果樹和用表格查看結(jié)果的截圖续室。

image.png

4.5. 邏輯控制器

image.png

4.6. 循環(huán)控制器栋烤、事務(wù)控制器

image.png

1.1.11. 循環(huán)控制器

image.png
image.png
image.png

1.1.12. 事務(wù)控制器

作用: 事務(wù)控制器會(huì)生產(chǎn)一個(gè)額外的采樣器,用來統(tǒng)計(jì)該控制器子結(jié)點(diǎn)的所有時(shí)間挺狰。

在線程組下創(chuàng)建事務(wù)控制器

參數(shù):

· Generate parent sample:(選中這個(gè)參數(shù)結(jié)果展示如下圖紅框明郭,否則顯示為下圖藍(lán)框)

· Include duration of timer and pre-post processors in generated sample:選中這一項(xiàng)會(huì)統(tǒng)計(jì)定時(shí)器(timer)的時(shí)間,否則只統(tǒng)計(jì)采樣器(sample)的時(shí)間

image.png

創(chuàng)建sample 訪問首頁(yè)和注冊(cè)頁(yè)面

image.png

生成聚合報(bào)告

image.png

勾選

image.png

聚合報(bào)告中只有一項(xiàng)事務(wù)報(bào)告

image.png

4.7. 斷言---檢查點(diǎn)

斷言(Assertions)可以用來判斷請(qǐng)求響應(yīng)的結(jié)果是否如用戶所期望的丰泊。它可以用來隔離問題域薯定,即在確保功能正確的前提下執(zhí)行壓力測(cè)試。這個(gè)限制對(duì)于有效的測(cè)試是非常有用的瞳购。

image.png
image.png
image.png

4.8. 前置處理器和后置處理器

image.png

前置處理器(Pre Processors)和后置處理器(Post Processors)負(fù)責(zé)在生成請(qǐng)求之前和之后完成工作话侄。前置處理器常常用來修改請(qǐng)求的設(shè)置,后置處理器則常常用來處理響應(yīng)的數(shù)據(jù)学赛。我們主要在動(dòng)態(tài)關(guān)聯(lián)中用到后置處理器的正則表達(dá)式提取器年堆。

https://www.cnblogs.com/fengpingfan/p/4755411.html

4.9. 定時(shí)器

定時(shí)器(Timer)負(fù)責(zé)定義請(qǐng)求之間的延遲間隔

image.png
image.png

5. Jmeter組件參數(shù)化

5.1. 參數(shù)化是什么

動(dòng)態(tài)的獲取并設(shè)置數(shù)據(jù)

5.2. 為什么使用參數(shù)化

執(zhí)行批量操作,批量添加批量刪除罢屈,人工效率太低

運(yùn)用程序代替人工獲取并設(shè)置數(shù)據(jù)嘀韧,安全高效

比如:對(duì)被測(cè)系統(tǒng)的用戶名和密碼進(jìn)行參數(shù)化篇亭,來模擬多個(gè)用戶同時(shí)登錄系統(tǒng)

5.3. 參數(shù)化實(shí)現(xiàn)之CSV Data Set Config

通過這個(gè)組件可以動(dòng)態(tài)獲取并設(shè)置數(shù)據(jù)缠捌,實(shí)現(xiàn)批量添加操作

image.png
image.png
image.png

Filename:所需數(shù)據(jù)文件的路徑。如和腳本同一路徑,可直接填寫文件名

File encoding:編碼和文件保持一致即可曼月,默認(rèn)為ANSI谊却。如有中文,建議為UTF-8

Variable Names:引用變量時(shí)的變量名哑芹,對(duì)應(yīng)數(shù)據(jù)文件中的每一列炎辨,以逗號(hào)分隔。如不填寫聪姿,文件的第一行數(shù)據(jù)將被讀取為變量名

Delimiter:在.txt碴萧、.dat文件中,可以用逗號(hào)(,)或者Tab鍵(\t)來區(qū)分列與列

Allow quote data:選項(xiàng)選為“true”的時(shí)候?qū)θ亲址奶幚沓霈F(xiàn)亂碼

Recycle on EOF:到數(shù)據(jù)文件結(jié)尾時(shí)是否循環(huán)讀取末购。設(shè)置為True時(shí)破喻,線程數(shù)過多,數(shù)據(jù)文件讀取到最后一行時(shí)盟榴,會(huì)再次從第一行開始讀取曹质。設(shè)置為False,到達(dá)文件結(jié)尾時(shí)如繼續(xù)讀取擎场,則值會(huì)默認(rèn)為<EOF>羽德,可通過設(shè)置jmeter屬性csvdataset.eofstring來改變?cè)撝怠?/p>

Stop thread on EOF:Recycle on EOF設(shè)置為False,Stop thread on EOF設(shè)置為True迅办,則讀取數(shù)據(jù)文件最后一行后宅静,停止測(cè)試,不管還有多少線程組未執(zhí)行礼饱。

Sharing mode:共享模式坏为。默認(rèn)在所有線程組中使用,可選擇每個(gè)線程組單獨(dú)打開

image.png

查看結(jié)果樹

image.png

5.4. 镊绪、使用Jmeter函數(shù)助手:

1匀伏、點(diǎn)擊 選項(xiàng)-->函數(shù)助手 調(diào)出函數(shù)助手對(duì)話框

2、選擇 _CSVRead 函數(shù)(下圖第一個(gè)框)

3蝴韭、函數(shù)參數(shù):

1)第一個(gè)參數(shù):填寫文件路徑够颠。

2)第二個(gè)參數(shù):文件列號(hào)是從0開始的,第一列0榄鉴、第二列1履磨、第三列2、依次類推,然后點(diǎn)擊【生成】按鈕庆尘,則會(huì)自動(dòng)生成我們需要的參數(shù)化函數(shù)剃诅。

  1. 復(fù)制生成的參數(shù)化函數(shù), copy過程需要使用的地方即可驶忌。

  2. _Random函數(shù)是從某數(shù)據(jù)段隨機(jī)讀取數(shù)據(jù)替換參數(shù)矛辕,當(dāng)需要添加多條數(shù)據(jù)記錄且某些字段需要唯一性時(shí)使用。

image.png

6. Jmeter腳本錄制

6.1. 什么是腳本錄制

在進(jìn)行測(cè)試的時(shí)候,可能有好多腳本或者界面需要操作測(cè)試聊品,并且有些測(cè)試鏈接需要重復(fù)多線程高并發(fā)進(jìn)行測(cè)試飞蹂,我們一般會(huì)針對(duì)這一些操作,進(jìn)行一個(gè)腳本錄制翻屈,錄制好之后陈哑,之后測(cè)試就可以在這個(gè)基礎(chǔ)上進(jìn)行測(cè)試。

6.2. Jemeter腳本錄制方式

BadBoy腳本錄制

使用Jmeter自帶的代理服務(wù)器進(jìn)行腳本錄制

7. 使用Jmeter自帶的代理服務(wù)器進(jìn)行腳本錄制

7.1. 在測(cè)試計(jì)劃上創(chuàng)建線程組

image.png

7.2. 添加錄制控制器

image.png

7.3. 在工作臺(tái)上添加http代理服務(wù)器

image.png

7.4. 配置Http代理服務(wù)器

image.png

7.5. 配置瀏覽器

1.1.13. Google瀏覽器

image.png
image.png
image.png

1.1.14. 火狐瀏覽器

image.png
image.png

7.6. 瀏覽器請(qǐng)求測(cè)試

image.png

7.7. 過濾信息

添加如下內(nèi)容

..js.|..css.|..png.|..jpg.|..gif.|..bmp.

image.png
image.png

8. Android手機(jī)端腳本錄制

8.1. 查看電腦IP

image.png

8.2. 配置手機(jī)網(wǎng)路連接

image.png
image.png

8.3. 手機(jī)訪問app

image.png
image.png

8.4. 模擬登陸操作

image.png
image.png

8.5. 執(zhí)行結(jié)束之后伸眶,停止腳本錄制

image.png

8.6. 腳本測(cè)試-線程組設(shè)置10個(gè)線程分別請(qǐng)求10次

image.png

8.7. 查看結(jié)果樹

image.png

9. BadBoy腳本錄制

9.1. 安裝badboy腳本軟件

image.png

傻瓜式安裝即可

9.2. 打開badboy軟件

image.png

9.3. badboy腳本錄制

點(diǎn)擊錄制按鈕進(jìn)行腳本錄制惊窖,完成打開搜狗搜索,搜索測(cè)試崗位薪資操作厘贼,然后停止爬坑,回放,(回放的時(shí)候涂臣,會(huì)因?yàn)榫幋a原因?qū)е聛y碼盾计,需要手動(dòng)調(diào)亂碼問題)

image.png
image.png
image.png
image.png

9.4. 添加驗(yàn)證點(diǎn)

驗(yàn)證點(diǎn)的作用就是驗(yàn)證腳本是否按照我們測(cè)試的思路執(zhí)行,判斷腳本執(zhí)行過程中是否存現(xiàn)問題

image.png

9.5. badboy參數(shù)化

所謂參數(shù)化赁遗,是指請(qǐng)求的某個(gè)參數(shù)提前設(shè)定多個(gè)值署辉,在具體請(qǐng)求的時(shí)候,去獲取提前設(shè)定的值岩四,不同的業(yè)務(wù)場(chǎng)景設(shè)置的參數(shù)不一致哭尝。

image.png
image.png
image.png
image.png
image.png

9.6. 導(dǎo)出Jmeter腳本

image.png

9.7. 在Jmeter中導(dǎo)入badboy生成的腳本,驗(yàn)證測(cè)試

image.png

9.8. badboy并發(fā)測(cè)試

選擇tools run background

image.png

9.9. badboy測(cè)試報(bào)告

在badboy-->view--->report下可以看到測(cè)試報(bào)告

[圖片上傳失敗...(image-ea070b-1603883592481)]

10. Jmeter擴(kuò)展插件-顯示內(nèi)存效果圖

Jmeter本身是不能夠展示內(nèi)存剖煌,cpu和吞吐量的材鹦,但是可以通過添加插件的方式來對(duì)jmeter添加這些功能

<u>https://www.cnblogs.com/imyalost/p/7751981.html</u>

<u>JMeter之ServerAgent監(jiān)控資源</u>

image.png

10.1. 對(duì)linux服務(wù)器的服務(wù)進(jìn)行壓測(cè)

時(shí),服務(wù)器的運(yùn)行情況可以通過添加插件來觀察耕姊,而不用使用top命令實(shí)時(shí)的去看

1桶唐、資源準(zhǔn)備

2、環(huán)境準(zhǔn)備

3茉兰、資源監(jiān)控

1尤泽、資源準(zhǔn)備

可通過該網(wǎng)址下載jmeter所有插件http://jmeter-plugins.org/downloads/all/

萬(wàn)能的網(wǎng)盤:

本次所需插件:

JMeterPlugins-Extras.jar

JMeterPlugins-Standard.jar

ServerAgent-2.2.1

將JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar放到apache-jmeter-3.0\lib\ext目錄下

將ServerAgent-2.2.1放到linux服務(wù)器opt目錄下

2、環(huán)境準(zhǔn)備

ServerAgent服務(wù)端口號(hào)默認(rèn)為4444规脸,需要設(shè)置防火墻對(duì)此端口不攔截:

vi /etc/sysconfig/iptables坯约,在端口22下面添加 iptables -I INPUT -p tcp --dport 4444 -j ACCEPT //允許4444端口訪問

然后在服務(wù)器中啟動(dòng)監(jiān)控服務(wù):

image.png

使用以下命令可以改變默認(rèn)的4444端口

<u>java</u> -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port 7777 --tcp-port 7777

同樣的,7777端口也要設(shè)置防火墻規(guī)則以及使用telnet本地測(cè)試下是否可以訪問

10.2. windows****本機(jī)進(jìn)行監(jiān)聽

image.png
image.png
image.png

先在服務(wù)器上開啟server的監(jiān)聽

image.png

開始演示效果

jp@gc - Bytes Throughput Over Time:不同時(shí)間吞吐量(字節(jié)Bytes)展示(圖表)

聚合報(bào)告里莫鸭,Throughput是按請(qǐng)求個(gè)數(shù)來展示的闹丐,比如說1.9/sec,就是每s發(fā)送1.9個(gè)請(qǐng)求被因;而這里的展示是按字節(jié)Bytes來展示的圖表卿拴,表示每秒發(fā)送多少字節(jié)

image.png

jp@gc - Hits per Second:每秒點(diǎn)擊量滥玷,點(diǎn)擊量在性能測(cè)試-常見的性能指標(biāo)(一)的博文中已經(jīng)詳細(xì)介紹,指的是每秒web服務(wù)器接收到的請(qǐng)求數(shù)

image.png
image.png
image.png
image.png

jp@gc - PerfMon Metrics Collector:服務(wù)器性能監(jiān)測(cè)控件巍棱,包括CPU,Memory蛋欣,Network航徙,I/O等等(此功能用到在需監(jiān)聽的服務(wù)器上啟動(dòng)startAgent)

根據(jù)需要選擇CPU,Memory陷虎,Network I/O等

image.png
image.png

11. Jmeter數(shù)據(jù)庫(kù)壓力測(cè)試

11.1. 先配置jdbc(數(shù)據(jù)庫(kù)連接)驅(qū)動(dòng)

1到踏、啟動(dòng)jmeter,打開界面工具尚猿,添加一個(gè)線程組,添加驅(qū)動(dòng)

image.png

2、添加一個(gè)JDBC Connection Configuration撵幽,連接池配置文件斯稳。右鍵線程組【添加】--【配置元件】--【JDBC Connection Configuration】

image.png
image.png

Variable Name:連接池名稱。JDBC Request會(huì)通過此名稱來獲取連接池的配置庄萎,名稱可以隨意填寫踪少,但是最好具體實(shí)際的業(yè)務(wù)意義,方便理解和記憶糠涛。

其他的可以默認(rèn)援奢,可以根據(jù)實(shí)際情況來調(diào)節(jié)優(yōu)化性能。

Database URL:數(shù)據(jù)鏈接url忍捡,格式:jdbc:mysql://localhost:3306/host

注釋:數(shù)據(jù)庫(kù)的ip地址+端口/數(shù)據(jù)庫(kù)名(查詢數(shù)據(jù)庫(kù)端口號(hào)show global variables like 'port')

JDBC Driver Class:驅(qū)動(dòng)器名稱集漾。固定:com.mysql.jdbc.Driver

Username:用戶名

Passowrd:密碼

添加一個(gè)JDBC Request。

3砸脊、右鍵線程組【添加】-【Sampler】-【JDBC Request】

image.png

Select Statement:查詢語(yǔ)句

Updata Statement:更新語(yǔ)句

Prepared Select Statement:預(yù)編譯查詢語(yǔ)句具篇。(長(zhǎng)時(shí)間執(zhí)行效率更高,支持占位符)

Prepared Update Statement:預(yù)編譯更新語(yǔ)句凌埂。(同上)

Commit (立即提交)Rollback(回滾)

image.png

Parameter values:參數(shù)值栽连。參數(shù)化sql語(yǔ)句中的值。故輸入:localhost,root

Paramter types:參數(shù)類型侨舆。數(shù)據(jù)庫(kù)的參數(shù)你可以去查看一下秒紧。這里是兩個(gè)CHAR,CHAR類型。

Variable names:變量名字挨下,也就是將篩選出來的值放在變量里面熔恢。例如這三列數(shù)據(jù)分為放在變量:A,B,C中(實(shí)際操作中命名一定要有實(shí)際意義)。

Result variable name:存儲(chǔ)變量名臭笆。將整個(gè)結(jié)果存儲(chǔ)在變量中叙淌。取名:rs

Query timeouts :超時(shí)時(shí)間秤掌。

12. Jmeter正則表達(dá)式提取

12.1. badboy錄制腳本

image.png

12.2. 將腳本導(dǎo)出到j(luò)meter

image.png

12.3. 回放時(shí)候失敗-session過期

12.4. 查看返回信息,查找userSession

image.png

12.5. 使用正則提取

運(yùn)用Jmeter正則提取器鹰霍,可以從請(qǐng)求的響應(yīng)結(jié)果中取到需要的內(nèi)容闻鉴,從而實(shí)現(xiàn)關(guān)聯(lián)。關(guān)聯(lián)是請(qǐng)求與請(qǐng)求之間存在數(shù)據(jù)依賴關(guān)系茂洒,需要從上一個(gè)請(qǐng)求獲取下一個(gè)請(qǐng)求需要回傳回去的數(shù)據(jù)

位置****1:名稱及注釋

正則表達(dá)式(regular expression)描述了一種字符串匹配的模式(pattern)孟岛,可以用來檢查一個(gè)串是否含有某種子串、將匹配的子串替換或者從某個(gè)串中取出符合某個(gè)條件的子串等督勺。

image.png

構(gòu)造正則表達(dá)式的方法和創(chuàng)建數(shù)學(xué)表達(dá)式的方法一樣渠羞。也就是用多種元字符與運(yùn)算符可以將小的表達(dá)式結(jié)合在一起來創(chuàng)建更大的表達(dá)式。正則表達(dá)式的組件可以是單個(gè)的字符智哀、字符集合次询、字符范圍、字符間的選擇或者所有這些組件的任意組合瓷叫。

位置2:正則表達(dá)式提取的相關(guān)設(shè)置

image.png

說明:

(1)引用名稱:下一個(gè)請(qǐng)求要引用的參數(shù)名稱屯吊,如填寫title,則可用${title}引用它摹菠。

(2)正則表達(dá)式:

():括起來的部分就是要提取的雌芽。

.:匹配任何字符串。

+:一次或多次辨嗽。

?:不要太貪婪世落,在找到第一個(gè)匹配項(xiàng)后停止。

(3)模板:用引用起來糟需,如果在正則表達(dá)式中有多個(gè)正則表達(dá)式屉佳,則可以是$23等等,表示解析到的第幾個(gè)值給title洲押。如:1$表示解析到的第1個(gè)值

(4)匹配數(shù)字:0代表隨機(jī)取值武花,1代表全部取值,通常情況下填0

(5)缺省值:如果參數(shù)沒有取得到值杈帐,那默認(rèn)給一個(gè)值讓它取体箕。

12.6. 使用參數(shù)化

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市挑童,隨后出現(xiàn)的幾起案子累铅,更是在濱河造成了極大的恐慌,老刑警劉巖站叼,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娃兽,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡尽楔,警方通過查閱死者的電腦和手機(jī)投储,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門第练,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人玛荞,你說我怎么就攤上這事娇掏。” “怎么了勋眯?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵婴梧,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我凡恍,道長(zhǎng),這世上最難降的妖魔是什么怔球? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任嚼酝,我火速辦了婚禮,結(jié)果婚禮上竟坛,老公的妹妹穿的比我還像新娘闽巩。我一直安慰自己,他們只是感情好担汤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布涎跨。 她就那樣靜靜地躺著,像睡著了一般崭歧。 火紅的嫁衣襯著肌膚如雪隅很。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天率碾,我揣著相機(jī)與錄音叔营,去河邊找鬼。 笑死所宰,一個(gè)胖子當(dāng)著我的面吹牛绒尊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播仔粥,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼婴谱,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了躯泰?” 一聲冷哼從身側(cè)響起谭羔,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎麦向,沒想到半個(gè)月后口糕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡磕蛇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年景描,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了十办。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡超棺,死狀恐怖向族,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情棠绘,我是刑警寧澤件相,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站氧苍,受9級(jí)特大地震影響夜矗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜让虐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一紊撕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赡突,春花似錦对扶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至漱受,卻和暖如春络凿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背昂羡。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工喷众, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人紧憾。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓到千,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親赴穗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子憔四,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353