(廣州華南商貿職業學院,廣東 廣州 510000)
在通常的產品測試過程中,一般都會采用功能測試方法去發現bug,為什么要做接口測試呢?現今的軟件產品架構不斷復雜化,傳統的功能測試已經難以滿足系統發展的需求。根據歷史數據模型推算,底層1個bug大約會引起上層8個bug,而底層的bug很容易引起全網宕機,可見接口測試的重要性。接口測試還可以自動化,相對于功能測試是一種低成本且高效的測試方法[1]。如果測試人員沒有代碼基礎,無法進行測試腳本的編寫、運行、維護,也可以使用接口測試工具進行接口測試。掌握接口測試工具的使用方法,對于接口測試工來說是很重要的。比如進行Web前端操作時,使用抓包工具抓取實際的請求數據。
軟件接口一般是指HTTP網絡協議接口,目前有很多HTTP接口模擬工具,其原理是將用戶填寫的請求數據按照協議的要求組裝成請求報文發送給服務器,然后接收服務器的響應數據并進行解析和展示。Fiddler是一款典型的桌面抓包工具,其功能非常強大,既可以應用于Web瀏覽器客戶端,又可以應用于移動端的手機應用APP[2-3]。用戶可以在Fiddler的官網下載該軟件(http://www.telerik.com/fiddler);安裝時需要下載證書才能抓到https請求的數據包。配置Fiddler捕獲https會話如圖1所示。
在Fiddler工作界面圖(見圖2)中,(1)URL列指被請求的特定頁面或者端點(如果使用了隧道的話是指根URL)。但是很多后端服務會使用看起來不熟悉的URL,比如,docs.live.net:443實際上是微軟OneDrive。(2)進程(Process)列是指哪個應用發出給定的請求。例如Explorer這個進程,它指的是Windows Explorer(而不是IE)。Windows Explorer基本上就是Windows自己,其流量往往是Windows刷新live title的數據引起的。(3)協議列是指軟件接口的網絡協議,常見的協議有Http,https兩種。(4)狀態碼列指接口響應狀態的代碼,200代表成功;400代表失敗;500代表服務器端的問題。

圖1 配置Fiddler捕獲https會話
一般在使用Fiddler工具進行錄制Web應用操作前需設置過濾條件,如設置過濾域名,設置過濾css、js、圖片等靜態素材,過濾不成功的狀態碼,減少捕獲無用的會話。
首先需要下載1個dll擴展文件:JmeterExport.dll(這個文件是為了擴展Fiddler的導出功能,支持導出JMeter使用的.jmx格式文件)[4],拷貝至FiddlerImportExport目錄。
(1)打開Chrome瀏覽器,錄制操作:先打開百度首頁www.baidu.com,然后進行一次搜索,如搜索javascript,可以看到Fiddler經過過濾之后,只抓取了對Hosts:baidu.com的操作。
(2)對于請求,可以添加相關注釋:選中Http請求→右鍵選中并點擊Comment,找到訪問首頁及搜索的Http請求,分別添加注釋。
(3)在Fiddler中刪除非必需的Http請求,只保留訪問百度首頁及搜索的請求:右鍵選擇Remove→Selected Sessions。

圖2 Fiddler工作界面
(1)在Fiddler中選擇File→Export Sessions→All Sessions。
(2)選擇導出類型為JMeter,點擊Next按鈕保存即可。
(1)運行Jmeter,打開剛才保存的jmx文件,可以看到這里只有兩個Http請求,分別是打開百度首頁及搜索。
(2)新建線程組(點擊測試計劃,右鍵選擇Threads(users)→線程組),并將這兩個Ht t p請求拖到線程組下。
(3)添加查看結果樹及概要報告Summary Report:點擊線程組,右鍵選擇添加→監聽器→查看結果樹/Summary Report。
(4)在JMeter中啟動測試即可。
通過Fiddler抓包,單一接口可以復制到jmeter中進行接口測試;如果抓包獲取了大量的接口,通過安裝插件JmeterExport可以支持導出Jmeter文件,快速實現接口轉換成jmx文件。Fiddler還支持設置過濾條件,極大地提高了jmx文件的利用率。