Jmeter介紹&測試准備:
Jmeter介紹:Jmeter是軟件行業里面比較常用的接口、性能測試工具,下面介紹下如何用Jmeter做接口測試以及如何用它連接MySQL數據庫。
前期准備:測試前,需要安裝好Jmeter以及jdk並配置好jdk環境變量。
Jmeter下載地址:
http://jmeter.apache.org/download_jmeter.cgi
Jmeter為免安裝版本,下載后進行解壓,雙擊bin目錄下面的jmeter.bat文件即可啟動jmeter .


啟動jmeter之后,會看到左側有一個“測試計划”,測試計划可以理解為一套測試環境,測試計划下面可以添加不同的線程組,相當於不同的測試套。線程組下面可以添加具體的測試用例腳本。
添加線程組的流程:右鍵點擊測試計划->點擊“添加”->點擊Threads(Users)->點擊線程組。


五種請求介紹:這里介紹get/post/帶cookie/帶Header/上傳文件五種請求的測試。
- get請求:get請求是最簡單的請求方式,輸入正確的域名地址或者IP地址 ,添加路徑和請求方式,啟動后即可。
- 第一步:右鍵點擊線程組->點擊添加->點擊Sampler->點擊HTTP請求。

- 第二步:右鍵點擊線程組->點擊添加->監聽器->查看結果樹。

- 第三步:點擊請求->輸入ip地址或者域名->選擇請求方式為GET->輸入路徑->點擊啟動按鈕。


- 第四步:點擊查看結果樹->查看執行結果

- post請求:post請求跟get的區別除了請求方式不同之外,還需要添加請求體,請求體內容多半為json格式。
- 第一步:右鍵點擊線程組->點擊添加->點擊Sampler->點擊HTTP請求——同get請求
- 第二步:右鍵點擊線程組->點擊添加->監聽器->查看結果樹。——已添加的話,這步可以省略。
- 第三步:點擊請求->輸入ip地址或者域名->選擇請求方式為POST->輸入路徑->輸入請求參數->點擊啟動按鈕。
- 第四步:點擊查看結果樹->查看執行結果——同get請求
- 帶cookie的請求:該請求需要添加HTTP Cookie管理器。
- 第一步:右鍵點擊線程組->點擊添加->點擊Sampler->點擊HTTP請求——同get請求
- 第二步:右鍵點擊線程組->點擊添加->監聽器->查看結果樹。——已添加的話,這步可以省略。
- 第三步:右鍵點擊線程組->點擊添加->配置元件->HTTP Cookie管理器->點擊Cookie管理器添加Cookie值。



- 第四步:點擊請求->輸入ip地址或者域名->選擇請求方式為POST->輸入路徑->輸入請求參數->點擊啟動按鈕。——同POST請求


- 第五步:點擊查看結果樹->查看執行結果——同get請求
- 帶Header的請求:該請求需要添加HTTP信息頭管理器。
- 第一步:右鍵點擊線程組->點擊添加->點擊Sampler->點擊HTTP請求——同get請求
- 第二步:右鍵點擊線程組->點擊添加->監聽器->查看結果樹。——已添加的話,這步可以省略。
- 第三步:右鍵點擊線程組->點擊添加->配置元件-HTTP信息頭管理器->填寫信息頭內容



- 第四步:點擊請求->輸入ip地址或者域名->選擇請求方式為GET->輸入路徑->點擊啟動按鈕。——同GET請求


- 第五步:點擊查看結果樹->查看執行結果——同get請求
- 文件上傳的請求:需填寫上傳文件的路徑。
- 第一步:右鍵點擊線程組->點擊添加->點擊Sampler->點擊HTTP請求——同get請求
- 第二步:右鍵點擊線程組->點擊添加->監聽器->查看結果樹。——已添加的話,這步可以省略。
- 第四步:點擊請求->輸入ip地址或者域名->選擇請求方式為POST->輸入路徑->點擊Files Upload->點擊添加按鈕->點擊瀏覽->點擊本地文件->輸入參數名稱->輸入MIME類型->點擊啟動按鈕。

- 第五步:點擊查看結果樹->查看執行結果——同get請求
其他功能介紹:
參數化:所謂參數化就是我們可以將需要傳入的參數寫到某個配置文件中,配置好參數 ,即可使用配置文件內的參數。
- 第一步:添加配置元件->CSV Data Set Config

- 第二步:本地新建一個user.txt的配置文件,輸入用戶名,密碼,逗號隔開,將文件放到Jmeter安裝路徑的/bin目錄下。

- 第三步:點擊CSV Data Set Config,配置變量,輸入文件名稱,定義參數名稱,逗號隔開。

- 第四步:新建請求,步驟同上面的post請求。點擊請求名稱->輸入域名->選擇請求方式->輸入路徑->名稱地方輸入變量名->值的地方輸入在CSV Data Set Config里面配置的變量名->點擊啟動按鈕->查看結果樹。


函數助手:Jmeter具備一個函數助手的功能,里面集成了常見函數的使用,這里介紹下隨機函數Random和時間函數time的使用。
- 函數助手__Random:點擊菜單欄的選項->函數助手對話框->選擇一個功能__Random->輸入范圍的最小值&最大值->點擊“生成”按鈕->將生成的函數變量帶入到請求內。



- 函數助手__time:選項->函數助手對話框->選擇一個功能__time->輸入時間格式->點擊“生成”按鈕->將生成的函數變量帶入到請求內。



關聯:所謂關聯就是讓不同的請求之間的參數形成關聯關系,比如說將上一個請求的出參,當作下個請求的入參,該方法可以讓多個腳本都串連起來,從而達到連跑的效果。
- 新建請求->右鍵點擊請求添加后置處理器->JSON Extractor

- 點擊JSON Extractor->輸入變量名稱->輸入json表達式(json的層級關系用.點號來區分)



- 新建新請求->傳入變量值(傳入上一個請求提取的參數),這樣就將兩個請求的參數關聯起來了。


添加斷言(響應斷言):判斷一個請求是否成功,除了校驗返回碼,有時候還要校驗返回體的內容是否正確,jmeter可以添加斷言來檢查結果。
- 右鍵點擊請求->添加->斷言->響應斷言

- 點擊響應斷言->選擇測試的響應字段->選擇匹配規格->添加匹配的字段


Jmeter操作數據庫:jmeter還可以通過調用jdbc接口對數據庫進行遠程操作,這里以mysql為例。
前期准備:需准備好mysql的jdbc驅動包:mysql-connector-java-5.1.7-bin.jar。
- 添加驅動包:點擊測試計划->點擊“瀏覽”->添加本地驅動包

- 添加線程組:右鍵點擊測試計划->點擊“添加”->點擊Threads(Users)->點擊線程組->修改線程組名稱為“操作數據庫”
- 添加JDBC連接配置:右鍵點擊線程組->添加->配置元件->JDBC Connection Configration

- 配置JDBC連接參數:定義變量名->輸入DatabaseURL->JDBC驅動類->數據庫用戶名->數據庫用戶密碼。
- URL:jdbc:mysql://${host+port}/${database_name}?allowMultiQueries=true&characterEncoding=utf-8(host、port、database_name換成對應的值),allowMultiQueries=true是允許多次查詢,characterEncoding=utf-8是為了防止中文亂碼的情況。
- JDBC驅動類:com.mysql.jdbc.Driver(固定)
- Username:數據庫的用戶名
- Password:數據庫用戶密碼

- 添加JDBC請求:右鍵點擊線程組->添加->Sampler->JDBC Request

- 配置請求:點擊JDBC請求->輸入配置的變量名->選擇查詢類型(Callable代表支持所有的sql語句)->輸入數據庫語句。

- 添加查看結果樹->啟動->查看執行結果(返回結果為綠色代表執行成功)。


Jmeter使用常見問題:
- jmeter jdbc 中文亂碼:連接池url后面添加characterEncoding=utf-8

- 接口返回體內容有亂碼情況:
- 進入jmeter的/bin目錄,打開jmeter.properties
- 找到"#sampleresult.default.encoding=ISO-8859-1"
- 去掉#,將ISO-8859-1修改成utf-8
- 重啟jmeter

- win10系統上傳文件接口報錯的問題:將需要上傳的文件直接放到jmeter安裝目錄的/bin目錄下。
