介面測試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.資料庫如果介面涉及到寫數據,必須要驗庫