SouapUI接口测试之使用Excel进行参数化

简介: 前言这次我们使用“国内飞机航班时刻表 WEB 服务”接口来练手,因为接口中的方法“getDomesticAirlinesTime ”需要输入多个参数,正符合我们的要求。

前言

这次我们使用“国内飞机航班时刻表 WEB 服务”接口来练手,因为接口中的方法“getDomesticAirlinesTime ”需要输入多个参数,正符合我们的要求。

国内飞机航班时刻表 WEB 服务

公用事业

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

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

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

本篇学习如下内容:

1).使用DataSource调用Excel中的数据给接口参数化;

2).使用DataSource Loop使得测试用例根据Excel中的取值循环执行。

一、获得航班时刻表 DataSet

1.我们看一下方法“getDomesticAirlinesTime ”的介绍:

输入参数:startCity = 出发城市(中文城市名称或缩写、空则默认:上海);lastCity = 抵达城市(中文城市名称或缩写、空则默认:北京);theDate = 出发日期(String 格式:yyyy-MM-dd,如:2007-07-02,空则默认当天);userID = 商业用户ID(免费用户不需要)

返回数据:DataSet,Table(0)结构为 Item(Company)航空公司、Item(AirlineCode)航班号、Item(StartDrome)出发机场、Item(ArriveDrome)到达机场、Item(StartTime)出发时间、Item(ArriveTime)到达时间、Item(Mode)机型、Item(AirlineStop)经停、Item(Week)飞行周期(星期)

2.getDomesticAirlinesTime 的请求如下:

img_72f587c971c08c58ffae5dbbae3fd31e.png
getDomesticAirlinesTime 请求

3.输入始发城市和终止城市得到如下响应:

img_3dda8f0d48ed49e0b4e2f9c110171c9a.png
响应结果

4.把getDomesticAirlinesTime 加到测试用例中

img_3ce8c9feff1704321b94f1c2f80f8b8b.png
getDomesticAirlinesTime添加到测试用例

二、准备Excel文件

1.根据getDomesticAirlinesTime 的请求,创建一个Excel文件,内容如下,时间和userID都不参数化,留空,采用默认值(目前soapui只支持xls的)。

img_a26f878dd0fe43ce84f5e4be9b54d5d7.png
Excel文档

三、设置DataSource

注意:免费版的SoapUI是没有DataSource这个功能的。

1.在测试用例中添加步骤DataSource,如下图

img_4b3dc5e2430c2d63271f862a07aa6d8c.png
设置DataSource

2.配置DataSource数据来源,如下图选择数据来源为“Excel”并填写EXCEL数据的相关信息

img_18a47cbb316c62f463b9ebef04741839.png
配置DataSource数据

3.在DataSource中添加参数,相对应EXCEL有几个就添加几个参数,一一对应,如下图所示:

img_4ae6a9d37d6bf11694033cbc0afdb63c.png
添加参数

4.运行DataSource取得Excel中的参数值,如下图所示,取两2行数据

img_0f63b065ae74a6a9937487525625565b.png
取得Excel中的参数值

5.当然,也可以设置取哪一行到哪一行的数据,如下图所示:

img_e3ed5fbfff3552c45710df115797f2dd.png
设置数据

四、接口中参数化

1.配置好DataSource好,就可以在接口中进行参数化了,如下图所示,测试用例中打开“getDomesticAirlinesTime”选择要参数化的地方 > 右键选择“Get Data..” > 选择刚才配置的DataSource > 再选择对应的参数。

img_7b2a142a84722ad493821c83763a8f26.png
接口参数化

2.如下,已配置好参数(其实我们手写这个代码也可以):

img_0b911bbb4f4359f4bf94bc22881d8703.png
配置参数代码

五、运行测试用例

1.如下图,打开TestCase运行测试

img_32e94d32740ae20b305fe9f900f07640.png
运行测试用例

2.在“TestCase Log”双击步骤“getDomesticAirlinesTime”,打开“Message Viewer”窗口,可以检查请求信息中的参数值,如下图所示,与Excel中的值一至。

img_11d218bc3dae822d1cd0eab2981ac2e3.png
查看请求数据

六、使用DataSource Loop循环取值

1. 新建步骤DataSource Loop

img_5ca5828370823e3be5f424e58624b000.png
创建DataSource Loop

2.配置DataSource Loop,如下图

img_eac6b68ac9960e2062203af7fcdd3661.png
配置DataSource Loop

3.配置好DataSource Loop后还需要调整一下步骤顺序,正确的步骤应当是“数据源---请求----数据源循环”。如下图是我调整好的步骤顺序:

img_da8572c8a441b44511ea2aaebe40e3fd.png
调整步骤顺序

4.最后运行TestCase,如下图在日志中可以看到接口循环执行了:

img_08b7dd8a726d255f83c95bec472e954c.png
查看日志

5.最后还要说一点,我们可以设置TestCase的属性,使得在当前循环不通过时,跳到下一个循环(循环执行的时候这个比较重要)。如下图,打开TestCase option窗口,去掉“Abort test if an error occurs”的构选:

img_87b6f58b900f693814c0c240327f6522.png
设置TestCase属性

参考来源:helenMemery

目录
相关文章
|
3月前
|
存储 测试技术 Python
软件测试/测试开发全日制|Pytest结合Excel实现数据驱动
软件测试/测试开发全日制|Pytest结合Excel实现数据驱动
40 0
|
6月前
|
Java 测试技术 程序员
|
10月前
Apifox测试导出excel接口
Apifox测试导出excel接口
245 0
|
7月前
|
Java 程序员 网络安全
JUnit5学习之六:参数化测试(Parameterized Tests)基础
了解JUnit5的参数化测试的基本知识
117 2
JUnit5学习之六:参数化测试(Parameterized Tests)基础
|
2月前
|
测试技术 数据库
参数化单元测试
参数化单元测试
17 0
|
2月前
|
测试技术 数据处理 Python
测试报告导出PDF和excel的方法
测试报告导出PDF和excel的方法
|
2月前
|
存储 测试技术 数据库
数据驱动测试中的参数化
数据驱动测试中的参数化
|
3月前
|
测试技术 开发者
软件测试/测试开发/全日制|Pytest参数化神器,pytest.mark.parametrize()使用
软件测试/测试开发/全日制|Pytest参数化神器,pytest.mark.parametrize()使用
28 0
|
8月前
|
测试技术 Python
pytest--运行指定的测试和参数化
pytest--运行指定的测试和参数化
|
8月前
|
XML SQL JSON
软件测试|JMeter 参数化的方式有哪些
软件测试|JMeter 参数化的方式有哪些
79 0