福建定制網(wǎng)站開(kāi)發(fā)百度 營(yíng)銷(xiāo)推廣怎么收費(fèi)
第一遍沒(méi)學(xué)懂,后續(xù)文章會(huì)更新~?
目錄:
- 1.JMeter介紹與安裝
- Meter簡(jiǎn)介
- JMeter安裝
- 2.JMeter的運(yùn)行
- JMeter運(yùn)行、界面功能簡(jiǎn)介
- 3.使用代理服務(wù)器錄制請(qǐng)求
- 錄制壓測(cè)腳本(一)Web端
- 腳本錄制方法
- 4.測(cè)試計(jì)劃
- 5.線程組
- 6.控制器
- 7.JMeter采樣器/取樣器
- 8.JMeter場(chǎng)景邏輯控制技術(shù)
- 9.JMeter監(jiān)聽(tīng)器
- 10.JMeter定時(shí)器
- 11.JMeter斷言元件的使用
- 12.JMeter常用配置元件剖析
- 13.JMeter前置處理器
- 前置處理器
- SampleTimeout前置處理器
- Beanshell前置處理器
- 14.JMeter后置處理器
- 15.JMeter執(zhí)行順序
- 16.JMeter虛擬用戶(hù)管理
- 17.HTTP請(qǐng)求屬性設(shè)置
- 18.HTTPcookie設(shè)置
- Cookiemanager
- 19.HTTP信息頭管理器
- Headermanager
- 20.HTTP請(qǐng)求設(shè)置
- 21.監(jiān)聽(tīng)器與測(cè)試結(jié)果
- Listener&測(cè)試結(jié)果
1.JMeter 介紹與安裝
Meter簡(jiǎn)介
- Apache組織開(kāi)發(fā)的開(kāi)源免費(fèi)壓測(cè)工具
- 純Java程序,跨平臺(tái)性強(qiáng)
- 源程序可以從網(wǎng)上下載高可擴(kuò)展性
- 可對(duì)服務(wù)器、網(wǎng)絡(luò)或?qū)ο竽M巨大的負(fù)載,進(jìn)行壓力測(cè)試可以用于接口測(cè)試
- 支持分布式、多節(jié)點(diǎn)部署
JMeter 安裝?
下載位置:
- 官網(wǎng) https://jmeter.apache.org/
- binary 可運(yùn)行文件包
- 官網(wǎng)下載規(guī)律 首頁(yè) -> Download -> binaries
- JMeter 安裝方法: 直接解壓
- Demo: JMeter 官網(wǎng)尋找安裝包,下載,解壓
2.JMeter 的運(yùn)行
JMeter 運(yùn)行、界面功能簡(jiǎn)介
- 運(yùn)行環(huán)境要求:java運(yùn)行時(shí)環(huán)境
- 運(yùn)行方法:命令行直接啟動(dòng) $jmeter_home/bin/jmeter.sh
- 常規(guī)的菜單功能:新建、保存、查詢(xún)、配置、幫助 等
- 壓測(cè)運(yùn)行相關(guān):開(kāi)始運(yùn)行、停止運(yùn)行、遠(yuǎn)程運(yùn)行、停止遠(yuǎn)程運(yùn)行 等
- 設(shè)定外觀長(zhǎng)相更改
- 配置語(yǔ)言,不過(guò)建議用英語(yǔ)(個(gè)人體會(huì)中文翻譯的有點(diǎn)暈)
- Demo – JMeter 界面操作、外觀、語(yǔ)言
3.使用代理服務(wù)器錄制請(qǐng)求
錄制壓測(cè)腳本(一)Web 端
- 壓測(cè)對(duì)象 - http://news.baidu.com
- 壓測(cè)頁(yè)面 – 百度首頁(yè),百度新聞
- 步驟:
- 訪問(wèn)百度首頁(yè)
- 單擊進(jìn)入“百度新聞”
- 操作手段: 錄制回放,上手容易,入門(mén)學(xué)習(xí)的好手段
腳本錄制方法?
- 打開(kāi) JMeter
- 新建壓測(cè)腳本
- 添加 “HTTP(S) Test Script Recorder”
- 添加“Thread Group”
- 在 Thread Group中添加“Recording Controller”?
- 打開(kāi) HTTP(S) Test Script Recorder
- 設(shè)定 Port = 8088
- 設(shè)定 Target Controller = Test Plan > Tread Group > Recording Controller
- 在 Requests Filtering 添加“include”與 “Exclude”URL 正則匹配表達(dá)式
- 目的:避免錄制過(guò)多沒(méi)必要的請(qǐng)求
- Include: .*\.(baidu\.com).*
- Exclude:.*\.(js|css|PNG|jpg|ico|png|gif).*
- 關(guān)于鏈接過(guò)濾的幾點(diǎn)說(shuō)明
- exclude 去掉一些諸如圖片、js、css 等靜態(tài)請(qǐng)求,這些靜態(tài)資源一般會(huì) 單獨(dú)存放,不會(huì)占用服務(wù)器運(yùn)算資源所以壓測(cè)的時(shí)候可以不測(cè)試這些資源
- include 包含內(nèi)容,只抓取百度URL的內(nèi)容,不抓其他的網(wǎng)站的內(nèi)容
- 正則表達(dá)試匹配原理快速入門(mén)說(shuō)明見(jiàn)下頁(yè)圖片說(shuō)明(菜鳥(niǎo)教程)
- 單擊保存按鈕,命名文件名,將對(duì) JMeter 腳本的更改存儲(chǔ)到磁盤(pán)
- 打開(kāi)瀏覽器,將瀏覽器的代理服務(wù)器地址指向 http://localhost:8088?
- 單擊HTTP(S) Test Script Recorder中的Start按鈕,打開(kāi)代理
- 單擊彈框中的確定按鈕
- JMeter的錄制代理將會(huì)開(kāi)啟?
- 在對(duì)應(yīng)的瀏覽器中訪問(wèn)百度首頁(yè)
- 進(jìn)入百度新聞?wù)军c(diǎn)
- 停止JMeter的代理服務(wù)
- 可以看到對(duì)應(yīng)的請(qǐng)求已被錄制到JMeter中了
?
- Demo – JMeter 腳本的錄制過(guò)程,過(guò)濾資源的對(duì)比展示
- 回放驗(yàn)證
- 添加 View Results Tree
- View Result Tree 的用途: 看Req /Resp 詳情?
- 只是為了檢驗(yàn),所以一個(gè)并發(fā)、一次循環(huán)即可
- 單擊開(kāi)始運(yùn)行按鈕?
- 在 View Result Tree 中
- 檢查 請(qǐng)求/響應(yīng) 是否都成功了?
- JMeter 壓測(cè)回放,檢查腳本的正確性?
4.測(cè)試計(jì)劃
- 用來(lái)描述一個(gè)壓力/性能測(cè)試腳本和場(chǎng)景設(shè)計(jì)的基本運(yùn)行單元, 使用JMeter進(jìn)行測(cè)試 的所有內(nèi)容都是基于一個(gè)測(cè)試計(jì)劃
- 用戶(hù)定義變量
- 獨(dú)立運(yùn)行每個(gè)線程組
- 不勾選:各個(gè)線程組并行、隨機(jī)執(zhí)行
- 勾選:線程組按照前后順序來(lái)執(zhí)行
- 主線程組運(yùn)行完成之后運(yùn)行tearDown線程組
- 函數(shù)測(cè)試模式,比如保存響應(yīng)數(shù)據(jù)或者樣本數(shù)據(jù),需要注意的是選擇該功能非常磁盤(pán) 空間
- 添加文件或者jar包,常用于外部功能調(diào)用
- Demo: 測(cè)試計(jì)劃?
5.線程組
- 線程組元件是任何一個(gè)測(cè)試計(jì)劃的開(kāi)始點(diǎn),在一個(gè)測(cè)試計(jì)劃中的所有元件 都必須在某個(gè)線程組下,所有的任務(wù)都是基于線程組。
- 第一部分:在請(qǐng)求取樣器執(zhí)行錯(cuò)誤時(shí)需要執(zhí)行的下一步動(dòng)作
- 第二部分:線程屬性
- 第一部分:在請(qǐng)求取樣器執(zhí)行錯(cuò)誤時(shí)需要執(zhí)行的下一步動(dòng)作
- Continue:繼續(xù)執(zhí)行接下來(lái)的操作
- Start Next Loop:忽略錯(cuò)誤,執(zhí)行下一個(gè)循環(huán)
- Stop Thread:退出該線程(不再進(jìn)行此線程的任何操作)
- Stop Test:等待當(dāng)前執(zhí)行的采樣器結(jié)束后,結(jié)束整個(gè)測(cè)試
- Stop Test Now:直接停止整個(gè)測(cè)試
- 第二部分:線程屬性
- Number of Thread (users):線程數(shù),模擬的用戶(hù)數(shù)量
- Ramp-up Period(in seconds):達(dá)到指定線程數(shù)所需要的時(shí)間。舉例:線程數(shù)設(shè)置 為50,此處設(shè)置為5,那么每秒啟動(dòng)的線程數(shù) => 線程數(shù)50/5 = 10
- Loop Count: 循環(huán)次數(shù)
- Same user on each iteration:每次迭代都用相同的用戶(hù), 勾選該選項(xiàng)則不同次迭代 之間是串行執(zhí)行,不勾選則為并行執(zhí)行。
- Delay Thread creation until needed:當(dāng)線程需要執(zhí)行的時(shí)候,才會(huì)被創(chuàng)建。如果不 選擇這個(gè)選項(xiàng),那么,在計(jì)劃開(kāi)始的時(shí)候,所有需要的線程就都被創(chuàng)建好了?
- Specify Thread lifetime:定義線程調(diào)度時(shí)間
- Duration (seconds): 持續(xù)時(shí)間(秒), 在此選項(xiàng)填入N,說(shuō)明這個(gè)計(jì)劃, 從某個(gè)開(kāi)始時(shí)間算起,執(zhí)行N秒后結(jié)束。(會(huì)忽略 結(jié)束時(shí)間 的選項(xiàng))
- Startup delay (seconds): 啟動(dòng)延遲(秒),在此選項(xiàng)填入N,手動(dòng)點(diǎn)擊 開(kāi)始執(zhí)行計(jì)劃,然后延遲N秒后,計(jì)劃才真正開(kāi)始執(zhí)行。
6.控制器
- 種類(lèi)豐富
- 為請(qǐng)求執(zhí)行提供不同的邏輯控制
- 介紹幾個(gè)常用的邏輯控制器
- 事務(wù)控制器 Transaction Controller
- 條件控制器 If Controller
- 循環(huán)控制器 Loop Controller
- 隨機(jī)控制器 Random Controller
7.JMeter 采樣器/取樣器
- 采樣器(取樣器): 模擬用戶(hù)操作,向服務(wù)器發(fā)出請(qǐng)求的組件;
- 采樣器作用:向服務(wù)器發(fā)送請(qǐng)求,記錄響應(yīng)信息與響應(yīng)時(shí)間;
- 常用采樣器講解:
- HTTP Request Sampler
- Debug Sampler
- BeanShell Sampler
8.JMeter 場(chǎng)景邏輯控制技術(shù)
- 利用JMeter 邏輯控制器
- 實(shí)現(xiàn)測(cè)試業(yè)務(wù)流程中的邏輯變化
- 模擬實(shí)際業(yè)務(wù)場(chǎng)景
- 場(chǎng)景邏輯控制技術(shù)
9.JMeter 監(jiān)聽(tīng)器
- 用來(lái)動(dòng)態(tài)的監(jiān)控JMeter執(zhí)行測(cè)試的過(guò)程,實(shí)時(shí)查看測(cè)試結(jié)果;
- 常用監(jiān)聽(tīng)器:
- 查看結(jié)果樹(shù)
- 聚合報(bào)告
- 后端監(jiān)聽(tīng)器
10.JMeter 定時(shí)器
- 顧名思義,定時(shí)器是用來(lái)控制采樣器發(fā)出請(qǐng)求開(kāi)始時(shí)間的組件
- 常見(jiàn)定時(shí)器:
- 固定定時(shí)器
- 高斯隨機(jī)定時(shí)器
- 吞吐量定時(shí)器
- 并發(fā)定時(shí)器
11.JMeter 斷言元件的使用
- 斷言的作用就是讓 JMeter 程序判斷預(yù)期結(jié)果和實(shí)際結(jié)果是否一致,從而 判定請(qǐng)求是否成功
- 常見(jiàn)斷言:
- 響應(yīng)斷言
- 大小斷言
- XPath 斷言
- Json 斷言
12.JMeter 常用配置元件剖析
- 配置元件的用途
- 常見(jiàn)的配置元件
- 配置元件的執(zhí)行順序
- 配置元件的作用范圍
- 配置元件執(zhí)行結(jié)果的查看
13.JMeter 前置處理器
前置處理器?
- 在取樣器發(fā)送請(qǐng)求之前執(zhí)行,做一些準(zhǔn)備工作,如設(shè)置參數(shù)、環(huán)境變量等
- 常見(jiàn)前置處理器舉例:
- Sample Timeout 前置處理器
- BeanShell 前置處理器
Sample Timeout 前置處理器?
- 設(shè)定請(qǐng)求超時(shí)時(shí)間
- 作用范圍內(nèi)的所有請(qǐng)求均生效
- 單位:毫秒
Beanshell 前置處理器
- 什么是Beanshell
- 小型嵌入式 Java 源碼解釋器
- 基本就是 Java 語(yǔ)言
- BeanShell前置處理器:在Sampler 執(zhí)行之前會(huì)被執(zhí)行
- 直接在JMeter的Beanshell處理器中寫(xiě)代碼生成當(dāng)前時(shí)間戳
- 通過(guò)程序生成當(dāng)前時(shí)間戳
- 將時(shí)間戳值賦值給變量,然后傳遞給后續(xù)的請(qǐng)求樣本?
14.JMeter 后置處理器
- 后置處理器主要用于取樣器執(zhí)行后的提取數(shù)據(jù)操作;
- 常見(jiàn)的后置處理器:
- Json 數(shù)據(jù)提取器
- 正則表達(dá)式數(shù)據(jù)提取器
- XPath 數(shù)據(jù)提取器
15.JMeter 執(zhí)行順序
- JMeter 八大組件
- ?執(zhí)行順序
- 線程組->定時(shí)器->控制器->前置處理器->配置原件->采樣器->后置處理器->斷言->監(jiān)聽(tīng)器
?
16.JMeter 虛擬用戶(hù)管理
~
17.HTTP 請(qǐng)求屬性設(shè)置
~
18.HTTP cookie 設(shè)置
Cookie manager?
- 自定義cookie
- 配置項(xiàng)?
19.HTTP 信息頭管理器
Header manager
- 自定義header 變量
- Header變量值的帶入
20.HTTP 請(qǐng)求設(shè)置
21.監(jiān)聽(tīng)器與測(cè)試結(jié)果
Listener?& 測(cè)試結(jié)果
- Listener 種類(lèi)多樣
- 展示 & 調(diào)試測(cè)試結(jié)果