Jmeter模擬一群用戶向目標服務器發(fā)起請求痒留,然后以圖標的形式返回目標服務器的功能佩憾,性能的統(tǒng)計數(shù)據(jù)挚币。
什么是一個測試計劃
測試計劃可以看作是測試用例運行的容器艾凯。決定了測試什么和如何測試摘投。一個完整的測試計劃由一個或多個如下元素的組成
線程組煮寡,邏輯Controller,sample-generating controllers,監(jiān)聽器犀呼,定時器幸撕,斷言,還有配置元素外臂。一個測試需要至少一個線程組
剛打開Jmeter時坐儿,Jmeter中有兩個節(jié)點
測試計劃節(jié)點:測試計劃放置的地方
工作臺節(jié)點:它簡單地提供了臨時的地方來存放暫時不需要的測試元素,用來復制粘貼宋光,當你保存你的測試計劃時貌矿,工作臺節(jié)點并不隨之保存。
每一個線程組罪佳,我們可能會存放如下元素的一個或多個組合逛漫,Sampler,邏輯控制器赘艳,配置元件酌毡,監(jiān)聽器和定時器。每一個Sampler可以被一個或多個前置處理器處理蕾管,然后隨后有后置處理器和斷言枷踏。
線程組
線程組是測試計劃的入口。就像它的名字那樣掰曾,線程組元素控制著Jmeter在測試中使用的線程數(shù)旭蠕。我們通過如下的操作來控制線程組:
- 設定線程的數(shù)目
- 設定ramp-up time(Jmeter在多長的時間內建立全部的線程)
- 設定測試次數(shù)
線程組的操作界面有著如下的元素
- 在取樣器錯誤后執(zhí)行的操作,萬一在測試執(zhí)行中出現(xiàn)的問題,你可以讓它接著
- 繼續(xù)執(zhí)行 測試中的下一個元素
- 停止線程 停下當前的線程
- 停止測試 完全停止測試
- 線程的數(shù)目 跟服務器或者應用交互的線程數(shù)
- Ramp-Up Period 定義了Jmeter把全部的線程建立所需的時間
- 循環(huán)次數(shù) 定義了測試執(zhí)行的次數(shù)
- 調度器復選框 一旦選定下梢,就可以配置調度器
- 調度器配置 配置測試的啟動時間和結束時間
控制器
Jmeter有兩種控制器客蹋,采樣器和邏輯控制器
采樣器:
采樣器允許Jmeter向服務器發(fā)送特定類型的請求,它們模擬一個頁面向目標服務器發(fā)起請求孽江。舉個例子讶坯,你可以添加一個HTTP 請求采樣器,如果你需要對一個HTTP服務執(zhí)行 POST,GET或是DELETE操作
邏輯控制器
邏輯控制器允許你控制在線程中取樣器的執(zhí)行順序岗屏。邏輯控制器可以控制任何它們子元件的請求辆琅。例子比如 ForEach Controller, While Controller, Loop Controller, IF Controller, Run Time Controller, Interleave Controller, Throughput Controller, Run Once Controller.
測試片段
測試片段是一個特殊的元素,它和線程組在同一個級別这刷。它從線程組分離出來婉烟。除非被Module控制器或者是內在的控制器引用,否則不會執(zhí)行暇屋。這個元素被純粹用來復用代碼
監(jiān)聽器
監(jiān)聽器允許你以圖似袁,表,樹或者是簡單的日志文本查看取樣器的結果咐刨。提供了可視化的數(shù)據(jù)昙衅。
監(jiān)聽器可以在測試的任何地方添加。以下的監(jiān)聽器Jmeter都支持
- 郵件觀察儀
- 聚合報告
- 用表格查看結果
- 生成概要結果
- 斷言結果
- 查看結果樹
- 圖形結果
- 保存響應到文件
- 取樣結果保存配置
定時器
默認地定鸟,一個Jmeter線程在兩個取樣器執(zhí)行的中途并不停歇而涉。這可能并不是你想要的。你可以添加一個定時器允許你在每個請求中途停歇联予。
- 常數(shù)定時器
- 滿足高斯分布的定時器
- 標準隨機定時器
- 常數(shù)吞吐量定時器
- 同步定時器
- 泊松隨機定時器
斷言
斷言允許你在定時器執(zhí)行之后添加一些驗證操作啼县。使用斷言你可以保證你的應用返回正確的數(shù)據(jù)。支持如下的斷言
- Beanshell 斷言
- BSF 斷言
- 比較斷言
- JSR223 斷言
- 響應斷言
- 持續(xù)時間斷言
- 大小斷言
- XML斷言
- MD5Hex斷言
- HTML斷言
- XPath斷言
- XML格式斷言
配置元件
配置元件允許你創(chuàng)建采樣器使用的默認變量沸久。用來添加或者修改采樣器創(chuàng)建的請求季眷。
它們在被放置的區(qū)域開頭執(zhí)行,提前于該放置區(qū)域里的所有采樣器麦向。支持如下的配置元件
- 計數(shù)器
- FTP 默認請求
- HTTP 鑒權控制器
- HTTP 緩存控制器
- HTTP Cookie 控制器
- HTTP 代理服務器
- HTTP 默認請求
- HTTP 頭部管理器
- Java 默認請求
- Keystore 配置
- JDBC 連接配置
- 登陸配置
- 用戶定義變量
- 隨機變量
前置處理器
前置處理器是采樣器執(zhí)行之前執(zhí)行的瘟裸。用來更改采樣器的請求,或者更新不從響應中提取的變量诵竭。支持如下的前置處理器
- HTML連接解析
- HTML URL 重寫更改器
- HTTP 用戶參數(shù)更改器
- 用戶參數(shù)
- JDBC前置處理器
- JSR223前置處理器
后置處理器
后置處理器在采樣器執(zhí)行完之后執(zhí)行话告。這個元素通常用來處理響應數(shù)據(jù),比如獲得一個用來之后使用的值卵慰。支持如下的后置處理器
- 正則表達式提取
- XPath 提取
- 結果狀態(tài)處理
- JDBC 后置處理器
- BSF 后置處理器
- CSS/JQuery 提取器
- BeanShell后置處理器
- Debug 后置處理器
測試元件的執(zhí)行順序
- 配置元件
- 前置處理器
- 定時器
- 采樣器
- 后置處理器
- 斷言
- 監(jiān)聽器