陸續在幾個公司都有接觸過接口測試,每個公司的接口測試需求都差不多。但是,項目的大小會影響接口測試任務的簡繁。
涉及到TCP協議的接口,也涉及到http協議的接口。
前段時間,剛接到一個走HTTP協議的接口測試需求。
開發提供過來的接口如下:
1. get_list
a. url - subject_id / compliance_id
b. ajax - subject_id / compliance_id
2.get_map
a. url -
b. ajax - qry_id / extra_col
3............
由上得出:
1.每個接口有兩種請求方式
a)走地址欄url-----GET請求
b)走ajax模式
2.兩種請求方式后端帶有參數的key
3.無其他信息
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
咨詢開發同個接口為什么走兩種請求方式?
得到的回復:
1.url----Get請求獲取靜態信息,即處理獲取數據后的前端頁面處理
2.ajax----POST請求為處理數據,返回json數據,即用戶需要的數據
請根據這個回復,確認測試的需求范圍!!!
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
通過以上信息,測試在開始接口自動化之前,需要將開發提供的接口轉換為測試熟悉的模式。
HTTP協議,正常情況下需要包括頭部信息,地址,參數等。而開發提供的信息並沒有這么豐富。
所以,測試要自己進行抓包獲取剩余未知的信息!!!
以百度新聞為范例,谷歌瀏覽器做為抓包工具
1.進入百度新聞網址:http://news.baidu.com/
2.右鍵點擊網頁->【檢查】(如果您的網站右鍵被禁止,請使用F12打開開發者模式)
3.請在打開工具菜單欄選擇network

4.刷新網頁,觀察工具變化(請選擇XHR,我們僅觀察html頁面,js/css等不需要)

5.點擊,出現的Name,即開發提供中的模塊--test如下:
a)General顯示內有我們需要的信息:URL地址,請求模式(GET)等
b)response headers為我們發送請求過去,服務器返回響應的頭部信息
c)request headers內有我們需要的信息,當你不知道哪些是接口特殊需要的,請完整保留該區域的所有信息
d)query string parameter為發送請求需要帶的參數

6.通過第5點,將接口整理成測試比較熟悉的格式
| get_list接口 |
||||||||||||||||||||
| 接口功能:xxxx | ||||||||||||||||||||
| 請求url |
http://IP:PORT/test/get_list |
|||||||||||||||||||
| 請求模式 |
POST |
|||||||||||||||||||
| 請求頭 |
|
|||||||||||||||||||
| 參數 |
subject_id:11 compliance_id:11 |
|||||||||||||||||||
| 響應(json) |
{data:[{}]} |
|||||||||||||||||||
| 備注 |
描述該接口依賴的其他接口名稱,該接口的特殊點 |
|||||||||||||||||||
備注
如果是移動端的web獲取app,請使用第三方工具進行抓包如flddler
如果知道產品的開發語言,並且可以看懂代碼的話,請根據接口名稱查看源碼,確定參數是否必填/返回的錯誤響應等等信息
開始接口測試之前,請考慮清楚接口測試的范圍(功能?冒煙回歸?壓測?),這將影響工具的選擇及接口覆蓋率的腳本編寫
