介面測試-HTTP協議
介面測試定義
接⼝測試⼜被稱為API測試,是軟體測試的⼀種測試模式,它包含了兩個維度,在狹義的⻆度上指的是對應⽤程式 接⼝的功能進⾏測試,在⼴義的維度上是指整合測試中,通過調⽤API測試整體的功能來完成度,可靠性,安全性 和效能。
金字塔模型:
unit(單元測試)
介面測試工具
如PostMan,JMeter,SoupUi等,除了⼯具還有在Python語⾔中很多 的第三⽅的庫都是可以來做接⼝測試的,如:urllib,requests,aiohttp
協議
HTTP協議(又稱超文字傳輸協議,預設埠80)
HTTP目前使用的版本是HTTP/1.1 最新的版本是HTTP/2.0
在微服務的架構模式下,使⽤的也是輕量級的 通訊模式(REST API),在微服務的架構模式中,需要清楚的是它的通訊可以分為同步通訊模式和非同步通訊模式
1、客戶端與服務端之間建立TCP的連線請求
2、客戶端傳送Request請求到服務端
3、服務端Response響應回覆客戶端的請求
4、客戶端與服務端之間關閉TCP的連線請求
檢視網路請求的步驟:
2.點選network
3.Ctrl+r
HTTP/2.0版本使用:在分散式架構以及微服務架構中,基於新⼀代的架構設計有了gRPC的協議,它就是基於HTTP/2.0的版 本來進⾏設計的。
gRPC的協議:應用在網際網路金融的領域
TCP/IP協議按層次主要為:應⽤層,傳輸層,⽹絡層,資料鏈路層。
應用層
應⽤層決定了向⽤戶提供應⽤服務時通訊的活動。⽽HTTP的協議和gRPC的協議就是屬於應⽤層的協議。
傳輸層
應⽤層的下層是⽹絡傳輸層,提供處於⽹絡連線中的兩臺計算機之間的資料傳輸。
網路層
主要是⽤來處理⽹絡上流動的資料包,所謂資料包就是⽹絡傳輸中的最⼩單位,在該層協議中,規範了通過怎樣的 路徑到達⽬標計算機,並且把資料包傳送給對⽅。
特點:1、保障資料傳輸 2、知道資料傳輸的目的地
資料鏈路層
主要是處理連線⽹絡的硬體部分,如作業系統,硬體裝置的驅動等。
三次握⼿
為了確保把資料能夠安全送到⽬標的伺服器,TCP協議內部使⽤了三次握⼿的策略機制,也就是說在TCP協議中,TCP 把資料包送去後,TCP會進⾏確認對⽅是否收到,或者是確認是否成功送達,那麼三次握⼿主要使⽤了TCP的標 志,具體為: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就可以開始傳輸資料。
URI和URL
URI可以稱為統⼀資源識別符號,⽽URL是統⼀資源定位符。