介面自動化之介面整理(抓包)

vibe發表於2018-11-13

  陸續在幾個公司都有接觸過介面測試,每個公司的介面測試需求都差不多。但是,專案的大小會影響介面測試任務的簡繁。

涉及到TCP協議的介面,也涉及到http協議的介面。

前段時間,剛接到一個走HTTP協議的介面測試需求。

開發提供過來的介面如下:

test:

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

請求頭

Accept

application/json, text/javascript, */*; q=0.01

Accept-Encoding

gzip, deflate

Connection

keep-alive

Host

IP:PORT

Referer

http://IP:PORT

X-Requested-With

XMLHttpRequest

引數

subject_id:11

compliance_id:11

響應(json)

{data:[{}]}

備註

描述該介面依賴的其他介面名稱,該介面的特殊點

備註

如果是移動端的web獲取app,請使用第三方工具進行抓包如flddler

如果知道產品的開發語言,並且可以看懂程式碼的話,請根據介面名稱檢視原始碼,確定引數是否必填/返回的錯誤響應等等資訊

開始介面測試之前,請考慮清楚介面測試的範圍(功能?冒煙迴歸?壓測?),這將影響工具的選擇及介面覆蓋率的指令碼編寫

感興趣的小夥伴可以加群:747981058,大家一起來交流~


相關文章