《软件功能测试自动化实战教程》—第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

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。
相关文章
|
6月前
|
前端开发 测试技术 API
测试金字塔:别再只盯着UI自动化了
测试金字塔:别再只盯着UI自动化了
606 116
|
6月前
|
敏捷开发 测试技术 API
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
496 116
|
6月前
|
设计模式 前端开发 测试技术
告别脆弱:构建稳定UI自动化测试的3个核心策略
告别脆弱:构建稳定UI自动化测试的3个核心策略
627 113
|
6月前
|
人工智能 自然语言处理 测试技术
从人工到AI驱动:天猫测试全流程自动化变革实践
天猫技术质量团队探索AI在测试全流程的落地应用,覆盖需求解析、用例生成、数据构造、执行验证等核心环节。通过AI+自然语言驱动,实现测试自动化、可溯化与可管理化,在用例生成、数据构造和执行校验中显著提效,推动测试体系从人工迈向AI全流程自动化,提升效率40%以上,用例覆盖超70%,并构建行业级知识资产沉淀平台。
从人工到AI驱动:天猫测试全流程自动化变革实践
|
6月前
|
数据采集 JSON JavaScript
Cypress 插件实战:让测试更稳定,不再“偶尔掉链子”
本文分享如何通过自定义Cypress插件解决测试不稳定的痛点。插件可实现智能等待、数据预处理等能力,替代传统硬性等待,有效减少偶发性失败,提升测试效率和可维护性。文内包含具体实现方法与最佳实践。
|
6月前
|
人工智能 自然语言处理 JavaScript
利用MCP Server革新软件测试:更智能、更高效的自动化
MCP Server革新软件测试:通过标准化协议让AI实时感知页面结构,实现自然语言驱动、自适应维护的自动化测试,大幅提升效率,降低脚本开发与维护成本,推动测试左移与持续测试落地。
|
7月前
|
人工智能 数据可视化 测试技术
Postman 性能测试教程:快速上手 API 压测
本文介绍API上线后因高频调用导致服务器告警,通过Postman与Apifox进行压力测试排查性能瓶颈。对比两款工具在批量请求、断言验证、可视化报告等方面的优劣,探讨API性能优化策略及行业未来发展方向。
Postman 性能测试教程:快速上手 API 压测
|
7月前
|
存储 关系型数据库 测试技术
玩转n8n测试自动化:核心节点详解与测试实战指南
n8n中节点是自动化测试的核心,涵盖触发器、数据操作、逻辑控制和工具节点。通过组合节点,测试工程师可构建高效、智能的测试流程,提升测试自动化能力。
|
6月前
|
测试技术 API 数据库
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
518 114