(廣州華南商貿(mào)職業(yè)學(xué)院,廣東 廣州 510000)
在通常的產(chǎn)品測試過程中,一般都會采用功能測試方法去發(fā)現(xiàn)bug,為什么要做接口測試呢?現(xiàn)今的軟件產(chǎn)品架構(gòu)不斷復(fù)雜化,傳統(tǒng)的功能測試已經(jīng)難以滿足系統(tǒng)發(fā)展的需求。根據(jù)歷史數(shù)據(jù)模型推算,底層1個(gè)bug大約會引起上層8個(gè)bug,而底層的bug很容易引起全網(wǎng)宕機(jī),可見接口測試的重要性。接口測試還可以自動化,相對于功能測試是一種低成本且高效的測試方法[1]。如果測試人員沒有代碼基礎(chǔ),無法進(jìn)行測試腳本的編寫、運(yùn)行、維護(hù),也可以使用接口測試工具進(jìn)行接口測試。掌握接口測試工具的使用方法,對于接口測試工來說是很重要的。比如進(jìn)行Web前端操作時(shí),使用抓包工具抓取實(shí)際的請求數(shù)據(jù)。
軟件接口一般是指HTTP網(wǎng)絡(luò)協(xié)議接口,目前有很多HTTP接口模擬工具,其原理是將用戶填寫的請求數(shù)據(jù)按照協(xié)議的要求組裝成請求報(bào)文發(fā)送給服務(wù)器,然后接收服務(wù)器的響應(yīng)數(shù)據(jù)并進(jìn)行解析和展示。Fiddler是一款典型的桌面抓包工具,其功能非常強(qiáng)大,既可以應(yīng)用于Web瀏覽器客戶端,又可以應(yīng)用于移動端的手機(jī)應(yīng)用APP[2-3]。用戶可以在Fiddler的官網(wǎng)下載該軟件(http://www.telerik.com/fiddler);安裝時(shí)需要下載證書才能抓到https請求的數(shù)據(jù)包。配置Fiddler捕獲https會話如圖1所示。
在Fiddler工作界面圖(見圖2)中,(1)URL列指被請求的特定頁面或者端點(diǎn)(如果使用了隧道的話是指根URL)。但是很多后端服務(wù)會使用看起來不熟悉的URL,比如,docs.live.net:443實(shí)際上是微軟OneDrive。(2)進(jìn)程(Process)列是指哪個(gè)應(yīng)用發(fā)出給定的請求。例如Explorer這個(gè)進(jìn)程,它指的是Windows Explorer(而不是IE)。Windows Explorer基本上就是Windows自己,其流量往往是Windows刷新live title的數(shù)據(jù)引起的。(3)協(xié)議列是指軟件接口的網(wǎng)絡(luò)協(xié)議,常見的協(xié)議有Http,https兩種。(4)狀態(tài)碼列指接口響應(yīng)狀態(tài)的代碼,200代表成功;400代表失??;500代表服務(wù)器端的問題。
圖1 配置Fiddler捕獲https會話
一般在使用Fiddler工具進(jìn)行錄制Web應(yīng)用操作前需設(shè)置過濾條件,如設(shè)置過濾域名,設(shè)置過濾css、js、圖片等靜態(tài)素材,過濾不成功的狀態(tài)碼,減少捕獲無用的會話。
首先需要下載1個(gè)dll擴(kuò)展文件:JmeterExport.dll(這個(gè)文件是為了擴(kuò)展Fiddler的導(dǎo)出功能,支持導(dǎo)出JMeter使用的.jmx格式文件)[4],拷貝至FiddlerImportExport目錄。
(1)打開Chrome瀏覽器,錄制操作:先打開百度首頁www.baidu.com,然后進(jìn)行一次搜索,如搜索javascript,可以看到Fiddler經(jīng)過過濾之后,只抓取了對Hosts:baidu.com的操作。
(2)對于請求,可以添加相關(guān)注釋:選中Http請求→右鍵選中并點(diǎn)擊Comment,找到訪問首頁及搜索的Http請求,分別添加注釋。
(3)在Fiddler中刪除非必需的Http請求,只保留訪問百度首頁及搜索的請求:右鍵選擇Remove→Selected Sessions。
圖2 Fiddler工作界面
(1)在Fiddler中選擇File→Export Sessions→All Sessions。
(2)選擇導(dǎo)出類型為JMeter,點(diǎn)擊Next按鈕保存即可。
(1)運(yùn)行Jmeter,打開剛才保存的jmx文件,可以看到這里只有兩個(gè)Http請求,分別是打開百度首頁及搜索。
(2)新建線程組(點(diǎn)擊測試計(jì)劃,右鍵選擇Threads(users)→線程組),并將這兩個(gè)Ht t p請求拖到線程組下。
(3)添加查看結(jié)果樹及概要報(bào)告Summary Report:點(diǎn)擊線程組,右鍵選擇添加→監(jiān)聽器→查看結(jié)果樹/Summary Report。
(4)在JMeter中啟動測試即可。
通過Fiddler抓包,單一接口可以復(fù)制到j(luò)meter中進(jìn)行接口測試;如果抓包獲取了大量的接口,通過安裝插件JmeterExport可以支持導(dǎo)出Jmeter文件,快速實(shí)現(xiàn)接口轉(zhuǎn)換成jmx文件。Fiddler還支持設(shè)置過濾條件,極大地提高了jmx文件的利用率。