《软件功能测试自动化实战教程》—第6章6.7节文件数据源的数据驱测试

简介: 执行数据驱测试前要先定义测试所需的数据源,数据驱动测试的数据源除了UFT自带的DataTable之外,可以是文本文件、Excel文件、数据库表格等。

本节书摘来自异步社区《软件功能测试自动化实战教程》一书中的第6章6.7节文件数据源的数据驱测试,作者51Testing网 , 周焕来 , 贾海涛,更多章节内容可以访问云栖社区“异步社区”公众号查看。

6.7 文件数据源的数据驱测试
软件功能测试自动化实战教程
执行数据驱测试前要先定义测试所需的数据源,数据驱动测试的数据源除了UFT自带的DataTable之外,可以是文本文件、Excel文件、数据库表格等。本小节主要列举了以文本文件或者以Excel文件为代表的文件数据源的数据驱动测试实例。

6.7.1 文本文件作为数据源
在本实例中以UFT自带订票系统为例讲解如何使用文本文件存储数据源实现数据驱动测试。

首先,录制订票系统的业务流程,如图6-44所示:


1d5381041e65455378c699d2d32a6e090ab1d9f9

其次,用记事本编辑一个文本文件作为测试的数据源,在文本文件中的每一行测试数据包括了订票系统中预订航班的时间、航班预订的起点、航班预订的终点及航班表名称,它们代表了调用订票系统做的一个测试动作。这四个输入数据采用分号将其分隔开,把文件保存为DataCase.txt文件存放于C盘中,格式如下:

d5de10287f6b5180fa2a4e9cd9448916dd314762

然后,在录制好的UFT脚本中编辑脚本实现文本文件作为数据源的数据驱动测试。修改后的UFT脚本如下:

d69b8f4bbd02577a47c881c55ffa5d598b859e2e

在该脚本中,先创建FileSystemObject对象,该对象是Windows文件系统对象,它可以将一系列操作文件和文件夹的动作通过调用对象本身的属性直接实现。在本实例中采用的是OpenTextFile函数对文件进行读、写或追加。再采用SystemUtil对象的Run方法打开UFT中的订票系统,在循环中访问数据文件,每次读入一行数据直到最后一行,每一行采用Split函数按分号“;”切割取到每个变量对应的数据,在本实例订票系统的脚本中预订航班的时间数据、航班起点、航班终点、名称分别就可以用DataStr(0)、DataStr(1)、DataStr(2)、DataStr(3)替换。

编辑完脚本后,运行UFT就可以实现外部数据源的数据驱动测试,由于在DataCase.txt文件中包括了3行数据,则订票系统一共要运行3次。运行结果如图6-45、图6-46和图6-47所示。


2ae9c93105a05e2e51479c18fa9e00f7c9e5aa06


6cf8a2129af530e5619df858243c1f4da5de8c83


bcfbd146287c556623ed4f02ee1315ca7f530583


7ee655311c92d8dbe1f2167d3afac7972a42327d

6.7.2 Excel作为数据源
用Excel组织测试数据是采用外部数据源进行数据驱动测试中很常见的一种方法。采用文本文件作为数据源的一个不足点就是用户需要自己定义数据之间的分隔符,并且在读入数据时用Split函数来进行分割。然而采用Excel文件作为数据源则可以避免这个不足,因为Excel本身就是用于数据表格存储的,每一个数据采用一个单元格存储。在本实例中仍然以UFT自带订票系统为例讲解如何使用Excel文件存储数据源实现数据驱动测试。在本实例中,业务流程与文本文件作为外部数据源的数据驱动测试一样,因此它的脚本如图6-44所示。

然后设计数据源,在Excel表格中每一行测试数据包括了订票系统中预订航班的时间(Data_of_Flight)、航班预订的起点(Fly_From)、航班预订的终点(Fly_To)及名称(Custom_Name),执行表格中的一行就代表订票系统的一个测试动作。将Excel中数据3行数据以名为DataCase1.xls保存于C盘中,Excel中数据格式如图6-49所示。


98989b03d9a2ae4ebeb42fb522187bfff14dbdaa

其次,在录制好的UFT脚本中再次编辑脚本实现Excel文件作为数据源的数据驱动测试。修改后的UFT脚本如图6-50所示。

abdfb67206ec9d41e41a77a9f06d04f8446f5dfa

在该实例脚本中利用了Excel的COM接口进行编程,首先在脚本中创建了Excel.Application对象。Application对象是Excel对象模型中最高层级的对象,代表Excel应用程序自身,它包括工作簿、工作表、单元格集合及它们包含的数据。利用Workbooks对象的Open方法打开工作簿的文件名,通过设置对应的工作表以后就可以通过Worksheet.Cells 属性找到工作表中的对象变量。那么,订票系统中测试的对象预订航班的时间(Data_of_Flight)、航班预订的起点(Fly_From)、航班预订的终点(Fly_To)及名称(Custom_Name)分别用sheet.Cells(rowcout,1)、sheet.Cells(rowcout,
2)、sheet.Cells(rowcout,3)、sheet.Cells(rowcout,4)替换,rowcout代表了Excel的行数。最后,循环访问数据文件,每次读入一行数据直到运行到Excel表中的末尾。

编辑完脚本后,运行UFT实现Excel文件外部数据源的数据驱动测试,由于在DataCase1.xml文件中包括了3行数据,则订票系统一共要运行3次。运行结果如图6-51、图6-52和图6-53所示。


7ca41d9034ca7401362be3d886ab804904db81dd


9872bca0243c517550fd1851da9b9610c06439a9


17a06970ca50fd2aaa1bc0398974862ff4786ae1

最后,查看运行结果,如图6-54所示。


780ad427c40d15b6cb151b80ca078d3be7d8aa27

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。
相关文章
|
15天前
|
人工智能 搜索推荐 Serverless
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
35 7
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
|
25天前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
20 1
|
25天前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
24 1
|
25天前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到"hand.txt"文件。
|
28天前
|
算法 异构计算
m基于FPGA的电子钟verilog实现,可设置闹钟,包含testbench测试文件
该文介绍了基于FPGA的电子钟设计,利用Vivado2019.2平台进行开发并展示测试结果。电子钟设计采用Verilog硬件描述语言,核心包括振荡器、分频器和计数器。时间显示为2个十进制格式,闹钟功能通过存储器和比较器实现,当当前时间等于设定时间时触发。文中给出了Verilog核心程序示例,展示了时钟信号、设置信号及输出的交互。
26 2
|
16天前
|
Web App开发 前端开发 Java
《手把手教你》系列技巧篇(九)-java+ selenium自动化测试-元素定位大法之By name(详细教程)
【4月更文挑战第1天】 这篇教程介绍了如何使用Selenium Webdriver通过name属性来定位网页元素,作为系列教程的一部分,之前讲解了id定位,后续还会有其他六种定位方法。文中以百度搜索为例,详细说明了定位搜索框(name="wd")并输入关键词“北京宏哥”的步骤,包括手动操作流程、编写自动化脚本以及代码实现。此外,还提供了查看和理解Selenium源码的方法,强调了`open implementation`选项用于查看方法的具体实现。整个过程旨在帮助读者学习Selenium的元素定位,并实践自动化测试。
37 0
|
29天前
|
Web App开发 存储 JavaScript
《手把手教你》系列技巧篇(八)-java+ selenium自动化测试-元素定位大法之By id(详细教程)
【2月更文挑战第17天】本文介绍了Web自动化测试的核心——元素定位。文章首先强调了定位元素的重要性,指出找不到元素则无法进行后续操作。Selenium提供八种定位方法,包括By id、name、class name等。其中,By id是最简单快捷的方式。文章还阐述了自动化测试的步骤:定位元素、操作元素、验证结果和记录测试结果。此外,讨论了如何选择定位方法,推荐优先使用简单稳定的方式,如id,其次考虑其他方法。最后,作者提供了Chrome浏览器的开发者工具作为定位元素的工具,并给出了通过id定位的代码示例。
50 0
|
12天前
|
前端开发 Java 测试技术
《手把手教你》系列技巧篇(十二)-java+ selenium自动化测试-元素定位大法之By link text(详细教程)
【4月更文挑战第4天】本文介绍了link text在自动化测试中的应用。Link text是指网页中链接的文字描述,点击可跳转至其他页面。文章列举了8种常用的定位方法,其中着重讲解了link text定位,并通过实例展示了如何使用Java代码实现点击百度首页的“奥运奖牌榜 最新排名”链接,进入相应页面。如果link text不准确,则无法定位到元素,这说明linkText是精准匹配,而非模糊匹配。文章还提到了partial link text作为link text的模糊匹配版本,将在后续内容中介绍。
35 4
|
10天前
|
XML 前端开发 Java
《手把手教你》系列技巧篇(十四)-java+ selenium自动化测试-元素定位大法之By xpath上卷(详细教程)
【4月更文挑战第6天】按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath。xpath 的定位方法, 非常强大。使用这种方法几乎可以定位到页面上的任意元素。xpath 是XML Path的简称, 由于HTML文档本身就是一个标准的XML页面,所以我们可以使用Xpath 的用法来定位页面元素。XPath 是XML 和Path的缩写,主要用于xml文档中选择文档中节点。基于XML树状文档结构,XPath语言可以用在整棵树中寻找指定的节点。
41 0
|
5天前
|
Web App开发 测试技术 网络安全

热门文章

最新文章