很多團隊想開展接口測試、接口自動化,但是不知道怎么樣進行前期準(zhǔn)備。
有時候你在面試的時候面試官也會問這種類型的問題。
那么如果一個沒做接口測試的團隊,突然決定要開展接口測試,那么要做些什么準(zhǔn)備呢?
1. 接口文檔
要做接口測試肯定必須要有一個關(guān)于當(dāng)前系統(tǒng)中主要接口的文檔(越全面越好)。
有人說,不是可以抓包么?當(dāng)然可以抓包,但是你抓包能把整個系統(tǒng)需要測試的接口都捕獲到了?就算可以,這個成本也太具體了吧!相當(dāng)于給你一個數(shù)據(jù)庫,有100多張表,要你去猜這些表和表中字段的意思。
有接口文檔,才有指導(dǎo)性的文檔,也許這個文檔并不全面,但是至少有主要接口的描述、參數(shù)、響應(yīng)等。這樣測試才能有一定的目的性,再配合抓包工具,也能夠開展起來。但是完全沒有,只能呵呵了。
當(dāng)然一般團隊中都會有接口文檔,因為這個文檔主要供前后端開發(fā)進行協(xié)作的,不只是用于接口測試。一般團隊會使用 swagger 等自動文檔生成工具,或者使用小幺雞、showdoc 等接口文檔管理工具。
如果沒有,可以嘗試搭建一個 showdoc 之類的,簡單易用,但是需要簡單學(xué)學(xué) markdown 語法。
2. 數(shù)據(jù)庫設(shè)計文檔
接口測試過程中,經(jīng)常需要到數(shù)據(jù)庫中判斷接口對數(shù)據(jù)的操作結(jié)果。
那么一份數(shù)據(jù)庫設(shè)計文檔是必不可少的,沒有那就是上面說的,上百個表,要自己去猜表的用途和字段的含義。這過于具體了。
3. 團隊配合
獲取開發(fā)團隊的配合是必不可少的,因為接口文檔一般不會細致到每個參數(shù)、每個響應(yīng)字段都有詳細的說明。
這種時候就需要和開發(fā)人員多去溝通,理清待測接口每個參數(shù)和響應(yīng)字段的含義,這樣才能達到測試效果。
4. 工具選擇
“欲善其事必先利其器”, 選擇合適的接口測試工具比不可少。
目前常用的接口測試工具有:
- Postman
- Jmeter
- Robot Framework
語言框架:
- Python + requests + unittest ( pytest )
- JAVA + HttpClient + TestNG(沒用過...)
輔助工具:
- 抓包工具: Fiddler, Charles
- 數(shù)據(jù)庫輔助工具:Xmysql, Newman (Postman 輔助工具)
具體選擇工具還是自己用語言搭建框架,根據(jù)團隊的實際情況來。
使用工具呢,
- Postman 入門容易,幾個小時就可以掌握,但是無法連接數(shù)據(jù)庫硬傷,需要輔助 xmysql 才行;
- Jmeter 功能強大,但是學(xué)習(xí)成本相對較高,最大的好處是接口的功能和性能都可以測試;
- Robot Framework 通用性很強,功能可以達到語言框架的靈活性,但是用例可讀性有點不太好。
語言框架就不用說了,想怎么玩就怎么玩,有什么需要一行代碼不能實現(xiàn)的就多寫幾行。
剛開始做,建議使用 Postman,如果接口的功能和性能都要考慮,可以選擇 Jmeter。如果團隊成員普遍代碼能力強,那也可以選擇直接上語言框架。
工具只是輔助,更重要的是接口分析與用例設(shè)計。