去年年底接手的一个模块测试任务中,涉及到了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工程。 新增soap工程.png2.填入工程的信息。 创建Soap工程界面.png
- 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模拟客户端已经完成。项目结构如下: CTV工程.png
- ChinaTVprogramWebServiceSoap和ChinaTVprogramWebServiceSoap12:是根据Soap的版本不同提供了两种接口。
- 2 TestSuite:勾选了“Single TestCase with one Request for each Operation”生成的测试用例。
- CTV TestSuite:勾选了“One TestCase for each Operation”生成的测试用例。
运行客户端请求
打开getTVchannelDateSet请求,请求编辑器分为三个部分:1.顶部的工具栏以及端口地址;2.左侧的请求区域;3.右侧的响应区域。 request.png 接口getTVchannelDataSet的请求中“?”表示要入参,若不入参,运行则会出错。 无入参出错.png 输入正确的参数之后,再运行就会得到返回值。 入参得到返回值.png模拟服务端
1.在模拟的客户端基础上,右击ChinaTVprogramWebServiceSoap>Generate Soap Mock Service。 创建soap mock service.png2.创建mock service。 mock service创建界面.png
- Operations:接口都会在这里显示,可以勾选选择要生成mock service的接口方法。
-
path&port:端口地址。运行用例时的端口地址必须与这里一致。
3.双击打开getTVchannelDateSet的服务端,左侧即是自动生成的服务端报文。 mock service.png
4.双击打开生成的服务端设置,点击工具栏的设置按钮(如下图所示),可以进行修改服务端的path&port等参数。 修改mock service设置.png
客户端服务端联调测试
为了更好地体现效果,我们先把服务端接口方法getTVchannelDateSet的返回报文修改为“Test”。如下图所示: 修改服务端报文.png 1.发布服务端。点击下图所示的执行按钮: 执行服务端.png2.修改客户端的端口地址,与服务端一致。并执行请求,得到客户端的返回值。 接收服务端返回值.png
到这里一个用SoapUI模拟的客户端和服务端就完成了。
网友评论