前言 我們之前在測(cè)試web service的時(shí)候嘗試過(guò)多種方法:比如使用SoapUI;使用本地代理類(lèi)編程等。前者不太方便做自動(dòng)化,后者是從SOAP協(xié)議層面進(jìn)行測(cè)試,數(shù)據(jù)組織不太方便,測(cè)試程序相對(duì)復(fù)雜,并且擴(kuò)展性不好。 SOAP協(xié)議大多使用HTTP綁定,我們發(fā)現(xiàn)使用HTTP直接向web service server發(fā)送數(shù)據(jù)包可以做到接口無(wú)關(guān),不同的接口對(duì)于HTTP請(qǐng)求來(lái)說(shuō)只是包的內(nèi)容和目標(biāo)url不同。這樣可以將修改測(cè)試程序的工作轉(zhuǎn)變?yōu)闃?gòu)造數(shù)據(jù)的工作,一方面在數(shù)據(jù)量較小的情況下可以減小測(cè)試準(zhǔn)備和執(zhí)行時(shí)間,另一方面方便測(cè)試集成到持續(xù)集成環(huán)境中。 SOAP層面的Web Service自動(dòng)化測(cè)試 背景介紹 Web Service 是一種新的web應(yīng)用程序分支,他們是自包含、自描述、模塊化的應(yīng)用,可以發(fā)布、定位、通過(guò)web調(diào)用。Web Service通過(guò)WSDL(Web Services Description Language)文件發(fā)布。 SOAP是簡(jiǎn)單對(duì)象訪(fǎng)問(wèn)協(xié)議,定義了一種跨平臺(tái)的分布式系統(tǒng)通信協(xié)議。SOAP需要綁定到更低層次的傳輸協(xié)議(比如HTTP、RMI、JMS)等。最常用的是HTTP綁定。大多數(shù)的Web Service實(shí)現(xiàn)是借助SOAP協(xié)議,因而通常的Web Service測(cè)試方法都是在SOAP協(xié)議層面進(jìn)行測(cè)試。在SOAP層面上,每一個(gè)請(qǐng)求的數(shù)據(jù)包格式都是固定的,不同的接口使用不同格式的數(shù)據(jù)包,因而測(cè)試的時(shí)候需要針對(duì)不同的接口有不同的數(shù)據(jù)準(zhǔn)備和測(cè)試執(zhí)行的方法。 現(xiàn)有的SOAP層面的Web Service自動(dòng)化測(cè)試方法通常是使用工具生成本地代理類(lèi),通過(guò)編程調(diào)用本地代理類(lèi)實(shí)現(xiàn)自動(dòng)化。這種測(cè)試方法數(shù)據(jù)構(gòu)造簡(jiǎn)單,但是測(cè)試程序稍復(fù)雜,擴(kuò)展性不強(qiáng)。 數(shù)據(jù)組織 SOAP層面的自動(dòng)化測(cè)試的數(shù)據(jù)組織就是準(zhǔn)備本地類(lèi)的參數(shù)和返回值。 1. 輸入數(shù)據(jù) 為了更清楚的了解輸入數(shù)據(jù),這里給出了SoapUI的兩張圖:
1.png (11.63 KB, 下載次數(shù): 385)
下載附件
2020-5-19 09:25 上傳
圖1 接口一輸入
2.png (12.46 KB, 下載次數(shù): 317)
下載附件
2020-5-19 09:25 上傳
圖2 接口二輸入
這兩幅圖顯示了SOAP層面的輸入數(shù)據(jù)。AuthHeader是SOAP包的header,是所有接口共有的數(shù)據(jù)結(jié)構(gòu);getAccountInfoRequest和getChangedIdRequest是SOAP包的body,各自有不同的字段,type和startTime是真正需要針對(duì)每個(gè)接口準(zhǔn)備的數(shù)據(jù)。 2. 期望輸出 同樣這里給出了兩張SOAP的圖:
3.png (185.83 KB, 下載次數(shù): 370)
下載附件
2020-5-19 09:26 上傳
圖3 接口一輸出
|