1. 程式人生 > >淺談接口測試

淺談接口測試

oid and 以及 報文 業務邏輯 sea 部分 size tcl

一、關於接口

接口是什麽

在理解什麽是接口之前,我們先了解一下前端和後端。

前端:是與用戶直接交互的部分,例如web端瀏覽網頁時看到的字體、顏色、布局等,app端用戶和軟件之間的交互。

web端一般用到的技術有html、jscss

ios用到的語言為object-c、swfit

Android用到的語言為Android

後端:是業務邏輯,功能的實現、數據的存儲。語言有java、php、python、go等。

前端和後端都是不同語言來開發的,但是他們需要交互,那怎麽交互呢,對,就是通過接口來交互,把前端和後端聯系起來。

接口就是從數據庫裏獲取數據、插入數據。

接口一般來說有兩種,一種是程序內部的接口,一種是系統對外的接口。

程序內部的接口:方法與方法之間,模塊與模塊之間的交互,程序內部拋出的接口,比如bbs系統,有登錄模塊、發帖模塊等等,那你要發帖就必須先登錄,要發帖就得登錄,那麽這兩個模塊就得有交互,它就會拋出一個接口,供內部系統進行調用。

系統對外的接口:比如你要從別的網站或服務器上獲取資源或信息,別人肯定不會把數據庫共享給你,他只能給你提供一個他們寫好的方法來獲取數據,你引用他提供的接口就能使用他寫好的方法,從而達到數據共享的目的,比如說咱們用的app、網址這些它在進行數據處理的時候都是通過接口來進行調用的。

接口的分類

現在我們最常用的兩種接口就是webservice接口和http api接口,概念這裏就不贅述了,知道有這兩種接口和怎麽測試就可以了。

webService接口是走soap協議通過http傳輸,請求報文和返回報文都是xml格式的,我們在測試的時候都用通過工具才能進行調用,測試。

http api接口是走http協議,通過路徑來區分調用的方法,請求報文都是key-value形式的,返回報文一般都是json串,有get和post等方法,這也是最常用的兩種請求方式。

現在我們最常用的兩種接口就是webservice接口和http api接口,概念這裏就不贅述了,知道有這兩種接口和怎麽測試就可以了。

webService接口是走soap協議通過http傳輸,請求報文和返回報文都是xml格式的,我們在測試的時候都用通過工具才能進行調用,測試。

http api接口是走http協議,通過路徑來區分調用的方法,請求報文都是key-value形式的,返回報文一般都是json串,有get和post等方法,這也是最常用的兩種請求方式。

二、接口測試

什麽是接口測試呢?

接口測試是測試系統組件間接口的一種測試。接口測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。 --百度百科

其實接口測試就和普通功能測試沒什麽區別,區別就是功能測試是在頁面上點點點,在頁面上輸入值,提交數據看結果,而接口測試沒有頁面,通過接口規範文檔上的調用地址、請求參數,拼接報文,然後發送請求,檢查返回結果。

接口文檔

既然我們要測試接口,那我們根據什麽來測試呢?

那就是接口規範文檔,也是我們測試最重要的一個依據

接口文檔是幹嘛的呢,接口文檔說簡單點,就是這個接口的使用文檔。

接口文檔至少包括:

1、接口說明

2、調用url

3、請求方法(get\post)

4、請求參數、參數類型、請求參數說明

5、返回參數說明

如何測接口

http接口:

前面我們已經有了接口文檔,那麽我們就要根據接口文檔來拼接參數調用接口,那麽怎麽調用呢?

接口請求報文拼接

1、url?param=value&param2=value

這種是最簡單的一種,問號前面是請求url,後面是請求的參數名和參數值,多個參數用&來連接

https://api.douban.com/v2/book/search?q=鄒偉偉

2、還有一種就是入參是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請求,你通過抓包也是可以抓到參數的。所以上面這些面試的時候你說出來就行了。

http狀態碼

l 每發出一個http請求之後,都會有一個響應,http本身會有一個狀態碼,來標示這個請求是否成功,常見的狀態碼有以下幾種:

l 1、200 2開頭的都表示這個請求發送成功,最常見的就是200,就代表這個請求是ok的,服務器也返回了。

l 2、300 3開頭的代表重定向,最常見的是302,把這個請求重定向到別的地方了,

l 3、400 400代表客戶端發送的請求有語法錯誤,401代表訪問的頁面沒有授權,403表示沒有權限訪問這個頁面,404代表沒有這個頁面

l 4、500 5開頭的代表服務器有異常,500代表服務器內部異常,504代表服務器端超時,沒返回結果

get請求,不需要借助任何工具,在瀏覽器裏面就可以發請求。

get請求傳參的格式為URL?parma=abc例如:

有多個參數需要傳 格式為URL?parma=abc&xxx=efg

接口測試工具

接口測試的工具很多,比如 postman、RESTClient、jmeter、loadrunner、SoapUI等,下一篇文章會介紹一下postman 和jmeter這兩種工具

技術分享圖片

淺談接口測試