1. 程式人生 > >接口測試2

接口測試2

smis std submit rar iss 主機名 交換 大量 序列

一、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


接口測試2