SoapUI 之 webService 接口测试

本贴最后更新于 780 天前,其中的信息可能已经沧海桑田

一、webservice接口实例说明

学习的话,大家可以自行到网上找 一些免费的webservice接口来练手。本文中选择实例为:中国电视节目预告(电视节目表) WEB 服务。

Endpoint : http://ws.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx

Disco : http://ws.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?disco

WSDL : http://ws.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl

浏览器输入:http://ws.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx 即可获取到这个接口的相关说明,以下简单罗列下这个接口的相关业务。

[第一步] getAreaDataSet: 获得支持的省市(地区)和分类电视列表 DataSet。

输入参数:无;返回数据:DataSet,结构为:Item(areaID)=省市和分类电视ID,Ietm(Area)=省市和分类电视名称,Item(Zone)=所属地区。

[第二步] getTVstationDataSet: 通过省市ID或分类电视ID获得电视台列表 DataSet

输入参数:theAreaID = 省市ID或分类电视ID(Integer);返回数据:DataSet,结构为:Item(tvStationID)=电视台ID,Ietm(tvStationName)=电视台名称。

[第三步] getTVchannelDataSet : 通过电视台ID获得该电视台频道列表 DataSet

输入参数:theTVstationID = 电视台ID(Integer);返回数据:DataSet,结构为:Item(tvChannelID)=频道ID,Ietm(tvChannel)=频道名称。

[第四步] getTVprogramDateSet : 通过频道ID获得该频道节目列表 DataSet

输入参数:theTVchannelID = 频道ID(Integer),theDate=日期(String 格式:yyyy-MM-dd,如:2007-07-02,空则默认当天),userID=商业用户ID(String 免费用户不需要);返回数据:DataSet,结构为:Item(playTime)=播出时间,Ietm(meridiem)=PM或AM,Ietm(tvProgram)=节目信息,Item(tvStationInfo)=电视台信息。



### 二、创建soap项目,运行单个接口,能否跑通
  1. 右键Projects -->New SOAP Project ,在弹框界面的“initial WSDL” 输入实例的WSDL地址,点击ok。

image.png


2. [第一步]getAreaDataSet请求。参数无,点击运行,获得支持的省市(地区)和分类电视列表。

image.png


3. [第二步] getTVstationDataSet请求。参数输入[第一步]获取到的areaID:18(想查看湖南地区的,所以输入18),点击运行,获得电视台列表。

image.png


4. [第三步] getTVchannelDataSet请求。参数输入[第二步]获取到的tvStationID:98,点击运行,获得该电视台频道列表。

image.png


5. [第四步] getTVprogramDateSet请求。theTVchannelID输入[第三步]获取到的tvChannelID:290、theDate输入2019-11-11、userID没有商业用户选择不输入。点击运行,获得该频道节目列表。

image.png



### 三、构建测试用例,进行脚本优化,执行测试用例

1、右键 ChinaTVprogramWebService 工程-->New TestSuite,右键TestSuite-->New TestCase。

将上面第一步到第四步的request请求,拖动添加到Test Steps中,按第一步~第四步调整request请求的顺序如下。

image.png


**2、第二、三、四步参数输入都依赖到了上一步的返回结果,这里进行下Property Transfer设置。**
  1. [第二步]getTVchannelDataSet请求。需要传入上一个请求获取到的areaID,这里插入Property Transfer进行如下设置:

image.png

这里说明下Source跟Target的XPath表达式是怎么来的:

a、获取到getAreaDataSet的response进行分析如下:

image.png

b、获取到getTVstationDataSet的request进行分析如下:

image.png

  1. [第三步]getTVstationDataSet请求。需要传入需要传入上一个请求获取到的tvStationID,这里Property Transfer进行如下设置:

image.png

  1. [第四步]getTVstationDataSet请求。需要传入上一个请求获取到的tvChannelID,这里Property Transfer进行如下设置:

image.png


**3、继续优化脚本,将最后一个getTVstationDataSet请求中传入的theDate参数进行变量设置,并且进行变量引用**

a、右键Test Steps-->Add Step-->Properties,然后设置变量date及赋值

image.png

b、双击getTVstationDataSet请求,将theDate传值为${Properites#date}

image.png

4、双击执行TestCase,测试完成。可自行查看测试结果。

image.png

1 操作
potato 在 2020-08-13 10:04:53 更新了该帖
回帖
请输入回帖内容 ...