接口測試01

常見的接口類型

接口是指外部系統與系統之間以及內部各子系統之間的交互點。

其中包括外部接口、內部接口

內部接口又包括上層服務與下層服務接口、同級接口

系統對外接口:比如你要從別的網站或服務器上獲取資源或信息,別人肯定不會把數據庫共享給你,它只能給你提供一個他們寫好的方法來獲取數據,你引用他提供的接口就可以使用它寫好的方法,從而達到數據共享的目的

程序的內部接口:方法與方法之間、模塊與模塊之間的交互,程序內部拋出的接口,比如TMOOC系統,有登錄模塊、我的課程等等,如果你要看我的課程必須先登錄,才可以觀看,這兩個模塊就得有交互,它就會拋出一個接口,供內部系統進行調用

常見的WEB接口有哪些

HTTP協議的接口、WEB SERVICE接口

HTTP接口是走HTTP協議,通過路徑來區分調用方法,請求的報文都是key = value的形式,返回的報文一般都是JSON串,有GET和POST等方法

WEB SERVICE接口是走SOAP協議通過http傳輸,請求報文和返回的報文一般是xml格式,在測試過程中一般使用工具才能進行調用測試 — 用的較少

程序中的接口 API

# 定義一個add函數 -- 實現加法運算功能,最後返回運算結果
# 定義函數: 函數名 參數表 返回值
# 定義add函數,傳入兩個參數
def add(a,b): # 接口可以接收使用者提供的數據
    # 邏輯處理
    c = a + b # 對這些數據進行處理,實現預定的功能
    # 返回結果
    return c # 將結果返回給使用者
# 調用函數:使用函數名,傳入參數,返回結果
add(1,2) # 結果為3
add(3,5) # 結果為8
注意:接口測試考慮是程序的輸入參數、輸出結果

接口的本質及其工作原理是什麼

接口你可以簡單的理解他就是URL,工作原理就是說URL通過GET或POST請求向服務器中發送一些數據,然後得到一些相應的返回值,本質就是數據的傳輸與接收

服務器和客戶端(機)

服務器是被測軟件或被測接口程序安裝的位置

使用linux操作系統作為服務器,會使用雲服務的形式存在

客戶端/機是個人計算機,通常將postman、fiddler、jmeter安裝在個人計算機上

請求和響應

客戶端要使用服務器上的軟件或接口程序,需要把要處理的數據發送給服務器,服務器上的接口程序會處理數據,然後把結果發給客戶端

客戶端發送數據給服務器的過程叫做請求

服務器把處理結果發送給客戶端的過程叫做響應

請求的組成部分

請求頭包含許多有關客戶端環境和請求正文的有用信息,例如,請求頭可以聲明瀏覽器所用的語言,請求正文的長度,操作系統等

示例:

Accept:image/gif.image/jpeg./
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible:MSIE5.01:windows NT5.0)
Accept-Encoding:gzip,deflate

請求體也叫請求正文,對於post方法來講,要發給服務器的數據存放在請求體中

響應的組成部分

響應頭主要是指響應的附加信息,比如響應類型、響應狀態碼、cookie、session等

響應體也叫響應正文,相當於接口返回值,也是從測試人員測試時最關心的內容

WEB接口的組成要素

1.接口地址

形式:協議://服務器IP地址或域名:端口號/項目名稱/接口名稱

例如://172.166.1.1:8080/test/api/?class=tsd2107&id=1

協議:常見的協議比如HTTP、HTTPS等

​ HTTP為普通http請求

​ HTTPS加密的http請求,傳輸數據更加安全

​ FTP文件傳輸協議,主要用於傳輸文件

服務器IP地址就是指提供接口的系統所部屬的服務器地址

域名如www.tmooc.cn

端口號如果不填寫端口號,默認是80,否則需要填寫端口號

​ 有時候,一台服務器會提供很多服務,用不同的端口號區分不同的軟件或接口

端口號是0~65535之間的整數

常見的端口號:

​ http 80、https 443

接口名本質上是函數名、方法名、類名、模塊名、文件名

?用於分割接口地址和參數標誌,必須是英文的(地址欄中有?是GET請求)

class和id是參數名,表示給服務器上的接口發送數據,請求服務器處理

&用於鏈接多個參數,是固定寫法,多一個參數就加一個&符號連接

/test/api/?class=tsd2107&id=1也叫路徑(URI)

URI叫統一資源標識符,一般用來表示網址或接口中具體位置或名稱,是URL的一部分

URL叫做統一資源定位器,表示一個完整的網址或接口地址

2.請求方法

表示如何發送和處理數據

常見的請求方法:

方法名稱 方法介紹
GET 主要用於獲取數據/查詢
POST 主要用於增加、修改、刪除資源
PUT 主要用於修改資源(全部更新)
patch 主要用於修改資源(部分更新)
delete 主要用於刪除資源

常見面試題:GET和POST方法的區別

  • GET請求可以被緩存,POST不可以
  • GET請求會保存在瀏覽器的歷史記錄中,POST不會
  • GET請求可以被收藏為書籤,POST不會
  • GET請求時,發送數據的長度一般都有限制,POST沒有限制
  • GET請求一般用於獲取數據,POST請求主要用於提交數據
  • GET請求發送的數據一般會在URL(接口地址)中,POST發送的數據放在請求體中
  • POST發送請求一般比GET發送請求更加安全

3.參數

是需要接口程序處理的數據

主要考慮參數有哪些,叫什麼名字,那些是必填參數,那些是可選參數,參數的類型,參數長度,參數的約束

4.返回值/響應正文

響應頭包含響應狀態碼,簡稱狀態嗎、HTTP狀態碼

響應狀態碼 狀態碼介紹
200 成功響應(服務器成功把結果發給客戶端,但是不確保結果正確性)
301 永久重定向
302 臨時重定向
401 需要授權
403 客戶端錯誤,比如IP被封禁、客戶端無寫權限、無讀權限、客戶端證書錯誤等
404 客戶端請求的網頁文件不存在,URL地址錯誤
500 服務器端的錯誤,比如服務器代碼錯誤、服務器重啟、服務器關機、服務器太忙(拒絕服務)

響應類型有三種類型,分別是:

​ text/html網頁版,類似於字符串

​ xml soap/webservice接口比較常見的響應類型

​ JSON類型是最常見的響應類型

響應體/響應正文是返回text/html網頁版、xml 、JSON類型內容,測試是否通過要看響應體

5.數據庫如果接口涉及到寫數據,必須要驗庫