去年年底接手的一个模块测试任务中,涉及到了WebService。然而服务端提供的测试数据极其少,所以就利用SoapUI模拟服务端,来测试客户端的程序。
SoapUI的安装
- SoapUI是一个开源测试工具,通过soap/http来检查、调用、实现Web Service的功能/负载/符合性测试。该工具既可作为一个单独的测试软件使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。
下载路径:https://www.soapui.org/ - 因为实际的项目不适合拿出来分享,所以就在网上找了资源,在这里也分享给大家。使用的接口实例是中国电视节目表WEB服务WSDL地址:http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl
模拟客户端
1.打开SoapUI>File>New SOAP Project,新建Soap工程。2.填入工程的信息。
- Project Name:工程名字,取一个适合这个项目的名称。
- Initial WSDL:http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl
- “Create Requests”:勾选之后项目会根据WSDL文件创建每个接口的请求文件。
- “Create TestSuite”:勾选之后项目就会给WSDL创建一个测试套件。
点击OK之后会弹出创建TestSuite的界面。
- One TestCase for each Operation:为每个接口的请求都创建一个测试用例。
- Single TestCase with one Request for each Operation:讲所有的接口请求放在一个测试用例里。
- Create new empty request:创建一个空的请求。
- Operations:WSDL里的接口都会在这里显示,可以勾选选择要测试的接口方法。
-
Generate LoadTests:为每个创建好的测试用例生成一个默认的负载测试用例。
4.至此SoapUI模拟客户端已经完成。项目结构如下:
- ChinaTVprogramWebServiceSoap和ChinaTVprogramWebServiceSoap12:是根据Soap的版本不同提供了两种接口。
- 2 TestSuite:勾选了“Single TestCase with one Request for each Operation”生成的测试用例。
- CTV TestSuite:勾选了“One TestCase for each Operation”生成的测试用例。
运行客户端请求
打开getTVchannelDateSet请求,请求编辑器分为三个部分:1.顶部的工具栏以及端口地址;2.左侧的请求区域;3.右侧的响应区域。模拟服务端
1.在模拟的客户端基础上,右击ChinaTVprogramWebServiceSoap>Generate Soap Mock Service。2.创建mock service。
- Operations:接口都会在这里显示,可以勾选选择要生成mock service的接口方法。
-
path&port:端口地址。运行用例时的端口地址必须与这里一致。
3.双击打开getTVchannelDateSet的服务端,左侧即是自动生成的服务端报文。
4.双击打开生成的服务端设置,点击工具栏的设置按钮(如下图所示),可以进行修改服务端的path&port等参数。
客户端服务端联调测试
为了更好地体现效果,我们先把服务端接口方法getTVchannelDateSet的返回报文修改为“Test”。如下图所示:2.修改客户端的端口地址,与服务端一致。并执行请求,得到客户端的返回值。
到这里一个用SoapUI模拟的客户端和服务端就完成了。