1. 程式人生 > >介面測試2

介面測試2

一、WebService和HTTPService的區別

1.基於不同協議:HTTPService基於http協議,而WebService基於soap協議

2.跨域的處理:HttpService方式不能處理跨域,如果呼叫一個其它應用的服務就要用webService

3.處理資料效率不同:HTTPService效率較高,WebService能處理較複雜的資料型別


當你要呼叫一個你本服務的內容的時候,不涉及到跨域的問題,你可以使用HttpService的方式。
如果,你需要在後臺呼叫一個其它應用的服務,這個時候,你必須要用webService的方式來呼叫。


簡單的說WebService是不依賴於語言,不依賴於平臺,可以實現不同的語言(通過 xml 描述)間的相互呼叫(方便異構系統的互動),通過SOAP在Web上提供的軟體服務,使用WSDL檔案進行說明,並通過UDDI進行註冊。     
Soap:是XML Web Service 的通訊協議。
WSDL:(Web Services Description Language) WSDL 檔案是一個 XML 文件,用於說明一組 SOAP 訊息以及如何交換這些訊息。

http速度效率更高,soap能處理複雜的資料。

SOAP是一個基於XML的協議交換訊息,可以使用HTTP來傳輸這些資訊。
事實上HTTP是SOAP訊息的最常見的傳輸工具。soap將資訊進行XML的序列化後,再用http協議的方式再打包進行傳送,傳送的方式還是tcp或者udp。做個比喻就好理解了。tcp 和 udp都是公路,暫且把tcp認為是一般公路,udp高速公路,soap和http就都是汽車,那麼soap和http都可以在tcp和udp上跑。
說soap可以通過http來傳送,實際就是說soap是小轎車,http是裝轎車的卡車,把soap的資訊裝到http裡面,然後再運輸,當然走的道路還是tcp或udp。
說soap可以通過http協議來傳輸,這句話不太準確,比較準確第說法是:soap資訊可以通過http協議包裝後通過tcp或udp傳輸。

tcp、udp介紹:
TCP/IP協議是一個協議簇。裡面包括很多協議的。UDP只是其中的一個。之所以命名為TCP/IP協議,因為TCP,IP協議是兩個很重要的協議,就用他兩命名了。
TCP/IP協議集包括應用層,傳輸層,網路層,網路訪問層。

TCP與UDP區別總結:
1、TCP面向連線(如打電話要先撥號建立連線);UDP是無連線的,即傳送資料之前不需要建立連線
2、TCP提供可靠的服務。也就是說,通過TCP連線傳送的資料,無差錯,不丟失,不重複,且按序到達;UDP盡最大努力交付,即不保   證可靠交付
3、TCP面向位元組流,實際上是TCP把資料看成一連串無結構的位元組流;UDP是面向報文的
  UDP沒有擁塞控制,因此網路出現擁塞不會使源主機的傳送速率降低(對實時應用很有用,如IP電話,實時視訊會議等)
4、每一條TCP連線只能是點到點的;UDP支援一對一,一對多,多對一和多對多的互動通訊
5、TCP首部開銷20位元組;UDP的首部開銷小,只有8個位元組
6、TCP的邏輯通訊通道是全雙工的可靠通道,UDP則是不可靠通道

TCP(TransmissionControlProtocol,傳輸控制協議)是面向連線的協議,也就是說,在收發資料前,必須和對方建立可靠的連線。一個TCP連線必須要經過三次“對話”才能建立起來(TCP三次握手),其中的過程非常複雜,只簡單的描述下這三次對話的簡單過程:主機A向主機B發出連線請求資料包:“我想給你發資料,可以嗎?”,這是第一次對話;主機B向主機A傳送同意連線和要求同步(同步就是兩臺主機一個在傳送,一個在接收,協調工作)的資料包:“可以,你什麼時候發?”,這是第二次對話;主機A再發出一個數據包確認主機B的要求同步:“我現在就發,你接著吧!”,這是第三次對話。三次“對話”的目的是使資料包的傳送和接收同步,經過三次“對話”之後,主機A才向主機B正式傳送資料。

TCP建立連線要進行3次握手,而斷開連線要進行4次
A:資料傳完了,可以停止嗎?

B:訊息收到,但是我還沒有準備好,請稍等!

B:好了,可以停止了。

A:好的,過一會兒沒有訊息我就關閉啦。

UDP(User Data Protocol,使用者資料報協議)
(1)UDP是一個非連線的協議,傳輸資料之前源端和終端不建立連線,當它想傳送時就簡單地去抓取來自應用程式的資料,並儘可能快地把它扔到網路上。在傳送端,UDP傳送資料的速度僅僅是受應用程式生成資料的速度、計算機的能力和傳輸頻寬的限制;在接收端,UDP把每個訊息段放在佇列中,應用程式每次從佇列中讀一個訊息段。
(2) 由於傳輸資料不建立連線,因此也就不需要維護連線狀態,包括收發狀態等,因此一臺服務機可同時向多個客戶機傳輸相同的訊息。
(3)UDP資訊包的標題很短,只有8個位元組,相對於TCP的20個位元組資訊包的額外開銷很小。
(4) 吞吐量不受擁擠控制演算法的調節,只受應用軟體生成資料的速率、傳輸頻寬、源端和終端主機效能的限制。
(5)UDP使用盡最大努力交付,即不保證可靠交付,因此主機不需要維持複雜的連結狀態表(這裡面有許多引數)。
(6)UDP是面向報文的。傳送方的UDP對應用程式交下來的報文,在新增首部後就向下交付給IP層。既不拆分,也不合並,而是保留這些報文的邊界,因此,應用程式需要選擇合適的報文大小。

我們經常使用“ping”命令來測試兩臺主機之間TCP/IP通訊是否正常,其實“ping”命令的原理就是向對方主機發送UDP資料包,然後對方主機確認收到資料包,如果資料包是否到達的訊息及時反饋回來,那麼網路就是通的。

TCP UDP
TCP與UDP基本區別
  1.基於連線與無連線
  2.TCP要求系統資源較多,UDP較少;
  3.UDP程式結構較簡單
  4.流模式(TCP)與資料報模式(UDP);
  5.TCP保證資料正確性,UDP可能丟包
  6.TCP保證資料順序,UDP不保證
  
UDP應用場景:
  1.面向資料報方式
  2.網路資料大多為短訊息
  3.擁有大量Client
  4.對資料安全性無特殊要求
  5.網路負擔非常重,但對響應速度要求高


二、連線fiddler:設定代理
ipconfig IPV4 主機名
netstat -anop tcp檢視埠監聽是否正常

fiddler訪問https請求:
勾選options-HTTPS-Decrypt Https traffic
https://jingyan.baidu.com/article/f54ae2fc680be81e92b849ed.html


三、
介面測試工具:
瀏覽器外掛:Poster、Postman、HttpRequester 簡單的介面測試。
獨立的介面工具: Jmeter(支援SOAP)、 robot framework(RequestsLibrary) 、soapUI(SOAP協議)

1,發包:

Get請求:  https://www.baidu.com/su?ie=utf-8&wd=%E6%8E%A5%E5%8F%A3&_=1526698704762

?前的是介面地址
?後面的是引數,引數和引數之間用&分隔,=前是引數名,=後是引數值

1,修改wd的引數值,模擬不同的請求
2,將請求引數轉換到Parameters中


Post請求:
Postdata填寫到Patameters
rawdata寫法

2,攔截包

請求的攔截、修改再重發:(post請求)
在UI生成報文時攔截,並且可以修改報文再發送
tamper data  Tamper攔截並修改  Submit直接提交不修改  abort request忽略這個請求,不要發出去    
tamper ie