1. 設為首頁   文化中國網歡迎您~!

          提升測試效率?有了這些接口測試用例+工具都不是問題

          寫在前面:在日常開發過程中,有人做前端開發,有人負責后端開發。接口的主要作用就是連接前后臺。但是,由于前端和后端開發的速度可能不一樣,尤其是后端開發好了,但前端還未開發。這種時候我們需要做接口測試嗎?

          在日常工作中,我們主要測試的都是功能板塊,如果你想真正了解接口測試,那么這篇文章或許能給你一定幫助。

          1、為什么我們要做接口測試?

          首先,我們先來看看測試金字塔(接口測試是在中間部分,底層是單元測試,最頂端是界面測試)。

          從三者的面積大小來看,單元測試和接口測試,才是重點,而界面測試真的是太少。這個面積,你可以理解為代碼覆蓋,也可以理解為測試的工作量。

          這里要提出一個觀點:現在國內公司越來越重視接口測試了。之前的幾年,很多測試資源都放在了界面的測試,今后會逐步放在接口測試功能、性能、自動化和穩定性測試上面。

          白盒測試目前還是開發自己測試,有些大公司,注重軟件產品質量,也會安排一些有代碼能力的測試人員,去輔助和指導開發人員進行單元測試,共同保證軟件的質量。

          2、什么是接口測試?

          這部分內容可以說:前人之述備矣,我就不贅述了。(PS:需要的同學可以回復:接口測試,查看相關文章。)

          3、接口的分類

          在開始做接口測試之前,有必要了解一下接口的分類。這里的分類,主要是HTTP請求方法分類。下面是我們最常見的GET/POST/PUT/DELETE四種方法。工作中接口用到最多是GET和POST方法。(GET和POST方法的具體區別,大家可以自行翻閱圖書查看)

          4、設計接口測試用例

          接下來,我們就一起來聊聊進行接口測試的準備工作。有些同學很好奇,接口測試要流程干嘛?不就是拿著接口文檔直接利用接口測試工具測試嘛。

          其實,如果只是三五個接口,你可以這么做一個臨時的接口測試。但是,如果是上百個接口,或者,你們公司的這個項目,第一次做接口測試,那么,我們還是很有必要遵守測試的流程。

          1)接口測試的流程

          接口測試和功能測試一樣,流程也大致遵守V模型,請看下圖。

          一般來說,接口測試左邊的每個階段,每個公司可能都側重點不同,例如有些公司就沒有需求討論和需求評審這個階段。不管如何,用例設計,這個是少不了,而且是重點,要花時間的階段。只有覆蓋全面的接口測試用例,才能有比較好的測試接口覆蓋率,才會找出更多的接口的Bug。

          2)為什么要寫接口測試用例

          功能測試用例,大家都寫過。接口測試用例,很多人沒有寫過。在寫之前,我們來討論下,為什么要寫接口用例。

          ①理清思路,避免漏測

          ②提高測試效率

          ③跟進測試進度

          ④告訴領導做過

          ⑤跟進重復性工作

          上面五點,結合自己測試實際經驗,應該來說是很好理解和認同的。有用例,就有思路,避免漏掉測試點。跟著測試用例走,一方面,可以避免隨機測試那種沒有目的性的測試,提高測試效率;另一方面,這對領導檢查你的工作、同事詢問你的進度時有很多便利,也能夠提高對接效率。

          3)接口用例設計

          我們在設計接口用例時,主要可以從這四個方面來考慮:功能,邏輯業務,異常,安全。

          ①功能:

          功能是否正常;功能是否按照接口文檔實現;

          舉例:有些添加到購物車,需要登錄才能添加。也就是業務要求不支持游客添加購物車功能,如果設計一個沒有登錄的用戶,然后去測試添加購物車接口,結果接口能添加到購物車,說明功能不正常,不符合需求和接口文檔描述。

          ②邏輯業務:

          是否依賴業務;

          舉例:該接口調用之前,需要調用登錄接口,如果不登錄也能請求數據,不符合業務規則。

          ③異常:

          參數異常和數據異常;

          參數異常:關鍵字參數,參數為空,多,少參數,錯誤參數;

          數據異常:關鍵字數據,數據為空,長度不一致,錯誤數據;

          舉例:不管數據異常還是參數異常,測試點差不多,一個參數有key和value,key表示參數,value表示數據。

          第一,看看參數和數據能不能支持關鍵字,例如Java中的保留關鍵字等等;

          第二,就是參數和數據都為空,看看是否做了判斷;

          第三,參數多和少,例如有兩個參數的接口,你需要設計一個三個參數的用例,一個只有一個參數的用例。數據那邊長度不一致,例如設計很長的字符串是否支持,因為數據庫創建表過程都設置好了每個字段的長度。輸入錯誤的參數和數據,例如故意輸出單詞等等。

          ④安全測試用例設計:

          cookie:有cookie才能獲取數據,如果不帶cookie還有信息返回,說明有問題

          header:正常接口帶header信息,刪除header看是否能夠返回數據。

          唯一識別碼:app手機識別碼,一般是唯一的。

          注:安全測試主要從上面三點檢查。第三個是唯一識別碼,主要是指app上手機的識別碼,一般很少用到,除非很嚴格的接口測試,例如銀行app登錄,需要指紋,而指紋來源手機,一般有一個手機識別碼判斷過程。

          5、接口測試的工具

          目前,市場上有很多支持接口測試的工具。利用工具進行接口測試,能夠提供測試效率。例如,加入讓你一天完成100個接口測試任務,你覺得你加班能否完成。如果有工具,但是不是所有工具都能夠支持你完成這個任務。下面我們就來挑選幾個工具,簡單介紹一下。

          1)fiddler

          首先,這是一個HTTP協議調試代理工具,說白了就是一個抓http包的工具。web測試和手機測試都能用到這個工具。既然是http協議,這個工具也能支持接口測試。稍后文章,我們會專門介紹fiddler這個工具。

          2)postman

          這是一款google工程師開發的一個插件,可以安裝到chrome瀏覽器上。支持不同接口測試請求,能夠管理測試套件和自動化運行,弱點在于,自動化斷言功能不強大。不能和jenkins和代碼管理庫進行持續集成測試。但是,絕對是一個很好的半手工,半自動化測試工具,我一般在寫自動化接口測試用例,會打開postman進行輔助測試和debug。這個工具也會稍后在文章介紹。

          3)wireshak

          這個是一款計算機上抓包工具,支持抓各種包,TCP,UDP,HTTP都支持。如果做底層網絡數據測試,一般都需要用到它。作為接口測試,這個軟件有點不友好。因為刷新數據太快,不好定位每個操作對應的接口。所以,我們不會進行過多介紹這個工具。

          4)soupUI

          這個是一個開源免費、企業版收費的軟件。在國外的接口測試,使用非常多。這個工具能夠支持接口自動化測試和接口性能測試,也能支持和jenkins做持續集成測試。了解一下就可以,自己可以下載一個社區免費版,做一個demo試試。

          5)java代碼做接口測試

          代碼是萬能,筆記工具也是代碼開發出來的。為什么要用代碼做接口自動化測試呢。因為,有些工具功能是有限制,很多公司,需要一些特定的功能,工具不支持,只好用代碼進行開發。

          一般用Java做自動化測試,主要是利用httpclient.jar這個包,然后利用junit或者testng這樣的單元測試工具,進行測試用例的開發,然后在jenkins上創建一個job,進行持續集成測試。

          6)Python代碼做接口測試

          和Java一樣,Python中利用一個很好,功能強大的第三方庫requests,能夠方便都創建接口自動化用例。python下單元測試框架,一般采用unittest。生成測試報告,一般選擇HTMLTestRunner.py。同樣,可以和jenkins做持續集成測試。

          7)LoadRunner

          不要以為LR只能做性能測試,loadrunner同樣可以做接口自動化和接口壓力測試。只是我們很多人,不會利用LR的函數,進行開發接口測試用例。

          8)JMeter

          JMeter同loadrunner一樣,都是以性能測試出名,一般用JMeter也是做接口性能測試。例如java+Jmeter+ant+jenkins做接口性能監聽測試。JMeter如何做接口測試,大家可以網上查下。

          寫在最后:上面說了這么多工具,基本覆蓋了接口功能測試,接口自動化測試,接口性能測試。這里提一下,在Python語言下有一個性能測試工具推薦:Locust。自己百度,安裝下,很簡單的web界面,感覺很不錯,作為一個輕量級的協程測試工具。

          推薦閱讀:物理滅蚊器
          好运来 www.stonedz.com:甘德县| www.aaronbown.com:张家界市| www.sweetarch.com:闸北区| www.bogree.com:南江县| www.zhibo6789.com:库尔勒市| www.klifang.com:武安市| www.0523163.com:靖边县| www.nksl-soccer.org:宁陕县| www.4-card-poker-online.com:通榆县| www.cnzqhc.com:饶河县| www.freemovieswatch.org:鸡东县| www.missionsweb.net:和田市| www.4000359185.com:玉山县| www.doedoehuis.com:进贤县| www.q5653.com:黑水县| www.nadabula.com:灌南县| www.ylahl.com:卫辉市| www.debian-mirror.com:军事| www.bjzhaoming.com:襄汾县| www.standartstill.com:师宗县| www.cp2205.com:阆中市| www.mr-impact-windows.com:延寿县| www.686684.com:灵寿县| www.a-silver.com:尤溪县| www.mixbrand.net:五常市| www.jyxjbj.com:延边| www.kieanna.com:尼木县| www.jonandlaurenwedding.com:宾川县| www.epwiforum.com:东兴市| www.thedivineasana.com:张家港市| www.hg39199.com:都兰县| www.mikenatalizio.com:崇州市| www.pravasiadventure.com:泉州市| www.gxyingjing.com:宾川县| www.hroqbp.com:右玉县| www.airsolution-group.com:九龙县| www.cp8595.com:贞丰县| www.505love.com:耿马| www.faisal1624.com:广西| www.sitegrindermastery.com:乌审旗| www.jsd-iap.com:灵丘县| www.lygwqd.com:瑞金市| www.vizarron.com:定南县| www.chepaijiaoyi.com:龙山县| www.maritimelawyer-china.com:杂多县| www.foteng888.com:天祝| www.13902948564.com:博爱县| www.tattoo-drawings.com:贺州市| www.coralclay.com:阜阳市| www.flooringhelper.com:大港区| www.considerthereasons.com:高尔夫| www.lysyjj.com:肥东县| www.bumibuana.com:沙雅县| www.viralinsocialmedia.com:江孜县| www.ytsldc.com:视频| www.ulisesmoralesabogados.com:桂林市| www.zhibo6789.com:镶黄旗| www.kerala-honeymoon-packages.com:紫云| www.arnatour.com:依兰县| www.turismogay.net:高青县| www.doulasconciencia.com:吴旗县| www.escenamobile.com:大同县| www.barattu.com:鄂伦春自治旗| www.pairtrip.com:万载县| www.zhouyuzheng.com:南阳市| www.e2aa.com:金华市| www.z8689.com:湄潭县| www.chungcuhanoimoi.net:都匀市| www.ottomantranslate.com:当阳市| www.drproductivity.com:江永县| www.chocville.com:潞城市| www.yiju188.com:平利县| www.ao-to-ao.com:曲阜市| www.princesstickets.com:锦州市| www.jsljl.com:宁都县| www.090577.com:临武县| www.wonderfuldealspot.com:宜春市| www.crackpatchsoft.com:香港| www.stuffurama.com:广安市| www.cp9663.com:新竹县| www.chocolate-artist.com:平原县| www.0539jf.com:定陶县| www.healthinsurancenewyork.net:治多县| www.shareuams.com:苍溪县|