1. 程式人生 > 其它 >API測試及協議學習第一天

API測試及協議學習第一天

一、金字塔模型:

二 、API測試定義:

介面測試又叫API測試,從小的方面來說:是對應用程式介面的的功能進行測試,從大方面說,就是在整合測試過程中,就是呼叫API測試整體的功能性,可靠性,安全性和效能  

saus--微服務架構(軟體及服務)→pas(平臺及服務)

saus(pas):輕量級的Rest API或者RPC的通訊模式

HTTP/1.1--Rest PAI

HTTP/2.0--RPC

三、HTTP協議

HTTP協議也叫做:超文字傳輸協議

網路分層:

1、TCP/IP分層管理

主要分成:應用層、傳輸層、網路層、資料鏈路層

應用層:應用層決定了向用戶提供應用時提供的果凍,http的協議層就是 應用層的協議。

傳輸層:應用層的下層 時網路傳輸層,提供處於網路連線的兩臺計算機之間的資料傳輸。

網路層:主要是用來處理網路上流動的資料包,資料包就是網路傳輸中的最小單位,在該層協議中,通過怎樣的路徑達到目標計算機,並且把資料包傳送給對方

鏈路層:處理連線網路的硬體部分,如 :作業系統 ,硬體裝置的驅動程式。

2、TCP/IP傳輸流程圖:

先時通過客戶端輸入內容 ,通過客戶端的協議通過網路模式傳送給服務端,在服務端內部進行處理,通過網路的模式返回給客戶端。

如:三次握手:

具體為:SYN和ACK。首先Client端傳送連線請求報文,Server段接受連線後回覆ACK報文,併為這次連線分配資源。Client端接收到ACK報文後也向Server段傳送ACK報文,並分配資源,這樣TCP連線就建立了。總結三次握手具體為:
• 第一次握手:起初兩端都處於CLOSED關閉狀態,Client將標誌位SYN置為1,隨機產生一個值seq=x,並將該資料包傳送給Server,Client進入SYN-SENT狀態,等待Server確認;
• 第二次握手:Server收到資料包後由標誌位SYN=1得知Client請求建立連線,Server將標誌位SYN和ACK都置為1,ack=x+1,隨機產生一個值seq=y,並將該資料包傳送給Client以確認連線請求,Server進入SYN-RCVD狀態,此時作業系統為該TCP連線分配TCP快取和變數;
• 第三次握手:Client收到確認後,檢查ack是否為x+1,ACK是否為1,如果正確則將標誌位ACK置為1,ack=y+1,並且此時作業系統為該TCP連線分配TCP快取和變數,並將該資料包傳送給Server,Server檢查ack是否為y+1,ACK是否為1,如果正確則連線建立成功,Client和Server進入ESTABLISHED狀態,完成三次握手,隨後Client和Server就可以開始傳輸資料

3、URI和URL

URI:統一稱為資源識別符號()

URL:統一稱為資源定位符

4、HTTP協議的請求流程:

持久連線:

在http協議0.9版本以前,服務端和客戶端在互動的時候,每傳送一次請求,都需要斷開和連線,這樣對服務端的效能損耗比較大,後來進行了升級,在1.0版本以後,有了connection:keepa-alive,優點就是隻要沒有明確要斷開,就一直保持TCP的連線,減少了對效能的損耗。

5、通訊模式:

可以分為:同步通訊和非同步通訊

具體的說就是 請求 /相應 和 非同步 請求/相應(釋出)訂閱模式。

同步通訊:客戶端傳送請求給服務端,服務端必須回覆客戶端的請求。

缺點:容易超時,客戶端傳送請求給服務端,服務端遲遲沒有迴應客戶端。

如果請求存在大的計算量和邏輯存在問題,就會導致請求堵塞,後面的都積壓,無法進行下一步操作

非同步通訊:在非同步的互動中,客戶端和服務端不需要關注對方的存在,只需要關注對應的MQ的訊息,,客戶端和服務端的互動主要是通過MQ的訊息作為中間的訊息進行傳遞,未進行互動(比如說:在手機下載一個軟體,點選下載後,可以進行其他軟體的使用,應用在後臺下載,並不會影響下載的程序,)

6、請求方法:

在HTTP協議中,常見的請求方法有:

GET:請求指定 的頁面資訊,並返回實時主體

POST:向指定資源提交資料進行處理(如上傳檔案),資料被包含在請求中,POST請求可能會導致新的資源建或者,原有資源修改

Delete:請求伺服器刪除指定的頁面

PUT:從客戶端向伺服器傳送資料,取代指定文件的內容

7、常用的狀態碼:

200:請求成功

301:永久重定向

302:臨時重定向

(1)測試問題,(客戶端問題)

400:

401和404:需要認證授權

客戶端問題的處理:

405:不被允許

解決思路:如果不是GET和POST請求,需要和開發核對,如果開發沒有問題,找運維核對,(運維可能設定了安全體系,)需要把請求地址新增到白名單就可以

(2)開發問題:

500:開發問題

504:閘道器超時

8、請求頭()/響應頭 ()

請求頭;指定客戶端接受哪些型別的資訊

Contentt-Type:請求資料的格式

Cookie:1,反爬蟲 2、維持當前訪問會話

Referer:表示這個請求是從那個頁面傳送過來的

User-Agent:可以使伺服器能夠識別客戶使用的作業系統版本、瀏覽器以及版本資訊

Host:指定請求資源的主機IP地址和埠號

Date--相應頭(響應產生時間):

Content-Encoding:響應內容的編碼

Server:伺服器的資訊

Content-Type:返回指定的資料格式

Set-Cookie:設定Cookie,響應頭裡面的Set-Cookie告訴開客戶端把此內容放在Cookie中,下次請求攜帶Cookie的請求

Expires:指定相應的過期時間

四、怎樣區分是前段問題還是後端問題:

(1)沒有和伺服器進行互動的就是前段問題

如:在qq登陸介面,只輸入內容,不做其他操作,出現錯誤資訊,屬於前端問題

(2)前段和後端互動的就是後端問題:

如:qq登陸介面,輸入內容和密碼點選登陸,這個時候就要前後端互動,出現錯誤提示就是後端問題