在接口測試第一課中,學習了postman和jmeter兩種工具。個人覺得postman界面簡潔合理,入手較快,可以做一些簡單的接口測試,但jmeter功能更強大。在這篇文章中,主要對jmeter的操作進行一個記錄。
1、安裝和配置環(huán)境變量
jmeter安裝包一般不需要特地進行安裝,只需要將安裝包解壓后放在平時安裝軟件的目錄下即可。接下來需要安裝jdk并配置環(huán)境變量。
a,jdk環(huán)境變量配置
右鍵計算機屬性->高級系統(tǒng)設置->系統(tǒng)屬性->高級->環(huán)境變量->添加如下的系統(tǒng)變量:
變量名:JAVA_HOME
變量值:D:\Program Files\Java\jdk1.8.0_92(jdk安裝路徑)
變量名:path(該變量一般是已存在的,直接在前方添加變量值即可)
變量值:;%JAVA_HOME%\bin;
變量名:CLASSPATH
變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.不能漏)
b,jmeter環(huán)境變量配置
變量名:JMETER_HOME
變量值:C:\Program Files\apache-jmeter-2.11
變量名:CLASSPATH
變量值:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;
創(chuàng)建完成之后點擊“確定”即可。
2、使用jmeter及前期準備
找到jmeter的安裝文件,打開文件夾“bin”,找到一個叫“jmeter.bat”的文件,雙擊打開,如果環(huán)境變量配置沒問題,即可順利打開jmeter。

上圖就是jmeter的初始界面。
在使用jmeter的過程中,可能會出現(xiàn)亂碼的情況。此時打開“bin”目錄下的文件“jmeter.properties”,找到字段“sampleresult.default.encoding”
,將前面的注釋符“#”去掉,字段等號后方的數(shù)據(jù)修改為“utf-8”即可。
3、創(chuàng)建HTTP請求并完成基礎測試
首先右鍵測試計劃,選擇添加-threads-線程組。線程組添加成功后,再右鍵線程組,選擇添加-sample-HTTP請求。



這樣即可進入測試配置界面。
利用URL填寫好“服務器名稱或IP”&“路徑”后,根據(jù)文檔提供的信息,填寫端口號、協(xié)議,選擇請求方式。這樣基礎的配置就完成了,接下來再根據(jù)入?yún)⒏袷竭M行參數(shù)的添加或輸入。當然也會有需要添加信息頭,Cookie的情況。
a,當測試時只需要配置基礎的入?yún)?br>

該接口請求方式是get,這個根據(jù)文檔說明的配置就好。圖中的服務器名稱是一個自定義參數(shù),當在測試中需要多次使用到該地址時,可以先配置一個自定義參數(shù),以后直接調(diào)用該參數(shù)即可。用戶參數(shù)在“配置原件”中,只要右鍵后選擇添加可以看到“配置原件”,就都可以在該級別下定義參數(shù),點擊選擇配置原件-用戶自定義參數(shù)。就可以看到如下圖的界面。

選擇添加,輸入?yún)?shù)名稱和參數(shù)代表的數(shù)據(jù)即可。在不同級別下添加的用戶自定義函數(shù)所能生效的范圍也不一樣。
在請求參數(shù)只是簡單的參數(shù)對應數(shù)值時,只需要在請求配置界面的下方,默認的“parameters”模塊,點擊添加,輸入?yún)?shù)和對應的數(shù)據(jù)即可。
配置完進行請求時,點擊界面上方的運行按鈕即可。

運行后需要查看測試結果,在jmeter中需要利用“察看結果樹”的功能來展示請求結果。


上圖可以看到這個請求是成功了的,請求結果也可能是錯誤的。如果請求結果錯誤且按照測試計劃該請求應該成功時,可以根據(jù)請求、響應數(shù)據(jù)等檢查錯誤原因。
b,需要添加headers的請求
在配置原件中,選擇“HTTP信息頭管理器”,為該測試任務添加文檔中要求的信息頭數(shù)據(jù)即可。

進入界面后,點擊添加,按照文檔提供的信息輸入信息頭的key和value即可。

c,需要添加cookie的請求
和信息頭的處理類型,在配置原件中選擇“HTTP cookie管理器”即可。

然后根據(jù)文檔信息,填寫cookie的key和value。還需要填寫域數(shù)據(jù),這個和請求配置中的服務器名稱一致即可。

d,輸入?yún)?shù)為json格式

只需要在輸入?yún)?shù)的位置選擇“body data”,再在輸入框中填入json格式的請求參數(shù)即可,一般文檔中會有例句。
e,文件上傳

在輸入?yún)?shù)的位置,選擇“Files Upload”,點擊“添加”可以直接輸入文件路徑,點擊“瀏覽”可以查找到文件后選擇即可。
注:系統(tǒng)為win8或者win10的jmeter用戶,測試時最好將需要上傳的文件放在jmeter安裝包的bin目錄下,否則可能會報錯。
注:如果文件已經(jīng)放在了安裝包的bin目錄下,就只需要如圖中所示填寫文件名即可。
4、參數(shù)化
a,用戶自定義的變量
在第3點中已經(jīng)提到過。
b,函數(shù)生成器
如果需要生成一個隨機的數(shù)據(jù),可以利用函數(shù)助手。


選擇功能時一般使用圖中的兩種功能。第一種可以生成某個范圍內(nèi)的隨機一個數(shù)字,第二種可以生成隨機的一個時間。

填寫最小值和最大值,點擊“生成”即可產(chǎn)生一個函數(shù),可以直接使用。

填寫想要的時間格式,生成函數(shù),在使用時該函數(shù)會生成一個隨機的這樣格式的時間數(shù)據(jù)。
d,文件參數(shù)化
如果在同一個測試任務中,需要輸入不同的數(shù)據(jù)進行測試,可以先將這些數(shù)據(jù)儲存在文件中,然后在填寫入?yún)⒅禃r直接使用這些文件。在配置好線程組的請求次數(shù)后,會再每次請求時自動調(diào)用數(shù)據(jù)。

首先添加“CSV Data Set Config”這個配置元件。

filename直接填寫文件名稱即可(該文件放在jmeter安裝包的bin目錄下);
variable names是該文件的變量名,隨意定義即可;
delimiter是文件中數(shù)據(jù)的分隔符,比如要傳入登錄名和密碼兩個參數(shù),在文檔中就需要記錄兩個參數(shù),這兩個參數(shù)鍵以某個符號進行分隔,默認為英文逗號。
每次輸入的數(shù)據(jù)換行保存。

使用方式如下圖:

5、鏈接數(shù)據(jù)庫并操作
鏈接數(shù)據(jù)庫一般需要一些插件,在網(wǎng)上都可以下載。鏈接MySQL數(shù)據(jù)庫時需要插件“mysql-connector-java-5.1.7-bin.jar”,將其復制到jmeter安裝目錄下的bin目錄下。
然后在測試計劃中添加該插件。

接下來就可以進行數(shù)據(jù)庫鏈接了。首先需要添加“JDBC Connection Configuration”這個配置元件。


上圖中variable name是必填的,隨便定義一個變量名即可。
上圖中database url有固定格式:
jdbc:mysql://host:port/{dbname}?allowmultiqueries=true
Jdbc driver class則是驅(qū)動,不同數(shù)據(jù)庫驅(qū)動不同,mysql為:
com.mysql.jdbc.Driver
然后輸入賬號密碼即可完成鏈接配置。
接下來可以對數(shù)據(jù)庫進行增刪改查等操作了。先添加一個“jdbc request”配置元件。


上圖中variable name直接輸入數(shù)據(jù)庫鏈接中配置的變量名即可。
然后在query type中選擇上圖中那一項,這樣所有的MySQL語句才能運行。接下來輸入MySQL命令語句,點擊運行即可。當然運行結果還是在“察看結果樹”中觀察。
6、文件下載
一般的HTTP請求只能找到該圖片,但是下載圖片需要保存,此時就需要先配置“BeanShell Sampler”,在sample下選擇即可。

然后需要編寫保存的程序語言,是Java格式的。
import java.io.*;
byte[] result = prev.getResponseData();
String file_name = "C:\Users\john\Desktop\picture.jpg";//該路徑需要改為自己想要保存圖片的地址
File file = new File(file_name);
FileOutputStream out = new FileOutputStream(file);
out.write(result);
out.close();
接下來再配置HTTP請求。

接下來點擊運行,順利成功的話該圖片就會保存在桌面上了。