SoapUI 之 webService 接口测试 [5]

一、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。

SoapUI 之 webService 接口测试 [5]_第1张图片


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

SoapUI 之 webService 接口测试 [5]_第2张图片


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

SoapUI 之 webService 接口测试 [5]_第3张图片


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

SoapUI 之 webService 接口测试 [5]_第4张图片


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

SoapUI 之 webService 接口测试 [5]_第5张图片


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

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

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

SoapUI 之 webService 接口测试 [5]_第6张图片


2、第二、三、四步参数输入都依赖到了上一步的返回结果,这里进行下Property Transfer设置。

1) [第二步]getTVchannelDataSet请求。需要传入上一个请求获取到的areaID,这里插入Property Transfer进行如下设置:

SoapUI 之 webService 接口测试 [5]_第7张图片

 

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

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

SoapUI 之 webService 接口测试 [5]_第8张图片

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

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

SoapUI 之 webService 接口测试 [5]_第9张图片

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

SoapUI 之 webService 接口测试 [5]_第10张图片


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

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

SoapUI 之 webService 接口测试 [5]_第11张图片

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

SoapUI 之 webService 接口测试 [5]_第12张图片

 

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

SoapUI 之 webService 接口测试 [5]_第13张图片

 

你可能感兴趣的:(SoapUI 之 webService 接口测试 [5])