本章中学习如下内容:

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

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

1.1       前提条件

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

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

获得航班时刻表 DataSet

输入参数: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)飞行周期(星期)

getDomesticAirlinesTime 的请求如下:

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

最后我们把getDomesticAirlinesTime 加到测试用例中,如下图所示,准备工作就结束了。

1.2       准备Excel文件

根据getDomesticAirlinesTime 的请求,创建一个Excel文件,内容如下,时间和userID都不参数化,留空,采用默认值。

1.3       设置DataSource

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

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

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

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

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

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

1.4       接口中参数化

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

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

1.5       运行测试用例

如下图,打开TestCase运行测试

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

1.6       使用DataSource Loop循环取值

1)         新建步骤DataSource Loop

2)         配置DataSource Loop,如下图

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

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

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

SoapUI:使用Excel进行参数化的更多相关文章

  1. Selenium之利用Excel实现参数化

    Selenium之利用Excel实现参数化 说明:我是通过Workbook方式来读取excel文件的,这次以登陆界面为例 备注:使用Workbook读取excel文件,前提是excel需要2003版本 ...

  2. xlrd的使用详细介绍以及基于Excel数据参数化实例详解

    1.安装xlrd xlrd是python用于读取excel的第三方扩展包,所以在使用xlrd前,需要使用以下命令来安装xlrd.pip install xlrd 在使用这个命令之前先确定自己有没有安装 ...

  3. selenium利用Excel进行参数化(简单示例)

    上篇搭建好环境后,正真开始我的自动化之旅了.... 开始之前特别说明一下testNG的版本,不能直接使用Eclipse直接线上下载的版本,线上版本太高,不能兼容,运行程序会报以下错误,需要自行下载低一 ...

  4. Selenium+excel实现参数化自动化测试

    使用到的技术:POI对excel的解析.selenium自动化测试.junit 测试用例:登陆www.1905.com执行登陆-退出的操作 执行步骤: 1.首先创建一个excel,里面有用户名和密码列 ...

  5. [SoapUI] 设置Excel的第一行为自动过滤

    import org.apache.poi.ss.util.* XSSFWorkbook workbook = new XSSFWorkbook() XSSFSheet sheet = workboo ...

  6. 接口自动化测试持续集成--Soapui接口功能测试参数化

    按照自动化测试分层实现的原理,每一层的脚本实现都要进行参数化,自动化的目标就是要实现脚本代码与测试数据分离. 当测试数据进行调整的时候不会对脚本的实现带来震荡,从而提高脚本的稳定性与灵活度,降低脚本的 ...

  7. SoapUI+excel接口自动化测试简述

    1.自动化测试工具介绍 由于系统前后端分离,所以接口测试势在必行,在接触了几天接口测试框架,包括postman.httpclient.loadrunner.soapUI等,下面具体讲讲最终决定使用so ...

  8. loadrunner参数化excel数据

    LR参数化数据源Oracle,MSSQL,Excel参数化的方法: 重点介绍excel数据参数化的方法: 1.首先创建excel表格: 注意要写列明   2.创建excel表连接:   参数化完成后, ...

  9. 【QTP专题】05_参数化之Excel

    QTP使用外部Excel实现参数化主要有以下两种方式 导入到DataTable中 Syntax:DataTable.ImportSheet(FileName, SheetSource, SheetDe ...

随机推荐

  1. CvvImage类

    从OpenCV 2.2.0开始,OpenCV取消了CvvImage这个类.可是今天要用到,可以自己加入到工程中. 首先,找到CvvImage的原代码.我在网上已经找到了,具体代码如下. 这是CvvIm ...

  2. Android音频系统之AudioFlinger(二)

    1.1.1 音频设备的管理 虽然AudioFlinger实体已经成功创建并初始化,但到目前为止它还是一块静态的内存空间,没有涉及到具体的工作. 从职能分布上来讲,AudioPolicyService是 ...

  3. iOS图片缓存框架SDWebImage

    本文转发至: http://blog.csdn.net/uxyheaven/article/details/7909373 http://www.cocoachina.com/ios/20141212 ...

  4. ecos的setting

    类似windows的注册表 数据是存储在kvstore中的 当通过key在kvstore中取不到数据,会加载app/$app_name/setting.php,在setting.php中查找,找到后放 ...

  5. Hibernate批量提交

    的 批量插入(Batch inserts) 如果要将很多对象持久化,你必须通过经常的调用 flush() 以及稍后调用 clear() 来控制第一级缓存的大小. Session session = s ...

  6. openstack controller ha测试环境搭建记录(一)——操作系统准备

    为了初步了解openstack controller ha的工作原理,搭建测试环境进行学习. 在学习该方面知识时,当前采用的操作系统版本是centos 7.1 x64.首先在ESXi中建立2台用于测试 ...

  7. [iOS Animation]-CALayer 图层性能

    图层性能 要更快性能,也要做对正确的事情. ——Stephen R. Covey 在第14章『图像IO』讨论如何高效地载入和显示图像,通过视图来避免可能引起动画帧率下降的性能问题.在最后一章,我们将着 ...

  8. JAVA基础--工厂模式

    interface Fruit{ // 定义一个水果接口 public void eat() ; // 吃水果 } class Apple implements Fruit{ public void ...

  9. C缺陷与陷阱----读书笔记---第一章

    第一章:词法陷阱 编译器中负责将程序分解为一个一个符号的部分,一般称为“词法分析器”.例如,对于语句: if ( x == big ) big = x ; 它的第一个符号是C语言关键字if,紧接着下一 ...

  10. FZU 2112 Tickets

    这个问题可以转变一下,先要知道有几个连通块,连通块之间肯定需要添加一条边, 还需要知道每个连通块内部需要添加几条边,这个问题等价于求一张图至少需要几笔画成,这个问题的答案是度为奇数的点的个数/2 #i ...