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

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。
相关文章
|
3天前
|
机器学习/深度学习 人工智能 算法
探索软件测试的前沿技术:AI与自动化的融合
在数字化时代的浪潮中,软件测试领域正经历着前所未有的变革。本文深入探讨了人工智能(AI)和自动化技术如何重塑软件测试的未来。通过分析最新的行业报告、案例研究和专家访谈,我们揭示了这些技术如何提升测试效率、准确性和灵活性。文章还讨论了实施这些技术的可能挑战和解决方案,为读者提供了宝贵的行业见解和实用建议。
38 6
|
7天前
|
机器学习/深度学习 人工智能 算法
探索软件测试的未来:AI与自动化的融合之路
【7月更文挑战第19天】在数字化时代的浪潮中,软件测试领域正经历着前所未有的变革。随着人工智能(AI)技术的飞速发展和自动化测试工具的不断进步,传统的测试方法正在被重新定义。本文将深入探讨AI如何赋能软件测试,提升测试效率和质量,以及自动化测试在未来软件生命周期中的角色和挑战,为读者揭示一个智能化、高效率的软件测试新纪元。
|
2天前
|
测试技术
软件测试自动化策略与实施:提升质量与效率的关键
【7月更文挑战第25天】软件测试自动化是提高软件质量和效率的重要手段。通过明确自动化测试目标、选择合适的测试工具、制定详细的测试计划、建立稳定的测试框架以及持续优化与迭代,企业可以构建高效、可靠的自动化测试体系。在实施过程中,注重与项目团队的沟通与协作,确保自动化测试与项目开发的紧密结合,共同推动产品质量的不断提升。
|
3天前
|
机器学习/深度学习 人工智能 算法
探索软件测试的未来趋势:AI与自动化的融合
在技术不断演进的今天,软件测试领域正经历着前所未有的变革。本文将深入探讨人工智能(AI)和自动化技术如何重塑软件测试的面貌,从智能化测试用例生成到持续集成中的自动缺陷识别,我们将揭示这些技术如何提高测试效率、准确性和覆盖率。通过具体案例分析,本文旨在为读者提供对未来软件测试趋势的洞见,并讨论实施过程中的挑战与机遇。
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试的未来趋势:AI与自动化的融合
随着技术的不断进步,软件测试领域正迎来一场革命。本文将探讨人工智能(AI)和自动化技术如何共同推动软件测试的发展,提高测试效率,减少人为错误,并预测未来的发展趋势。通过分析当前市场上流行的测试工具和方法,以及它们如何整合AI和自动化技术,我们将揭示这一领域即将迎来的变革。
12 2
|
5天前
|
测试技术
测试过程中如何有效利用自动化测试
测试过程中如何有效利用自动化测试
|
4天前
|
机器学习/深度学习 人工智能 测试技术
软件测试的未来:自动化与人工智能的融合
随着技术的不断进步,软件测试领域正经历着一场变革。传统的手动测试方法正在逐渐被自动化测试所取代,而人工智能(AI)的引入则进一步推动了这一进程。本文将探讨自动化测试的现状和未来发展趋势,以及AI如何与自动化测试相结合,提高测试效率和质量。我们将通过具体的案例和数据来展示自动化和AI在软件测试中的应用,并讨论这一趋势对测试人员技能要求的影响。
13 1
|
9天前
|
机器学习/深度学习 人工智能 算法
探索软件测试的未来:AI与自动化的融合
【7月更文挑战第18天】本文旨在探讨人工智能(AI)和自动化技术如何共同推动软件测试领域的革新。通过分析当前软件测试面临的挑战,我们将深入讨论AI在提高测试效率、准确性以及发现复杂错误中的作用。文章将展示AI技术如何辅助测试自动化,优化测试用例生成,以及预测潜在缺陷,从而为测试人员提供更智能、高效的测试解决方案。最后,我们将展望AI和自动化技术在未来软件测试中的发展潜力和趋势。
|
10天前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
27 2
|
10天前
|
SQL DataWorks 数据可视化
DataWorks操作报错合集之测试OSS数据源的连通性时,出现503 Service Temporarily Unavailable的错误,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。