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

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

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

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


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


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


在该脚本中,先创建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所示。





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所示。


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


在该实例脚本中利用了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所示。




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


本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

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

  1. 《软件功能测试自动化实战教程》—第6章6.3节参数化测试

    本节书摘来自异步社区<软件功能测试自动化实战教程>一书中的第6章6.3节参数化测试,作者51Testing网 , 周焕来 , 贾海涛,更多章节内容可以访问云栖社区"异步社区&qu ...

  2. 《软件功能测试自动化实战教程》—第6章6.4节Action测试输入的参数化

    本节书摘来自异步社区<软件功能测试自动化实战教程>一书中的第6章6.4节Action测试输入的参数化,作者51Testing网 , 周焕来 , 贾海涛,更多章节内容可以访问云栖社区&quo ...

  3. 《软件功能测试自动化实战教程》—第6章6.5节使用环境变量的参数化

    本节书摘来自异步社区<软件功能测试自动化实战教程>一书中的第6章6.5节使用环境变量的参数化,作者51Testing网 , 周焕来 , 贾海涛,更多章节内容可以访问云栖社区"异步 ...

  4. HQChart实战教程41 -新浪+腾讯A股数据源对接 - uniapp版本 (源码付费)

    HQChart实战教程41 -新浪+腾讯A股数据源对接 - uniapp版本 数据源 支持周期 平台支持 demo安卓apk下载 源码售价 580元 效果截图 HQChart代码地址 数据源 使用公开 ...

  5. 《Microduino实战》——第1章 开 源 硬 件

    本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第1章 开 ...

  6. 【Mybatis从入门到实战教程】第一章 Mybatis 入门

    一.Mybatis 入门 1.1 什么是MyBatis MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了goo ...

  7. 【转载保存】Lucene 实战教程第六章 Lucene 的精确、包含、集合查询 Query 的简单使用

    原链接:https://www.xttblog.com/?p=3532 所有的搜索基本上都存在精确匹配,包含等操作.Lucene 中同样存在这样的操作,今天我们以 IntPoint 为例,来说说 Lu ...

  8. 《Java8实战》-第六章读书笔记(用流收集数据-01)

    用流收集数据 我们在前一章中学到,流可以用类似于数据库的操作帮助你处理集合.你可以把Java 8的流看作花哨又懒惰的数据集迭代器.它们支持两种类型的操作:中间操作(如 filter 或 map )和终 ...

  9. ArcGIS Pro从0到1入门实战教程 书籍淘宝线上销售,免费下载数据和视频

    网址:https://m.tb.cn/h.USz9rbD?tk=cu0Vd2cABAV 购书后五星好评,加下面微信,截图发给我们:送Python电子书,下面是我们的微信 关注翎树文化,获得更多好书信息 ...

最新文章

  1. [EnterpriseServices]利用assembly定义我们的组件在COM+中的注册方式
  2. hdu4807枚举费用流
  3. STM32开发 -- Git的详细使用
  4. 后端:SpringBoot 的@Value注解,高级特性,非常实用!!
  5. LINQ to JavaScript
  6. 谷歌:一篇论文,让研究者吃我三份安利
  7. 一次项目测评反思:数据准备、测评要求和各种问题记录
  8. 基于Python+Django的失物招领平台系统设计
  9. Docker学习总结(56)——Docker-compose 基础知识温习
  10. 骆斌软件工程基础思维导图
  11. 使用 Flink Hudi 构建流式数据湖平台
  12. Add library ‘Maven: ..to classpath
  13. C++ opencv基于帧差法的关键帧提取
  14. 【机器学习】缺失值处理总结
  15. 样本不均衡及其解决办法
  16. python mysql library,python调用mysql报错解决方案
  17. 计算机个人市场调查实验报告,市场调查实验报告(一).doc
  18. JAVA初学者学习书籍推荐
  19. Android-Studio与Python环境配置
  20. Stata:多个变量组间均值\中位数差异检验

热门文章

  1. 10W+的爆款文章都是如何写出来的?
  2. LeetCode-912-排序数组
  3. linux查看sd卡系统类型,从SD卡启动linux系统
  4. 词霸的每日一句的api接口
  5. 我的世界earthmc服务器地图网站,minecraft V4.0The Earth地图
  6. 把matlab双坐标轴的颜色设置为黑色
  7. 数字黑洞C++ 程序设计,数字黑洞6174,你懂了吗
  8. 外链屏蔽解除?QQ还是打不开淘宝、抖音链接
  9. flex4 中获取Microphone,抑制回声和使用Speex编码音频的方法
  10. 人工智能之搜索策略-A*算法进阶