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