使用工具:
Fiddler、
Jmeter
測試步驟:
1. 確認接口
從開發人員那里獲取接口文檔,接口文檔應該包括完整的功能接口、接口請求方式、接口請求URL、接口請求參數、接口返回參數。
如果當前項目沒有接口文檔,則可以使用fiddler對APP進行抓包確認。
fiddler對
手機進行抓包的方法可以參考:http://blog.csdn.NET/whorus1/article/details/50673740
在手機上對APP進行操作,然后在Fiddler中可以抓取對應的網絡交互信息(一個功能中可能設計多個接口的交互)。在抓取的信息中可以看到接口請求方式、接口請求URL、接口請求參數、接口返回參數。
2. 在Jmeter中編寫測試腳本
(1)在測試計划中添加一個線程組(在測試計划上右擊,添加-Threads-線程組)。
可以將線程組的名稱改成測試項目的名稱。
在
性能測試時可以通過配置線程屬性中的參數來控制並發用戶數:
線程數:虛擬用戶數,即並發數,一個線程表示一個虛擬用戶;
Ramp-Up Period:所有線程啟動的時間,單位s。通過這個參數可以設置每個線程間的啟動間隔,防止給電腦造成太大性能壓力;
循環次數:測試循環的次數,如果勾選了“永遠”,那么所有線程會一直發送請求,直到手動停止運行腳本;
(2)在線程組中添加HTTP請求(在線程組上右擊,添加-Sampler-HTTP請求)。
可以將名稱改為待測接口的名稱;
在Web服務器中填入請求服務器的地址和端口號;
協議中填入HTTP請求的協議,可以是http或https,我們一般用的都是http;
在方法中選擇HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE;(我們項目中的接口方法使用的主要是GET和PUT,在目前易戶網的項目中由於APP不直接和服務器交互,中間有一個統一接口平台,所以GET方法的接口請求也要使用POST進行交互。)
在路徑中填入接口請求的URL;
請求參數:如果是GET方法的請求,請求參數直接寫在URL后面即可;如果是POST的方法,則需要在Body Data中填入包含請求參數的數據(Body Data可以從Fiddler抓的包中獲取,將Fiddler抓取的到數據包中Inspectors-TextView中的數據復制到Body data中即可);
(3)在線程組中添加HTTP信息頭管理器(在線程組上右擊,添加-配置元件-HTTP請求信息頭管理器)。
配置如下:
(4)添加監聽器(在線程組上右擊,添加-監聽器-XXX)。
主要配置完成了,需要添加監聽器以查看測試結果。一般我們使用查看結果樹和聚合報告查看。
查看結果樹:在結果樹中會以樹形結構展示每個接口請求的測試結果,包括取樣器結果、請求、響應數據,在響應數據中可看到網絡側返回的數據,可以以接口文檔中期望返回的參數做比較以判斷返回是否正確。在結果樹中通過顏色可以直觀的看到
接口測試的結果,綠色為通過,紅色為失敗。
聚合報告:從聚合報告中我們可以獲取到比較多的信息,包括接口的響應時間、吞吐量、通過率等,在接口的性能測試中很有用。
表中參數的含義如下:
(5)添加響應斷言(添加-斷言-響應斷言)。
查看測試結果時我們會發現有時候網絡側返回數據不符合要求時Jmeter給出的結果仍是通過的。這時候我們需要通過斷言來判斷網絡的返回數據是否符合要求。
比如,我們可以添加一個斷言來檢查返回信息中是否包含關鍵字“errMsg”來判斷錯誤信息:
首先添加一個相應斷言,在要測試的響應字段中選擇響應文本,在模式匹配規則中選擇包括,勾選否,在要測試的模式中添加提一條,輸入關鍵字“errMsg”;
意思是檢查網絡返回結果中不包含“errMsg”的才會判定為通過。
另外我們還可以從監聽器中添加一個斷言結果,在斷言結果中可以查看斷言的詳細返回信息。
3. 其他補充
使用CSV Data Set Config定義變量。
舉個例子,我們想要測試多用戶登陸時要怎么做?可以在線程屬性中配置多個線程,但是這樣只是同一個用戶多次登錄,多個不同的用戶需要輸入不同的用戶名密碼。當然我們可以寫多個登錄的HTTP請求,每個請求輸入不同的參數,但是這樣太傻了。
這個時候我們可以通過CSV DataSet Config來定義兩個變量代表用戶名和密碼,然后傳入不同的值即可實現多用戶的登錄:
1、我們在登錄的case中添加一個CSV DataSet Config(添加-配置元件-CSV Data Set Config)。
Filename:指定讀取用戶名和密碼的文件,我們會將所有的用戶名密碼寫到該文件中;
FileEncoding::寫入用戶名密碼的文件編碼格式,不寫的時候默認為ANSI
VaribleNames:定義文本文件中的變量名用戶名=user和密碼=pwd,變量之間逗號分隔。
2、我們到上面Filename的路徑下創建該文件並寫入用戶名密碼,用戶名和密碼之間用逗號分開,不同用戶名密碼之間換行。
3、到Jmeter的腳本中將原本的用戶名密碼改為變量名,由於我們使用的是Post方法,所以到Body Data中修改:











