什麼是接口? ------ 某個對象和外界交互的部分
消息交互接口:基於soap的web service ---- http協議
web api ------- http協議
diameter、radius ------ socket協議
編程接口:各種語言的開發包
其他接口:數據服務產品:sql語言操作接口
對賬系統:FTP文件接口
web服務接口:互聯網產品對外提供的服務接口,我們通常稱之爲web服務接口、web service接口、REST接口
我們經常說的'接口測試'、‘API測試’,就是對web服務接口的測試。 包括APP服務端接口。
主要包括兩種類型:① 基於SOAP的web service接口
② REST接口
HTTP協議:超文本傳輸協議
就是瀏覽器與服務器之間進行‘溝通’的一種規範。
HTTP協議屬於應用層的協議。
HTTP版本:在0.9 1.0 1.1(最廣泛) 2
要想知道http協議,就要清楚它的請求和響應,當然還有請求方式、狀態碼、URL地址等。
http請求:一個完整的http請求,包含一個請求行,若干個請求頭、空行、消息體
請求行:描述客戶端的請求方法(如get、post等)、請求資源的名稱、http協議的版本號
請求頭:包含客戶機請求的服務器主機名,客戶機的環境信息等
(換行)
消息體:指瀏覽器端通過http協議發送給服務器的實體數據(有三種數據格式:json、xml、www-form-urlencoded)
HTTP請求方法最常用的有哪些:get 、post、head、put、delete
http響應:一個http響應代表服務器端向客戶端回送的數據,它包括:一個狀態行、若干個消息頭、空行、以及實體內容(響應體)
響應頭:包含 狀態碼、服務器類型、服務器的數據壓縮格式、傳送數據的編碼格式等
狀態行:如HTTP/1.1 200 OK (協議的版本號是1.1,響應狀態碼爲200 響應結果爲OK)
實體內容:包含瀏覽器能夠解析的靜態內容,例如 html、純文本、圖片等等信息
HTTP和HTML的區別?
HTTP是一種用來定義網頁的文本語言 標記語言
HTTP是網絡上傳輸信息的協議
接口測試的流程:- 閱讀API接口文檔
- 編寫測試用例
- 根據測試用例進行API的手工測試
① 開發API工具
② 使用工具進行測試
------------------------------------------------------------------------------------------------------------------------------------------------------------
postman工具的使用:是最廣泛的rest api測試工具。
postman提供了一個多窗口和多標籤的界面。
側邊欄分爲兩個主要標籤History和Collections。我們填過的請求都會自動的保存到history中;Collections可以把我們的API請求分類,實現目錄式管理。
右邊區域是我們操作的核心區域。用來填寫API請求的具體內容:包括http請求的url、請求頭、請求體,點擊發送後,查看響應信息是什麼都在這裏。
構建http請求 ---- 包括URL、請求方法、請求頭、消息體
URL的構建:協議類型 如http可以省略不寫,如果是https,則需要寫上。 如 www.baidu.com
有時候,url請求中是有參數的,如 https://baike.baidu.com/item/Selenium/18266?fr=aladdin 問號後面的部分fr=aladdin就叫做查詢字符串
也可以有n多個參數,用符號&隔開 如?fr=aladdin&pagenum=1
請求頭的構建:要在HTTP頭部中添加字段,可在Headers標籤中添加
添加好後,點擊send,發送出去的http請求中就會攜帶這些添加的頭部。
請求體的構建:最常見的就是post 、put請求,有時delete也有消息體
不是所有的http請求都是有消息體的,這是由系統的設計者決定的。
我們在body中添加參數,並指定是什麼類型的消息體。換句話說就是將參數存放的位置從url移到了body
消息體的類型都是通過headers中的content-type參數來表明的。如 Content-Type:application/x-www-form-urlencoded
消息體類型除了application/x-www-form-urlencoded外,比較常見的還有application/json、application/xml,分別對應json格式的文本和xml格式的文本
還有multipart/form-data
json介紹:是一種編程語言對象的字符串表示法,是一種數據保存和傳輸的序列化格式。
在接口測試中,我們需要傳遞數據對象給另外的程序,比如一個字典的內容。那我們傳輸就必須要序列化,xml可以用程序進行序列化,但效率不高,最後json解決了這一麻煩。
json好處:易讀、易編寫、易解析、易生成。
如果數據格式是json或xml,這種情況下來構造消息體,需要選擇類型爲raw,並且在右邊的text下拉框中選擇相應的類型,並在body編輯框中輸入相應格式的文本。
選擇不同的類型,postman會自動添加對應的header
raw並不是一種http body的類型,而是postman用來表示 可直接填寫消息內容的方法。
Collection和Folder:
在postman中,我們可以用Collection和Folder對API進行分類存放和管理。collection可以理解爲頂級目錄 像C盤一樣;Folder可以理解爲C盤下的一個個目錄。
通常一個產品的API接口測試,我們可以創建一個Collection和其對應。根據各個API的功能,分成不同的Test Suite,對應到不同的Folder中。
導入和導出:
導入和導出最大的作用就是方便共享。比如 同事之間也要執行,就可以把這些文件導出給到他,他再導入,仍可以繼續執行。import是導入 export是導出。
創建postman賬戶:
postman有比較高級的同步功能,只要有賬戶,不管在哪臺機器登錄,都可以使用該賬戶,獲取其保存的API信息。