一.簡介
JMeter 是 Apache 組織使用 Java 開發的一款測試工具。
1、可以用于對服務器、網絡或對象模擬巨大的負載
2、通過創建帶有斷言的腳本來驗證程序是否能返回期望的結果
二.優缺點
優點:
-
開源、免費
-
跨平臺
-
支持多協議
-
小巧
-
功能強大
缺點:
-
不支持IP欺騙
-
使用JMeter無法驗證JS程序,也無法驗證頁面UI,所以要和Selenium配合來完成Web2.0應用的測試
三.安裝與啟動
-
JMeter 是使用 Java 編寫的,必須安裝 Java 環境
JDK: Java SE Development Kit (java 開發工具包,為 JAVA 程序開發提供環境支持)
JRE: Java Runtime Environment (java 運行環境,為 JAVA 程序運行提供環境支持)
-
下載并安裝 JMeter
下載: Apache JMeter - Download Apache JMeter 安裝: 直接解壓縮即可
-
啟動
bin目錄下的 ApacheJMeter.jar 雙擊啟動即可
四.JMeter的基本使用
設計接口三要素
-
測試計劃--右鍵--線程--添加線程組
-
線程組--右鍵--取樣器--http請求
-
測試計劃--右鍵--添加監聽器--查看結果樹
-
點擊運行,查看結果
五.JMeter線程組相關
進 程: 正在運行的程序
線 程: 是進程中的執行線索
線程組: 進程中有許多線程,為了方便管理,可以對線程按照性質分組,分組的結果就是線程組
PS: 三者關系,一個進程可以包含多個線程組,一個線程組可以包含多個線程
六.JMeter并發執行和順序執行
并發執行:多個線程同時執行,不知道誰先結束
順序執行:多個線程順序執行
在測試計劃中勾選上該選項,就可以讓線程按照添加順序執行
執行結果
七.JMeter兩個特殊線程組
setUp線程組:最優先執行的線程組
tearDown線程組:最后執行的線程組
八.JMeter線程組相關屬性
九.http請求默認值
將被復用的內容進行封裝。
十.信息頭管理器
新增修改實現時提交的數據是 JSON 格式的,需聲明提交的數據的內容類型。
新增時在消息體數據中添加數據:
啟動前要添加Http信息頭管理器,否則會出現下面類似情況:
添加Http信息頭管理器:
Content-Type application/json;charset=utf-8(中間的標點符號為分號,圖片中:為書寫錯誤)
十一.參數化
當提交的數據量較大,種由程序驅動代替人工驅動的數據設計方案,提高腳本的編寫效率以及編寫質量。
1.用戶定義的變量
調用方式:${變量名}
2.CSV數據文件設置
CSV :逗號分隔值,是一種簡潔且常見的數據存儲格式,存儲語法如下圖所示
3.用戶參數
4.函數
常見函數: __counter 計數器函數 :TRUE(每個用戶都有自己的計數器) FALSE(所有用戶共用一個計數器)
__Random 隨機數函數: 參數1:取值范圍最小值(包含) 參數2:取值范圍最大值(包含)
__time 獲取當前時間的函數 :無參: 獲取的是距離 1970/01/01 00:00:00 的毫秒值
1、__counter函數
2、__Random函數
3、__time函數
不設置值:
設置值:
十二.直連數據庫
通過直連數據庫讓程序代替接口訪問數據庫,如果二者預期結果不一致,就找到了程序缺陷。
具體步驟:
-
JMeter 不具備直連數據庫功能,必須整合第三方(jar包)實現
-
配置數據庫的連接 JDBC Connection Configuration
-
通過 JDBC Request 請求向數據庫發送 SQL語句并接收提取響應結果
將查詢到的結果作為接下來請求的路徑:
添加調試取樣器
在 JDBC Request 中添加
添加http請求
十三.斷言
讓程序代替人工判斷響應結果是否符合預期
分類: 響應斷言 = 斷言狀態碼和響應體 大小斷言 = 判斷響應內容的字節長度 斷言持續時間 = 判斷響應時間
1、響應斷言
2、大小斷言
3、斷言持續時間