接口測試理論基礎
1.接口
什麽是接口呢?接口一般來說有兩種,一種是程序內部的接口,一種是系統對外的接口。
1.1系統對外的接口
比如你要從別的網站或服務器上獲取資源或信息,別人肯定不會把數據庫共享給你,他只能給你提供一個他們寫好的方法來獲取數據,你引用他提供的接口就能使用他寫好的方法,從而達到數據共享的目的。比如說咱們用的APP、網站這些它在進行數據處理的時候都是通過接口來進行調用的。
1.2程序內部的接口
方法與方法之間,模塊與模塊之間的交互,程序內部拋出的接口,比如bbs系統,有登錄模塊、發貼模塊等等。要發貼就必須先登錄,那麽這兩個模塊就得有交互,它就必須要給出一個接口供內部系統進行調用。
2.接口的分類
目前最常用的兩種接口就是webservice接口和http api接口。
webService接口是走soap協議通過http傳輸,請求報文和返回報文都是xml格式的,我們在測試的時候都得通過工具才能進行調用、測試。
http api接口是走http協議,通過路徑來區分調用的方法,請求報文都 是key-value形式的,返回報文一般都是json串,有get和post等方法,這也是最常用的兩種請求方式。
3.接口測試
什麽是接口測試呢?
接口測試是測試系統組件間接口的一種渡。接口測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。
其實接口測試就和普通功能測試沒什麽區別,區別就是功能測試是在頁面上操作,在頁面上輸入值,提交數據看結果,而接口測試沒有頁面,通過接口規範文檔上的調用地址、請求參數,拼接報文,然後發送請求,檢查返回結果。
4.為什麽要做接口測試
我們知道,其實接口也是app端或者說是web前端進行調用的,那我們直接在app或者web端直接測試不就好了,反正它都是調用的接口,app和web端功能測試通過了,那接口不就是好使的嘛。
思考一個問題,假如現在在京東APP上買東西,支付訂單,訂單金額是500元,支付的話肯定要調用支付接口,你在頁面上操作的話,訂單金額是修改不了的,那如果你想測試一下服務端有沒有校驗訂單的金額,我想把訂單金額改成5元,那在頁面上操作是測試不到的,這個時候我們就可以直接用接口來調用,修改一個訂單金額的值,然後再發請求就可以了。
5.接口測試的必要性
一)可以發現很多在頁面上操作發現不了的BUG
二)檢查系統的異常處理能力
三)檢查系統的安全性、穩定性
四)前端隨便變、接口測好了,後端不用變
6.接口規範文檔
接口文檔至少包括:
一)接口說明
二)調用URL
三)請求方法
四)請求參數、參數類型、請求參數說明
五)返回參數說明
7.如何測試HTTP接口
url?param=value¶m2=value 這種是最簡單的一種,問號前面是請求url,後面是請求的參數名和參數值,多個參數用&來連接 例:https://api.douban.com/v2/book/search?q=鄒偉偉
還有一種就是入參是json串的,那就不能拼接參數了,需要借助工具來完成比如postman
GET和POST請求: 如果是get請求的話,直接在瀏覽器裏輸入就行了,只要在瀏覽器裏面直接能請求到的,都是get請求,如果是post的請求的話,就不行了,就得借助工具來發送。
GET請求和POST請求的區別:
1、GET使用URL或Cookie傳參。而POST將數據放在BODY中。
2、GET的URL會有長度上的限制,則POST的數據則可以非常大。
3、POST比GET安全,因為數據在地址欄上不可見。
4、一般get請求用來獲取數據,post請求用來發送數據。
其實上面這幾點,只有最後一點說的是比較靠譜的,第一點post請求也可以把數據放到url裏面,get請求其實也沒長度限制,post請求看起來參數是隱式的,稍微安全那麽一些些,但是那只是對於小白用戶來說的,就算post請求,你通過抓包也是可以抓到參數的。所以上面這些面試的時候你說出來就行了。
8.HTTP狀態碼
每發出一個http請求之後,都會有一個響應,http本身會有一個狀態碼,來標示這個請求是否成功,常見的狀態碼有以下幾種:
1、200 2開頭的都表示這個請求發送成功,最常見的就是200,就代表這個請求是ok的,服務器也返回了。
2、300 3開頭的代表重定向,最常見的是302,把這個請求重定向到別的地方了,
3、400 400代表客戶端發送的請求有語法錯誤,401代表訪問的頁面沒有授權,403表示沒有權限訪問這個頁面,404代表沒有這個頁面
4、500 5開頭的代表服務器有異常,500代表服務器內部異常,504代表服務器端超時,沒返回結果
9.如何測試webserivce接口
webservice接口怎麽測試呢,他不需要你在拼報文了,會給一個webservice的地址,或者wsdl文件,直接在soapui導入,就可以看到這個webservice裏面的所有接口,也有報文,直接填入參數調用,看返回結果就可以了。
天氣預報wsdl地址:http://www.webservicex.net/globalweather.asmx?wsdl
接口測試理論基礎