去年年底接手的一個(gè)模塊測試任務(wù)中实蓬,涉及到了WebService赊抖。然而服務(wù)端提供的測試數(shù)據(jù)極其少艘包,所以就利用SoapUI模擬服務(wù)端的猛,來測試客戶端的程序洒扎。
SoapUI的安裝
- SoapUI是一個(gè)開源測試工具,通過soap/http來檢查衰絮、調(diào)用袍冷、實(shí)現(xiàn)Web Service的功能/負(fù)載/符合性測試。該工具既可作為一個(gè)單獨(dú)的測試軟件使用猫牡,也可利用插件集成到Eclipse胡诗,maven2.X,Netbeans 和intellij中使用淌友。
下載路徑:https://www.soapui.org/ - 因?yàn)閷?shí)際的項(xiàng)目不適合拿出來分享煌恢,所以就在網(wǎng)上找了資源,在這里也分享給大家震庭。使用的接口實(shí)例是中國電視節(jié)目表WEB服務(wù)WSDL地址:http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl
模擬客戶端
1.打開SoapUI>File>New SOAP Project瑰抵,新建Soap工程。2.填入工程的信息器联。
- Project Name:工程名字二汛,取一個(gè)適合這個(gè)項(xiàng)目的名稱。
- Initial WSDL:http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl
- “Create Requests”:勾選之后項(xiàng)目會(huì)根據(jù)WSDL文件創(chuàng)建每個(gè)接口的請求文件拨拓。
- “Create TestSuite”:勾選之后項(xiàng)目就會(huì)給WSDL創(chuàng)建一個(gè)測試套件肴颊。
點(diǎn)擊OK之后會(huì)彈出創(chuàng)建TestSuite的界面渣磷。
- One TestCase for each Operation:為每個(gè)接口的請求都創(chuàng)建一個(gè)測試用例婿着。
- Single TestCase with one Request for each Operation:講所有的接口請求放在一個(gè)測試用例里。
- Create new empty request:創(chuàng)建一個(gè)空的請求醋界。
- Operations:WSDL里的接口都會(huì)在這里顯示竟宋,可以勾選選擇要測試的接口方法。
-
Generate LoadTests:為每個(gè)創(chuàng)建好的測試用例生成一個(gè)默認(rèn)的負(fù)載測試用例形纺。
4.至此SoapUI模擬客戶端已經(jīng)完成丘侠。項(xiàng)目結(jié)構(gòu)如下:
- ChinaTVprogramWebServiceSoap和ChinaTVprogramWebServiceSoap12:是根據(jù)Soap的版本不同提供了兩種接口。
- 2 TestSuite:勾選了“Single TestCase with one Request for each Operation”生成的測試用例挡篓。
- CTV TestSuite:勾選了“One TestCase for each Operation”生成的測試用例婉陷。
運(yùn)行客戶端請求
打開getTVchannelDateSet請求,請求編輯器分為三個(gè)部分:1.頂部的工具欄以及端口地址官研;2.左側(cè)的請求區(qū)域秽澳;3.右側(cè)的響應(yīng)區(qū)域。模擬服務(wù)端
1.在模擬的客戶端基礎(chǔ)上,右擊ChinaTVprogramWebServiceSoap>Generate Soap Mock Service亥贸。2.創(chuàng)建mock service躬窜。
- Operations:接口都會(huì)在這里顯示,可以勾選選擇要生成mock service的接口方法炕置。
-
path&port:端口地址荣挨。運(yùn)行用例時(shí)的端口地址必須與這里一致。
3.雙擊打開getTVchannelDateSet的服務(wù)端朴摊,左側(cè)即是自動(dòng)生成的服務(wù)端報(bào)文默垄。
4.雙擊打開生成的服務(wù)端設(shè)置,點(diǎn)擊工具欄的設(shè)置按鈕(如下圖所示)甚纲,可以進(jìn)行修改服務(wù)端的path&port等參數(shù)口锭。
客戶端服務(wù)端聯(lián)調(diào)測試
為了更好地體現(xiàn)效果,我們先把服務(wù)端接口方法getTVchannelDateSet的返回報(bào)文修改為“Test”介杆。如下圖所示:2.修改客戶端的端口地址,與服務(wù)端一致这溅。并執(zhí)行請求组民,得到客戶端的返回值棒仍。
到這里一個(gè)用SoapUI模擬的客戶端和服務(wù)端就完成了悲靴。