10.API 接口自動化測試的基本原理

10.1 經常使用API接口協議介紹html

HTTP協議 算法

超文本傳輸協議數據庫

它是用來在Internet上傳送超文本的傳送協議,運行在TCP/IP協議族之上,它可使瀏覽器更加高效,使網絡傳輸減小。json

任何服務器除了包括HTML文件之外,還有一個HTTP駐留程序,用於響應用用戶請求。瀏覽器

瀏覽器是HTTP客戶,向服務器發送請求,當瀏覽器中輸入了一個開始文件或點擊了一個超級連接時,瀏覽器就向服務器發送了HTTP請求,此請求被送往由IP地址指定的URL。駐留程序接收到請求,在進行必要的操做後回送所要求的文件。安全

 

Http協議接口請求的介紹服務器

一個http請求報文由請求行(request line)、消息頭部(header)、空行、請求正文四部分組成;網絡

1、請求行數據結構

請求行由請求方法字段、URL字段和HTTP協議版本字段,組成,它們用空格分隔,例如:GET /index.html  HTTP/1.1app

HTTP協議的請求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。這裏介紹最經常使用的GET和POST方法;

GET:當client要從server中讀取文檔時,使用GET方法。GET方法要求服務器將URL定位的資源放在響應報文的數據部分,回送給client。使用GET方法時,請求參數和對應的值附加在URL後面,利用一個問號(「?」)表明URL的結尾與請求參數的開始,傳遞參數長度受限制,例如:  /index.jsp?id=100&op=bind

POST:當client給服務器提供信息較多時, 使用POST方法。POST方法將請求參數封裝在HTTP請求數據中,以key/value的形式出現,能夠傳遞大量數據,可用來傳遞文件。

2、消息頭部

請求頭部由key/value鍵值對組成,每行一對,key和value用冒號":"分隔,請求頭部通知服務器有關於client端的請求信息,典型的請求頭:

User-Agent:產生請求的瀏覽器類型

Accept:client端可識別的內容類型列表

Host:請求的主機名,容許多個域名同處一個ip地址,即虛擬主機    

3、空行

最後一個請求頭以後是一個空行,發送回車符和換行符,通知服務器請求頭結束。對於一個完整的http請求來講空行是必須的,不然服務器會任務本次請求的數據還沒有徹底發送到server,處於等待狀態

4、請求正文

請求數據不在GET方法中使用,而是在POST中使用。POST方法適用於須要client填寫表單的場合,與請求數據相關的最經常使用的請求頭是Content-Type 和Content-Length

Http協議接口返回狀態代碼介紹

常見狀態代碼、狀態描述、說明 

200 OK      //客戶端請求成功 

400 Bad Request  //客戶端請求有語法錯誤,不能被服務器所理解 

401 Unauthorized //請求未經受權,這個狀態代碼必須和WWW-Authenticate報頭域一塊兒使用  

403 Forbidden  //服務器收到請求,可是拒絕提供服務 

404 Not Found  //請求資源不存在,eg:輸入了錯誤的URL 

500 Internal Server Error //服務器發生不可預期的錯誤 

503 Server Unavailable  //服務器當前不能處理客戶端的請求,一段時間後,可能恢復正常

Http協議接口實體報頭介紹

請求和響應消息均可以傳送一個實體。一個實體由實體報頭域和實體正文組成,但並非說實體報頭域和實體正文要在一塊兒發送,能夠只發送實體報頭域。實體報頭定義了關於實體正文(eg:有無實體正文)和請求所標識的資源的元信息。 

Content-Type實體報頭域用語指明發送給接收者的實體正文的媒體類型

如:Content-Type:text/html;charset=ISO-8859-1 

Content-Type:application/json; 

Content-Type:application/soap+xml; 

Content-Type:application/x-www-form-urlencoded

 

HTTPS協議

超文本傳輸安全協議

它是由Netscape開發並內置於其瀏覽器中,用於對數據進行壓縮和解壓操做,並返回網絡上傳送回的結果。

HTTPS實際上應用了Netscape的徹底套接字層(SSL)做爲HTTP應用層的子層。(HTTPS使用端口443,而不是象HTTP那樣使用端口80來和TCP/IP進行通訊。)SSL使用40 位關鍵字做爲RC4流加密算法,這對於商業信息的加密是合適的。HTTPS和SSL支持使用X.509數字認證,若是須要的話用戶能夠確認發送者是誰。

SOAP協議

簡單對象訪問協議

它是交換數據的一種協議規範,是一種輕量的、簡單的、基於XML(標準通用標記語言下的一個子集)的協議,它被設計成在WEB上交換結構化的和固化的信息,SOAP使用基於XML的數據結構和超文本傳輸協議(HTTP)的組合定義了一個標準的方法來使用Internet上各類不一樣操做環境中的分佈式對象。

 

SMTP協議

簡單郵件傳送協議

它是由源地址到目的地址傳送郵件的一組規則,用來控制信件中轉方式的一種協議。

SMTP使用的TCP端口號是25,接收端在TCP的25號端口等待發送端來的E-mail,發送端向接收方(即服務器)發出鏈接要求,一旦鏈接成功,即進行郵件信息交換,郵件傳遞結束後釋放鏈接。

 

SNMP協議

簡單網絡管理協議

它是專門設計用於在 IP 網絡管理網絡節點(服務器、工做站、路由器、交換機及HUBS等)的一種標準協議。

SNMP,由一組網絡管理的標準組成,包含一個應用層協議(application layer protocol)、數據庫模型(database schema)和一組資源對象。該協議可以支持網絡管理系統,用以監測鏈接到網絡上的設備是否有任何引發管理上關注的狀況。

 

 

FTP協議

文件傳輸協議

它是一個標準協議,是在計算機和網絡之間交換文件的最簡單的方法,像傳送可顯示文件的HTTP和電子郵件的SMTP同樣,FTP也是應用TCP/IP協議的應用協議標準。

FTP一般用於將網頁從創做者上傳到服務器上供人使用,而從服務器上下傳文件也是一種很是廣泛的使用方式。做爲用戶,您能夠用很是簡單的DOS界面來使用FTP,也可使用由第三方提供的圖形界面的FTP來更新(刪除,重命名,移動和複製)服務器上的文件。

 

10.2 API 接口自動化測試的基本原理

基於HTTP協議的自動化測試基本原理

1.模擬請求url和報文,準備測試數據

2.模擬客戶端發送HTTP請求

3.模擬客戶端從服務器接收返回報文

4.驗證返回結果是否符合預期

相關文章
相關標籤/搜索