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登陸介面,輸入內容和密碼點選登陸,這個時候就要前後端互動,出現錯誤提示就是後端問題