WEB接口的組成要素
接口地址
形式:協議://服務器IP地址或域名:端口號/項目名稱/接口名稱
例如:http://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叫做統一資源定位器,表示一個完整的網址或接口地址
請求方法
表示如何發送和處理數據
常見的請求方法:
方法名稱 | 方法介紹 |
---|---|
GET | 主要用於獲取數據/查詢 |
POST | 主要用於增加、修改、刪除資源 |
PUT | 主要用於修改資源(全部更新) |
patch | 主要用於修改資源(部分更新) |
delete | 主要用於刪除資源 |
常見面試題:GET和POST方法的區別
- GET請求可以被緩存,POST不可以
- GET請求會保存在瀏覽器的歷史記錄中,POST不會
- GET請求可以被收藏為書簽,POST不會
- GET請求時,發送數據的長度一般都有限制,POST沒有限制
- GET請求一般用於獲取數據,POST請求主要用於提交數據
- GET請求發送的數據一般會在URL(接口地址)中,POST發送的數據放在請求體中
- POST發送請求一般比GET發送請求更加安全
參數
是需要接口程序處理的數據
主要考慮參數有哪些,叫什么名字,那些是必填參數,那些是可選參數,參數的類型,參數長度,參數的約束
返回值/響應正文
響應頭包含響應狀態碼,簡稱狀態嗎、HTTP狀態碼
響應狀態碼 | 狀態碼介紹 |
---|---|
200 | 成功響應(服務器成功把結果發給客戶端,但是不確保結果正確性) |
301 | 永久重定向 |
302 | 臨時重定向 |
401 | 需要授權 |
403 | 客戶端錯誤,比如IP被封禁、客戶端無寫權限、無讀權限、客戶端證書錯誤等 |
404 | 客戶端請求的網頁文件不存在,URL地址錯誤 |
500 | 服務器端的錯誤,比如服務器代碼錯誤、服務器重啟、服務器關機、服務器太忙(拒絕服務) |
響應類型有三種類型,分別是:
text/html網頁版,類似於字符串
xml soap/webservice接口比較常見的響應類型
JSON類型是最常見的響應類型
響應體/響應正文是返回text/html網頁版、xml 、JSON類型內容,測試是否通過要看響應體
數據庫
如果接口涉及到寫數據,必須要驗庫
在接口測試過程中經常用於數據初始化和落庫檢查