陸續在幾個公司都有接觸過接口測試,每一個公司的接口測試需求都差很少。可是,項目的大小會影響接口測試任務的簡繁。javascript
涉及到TCP協議的接口,也涉及到http協議的接口。css
前段時間,剛接到一個走HTTP協議的接口測試需求。html
開發提供過來的接口以下:前端
1. get_listjava
a. url - subject_id / compliance_id
b. ajax - subject_id / compliance_idweb
2.get_mapajax
a. url -
b. ajax - qry_id / extra_coljson
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
若是知道產品的開發語言,而且能夠看懂代碼的話,請根據接口名稱查看源碼,肯定參數是否必填/返回的錯誤響應等等信息
開始接口測試以前,請考慮清楚接口測試的範圍(功能?冒煙迴歸?壓測?),這將影響工具的選擇及接口覆蓋率的腳本編寫