QTP自动化测试:Excel数据对比函数分享

需积分: 10 1 下载量 68 浏览量 更新于2024-09-09 收藏 78KB PDF 举报
"这篇内容是关于如何在QTP (QuickTest Professional,现在称为UFT - Unified Functional Testing)中进行Excel文件的比较。作者Wally(俞戴龙)提供了两个Excel比较的函数,帮助用户实现数据的对比和显示对比结果。" 在自动化测试中,QTP(现称为UFT)是一种强大的功能测试工具,它允许用户对各种应用程序进行测试,包括与Excel数据文件的交互。在QTP中处理Excel文件通常用于数据驱动测试,其中测试数据存储在Excel工作表中,QTP可以从这些工作表中读取数据并执行相应的测试步骤。 在描述的场景中,Wally提供的两个Excel比较的函数旨在解决自动化测试中的一个常见需求:验证两个Excel文件或工作表的数据是否一致。这对于回归测试、数据校验或比较测试结果非常有用。下面将详细解释这两个函数的工作原理: 1. **comparetwoexcels 函数**: 这个函数的主要目的是比较两个Excel文件的所有数据,并返回一个字符串结果,表示两个文件是否相等。函数需要两个参数,即要比较的Excel文件的完整路径。它首先打开这两个文件,然后逐行逐列比较它们的内容,如果发现不匹配的数据,则设置标志变量`diffFlag`为True。 2. **内部逻辑**: 在函数中,创建了两个对象,`srcData1` 和 `srcDoc1`,分别代表Excel应用实例和要打开的工作簿。通过`srcData1.Workbooks.Open(excelFullPath1)`和`srcData1.Workbooks.Open(excelFullPath2)`来打开Excel文件。接着,获取每个工作表的行数(`rows1` 和 `rows2`)和列数(`columns1` 和 `columns2`),并初始化一个二维数组 `srcData1` 来存储第一个Excel文件的数据。 3. **数据比较**: 使用循环结构遍历两个Excel文件的每个单元格,通过`tempDoc1.Cells(i, j).Value`和`tempDoc2.Cells(i, j).Value`获取单元格的值,然后进行比较。如果发现不匹配,`diffFlag`被设置为True,表示存在差异。 4. **返回结果**: 当所有单元格都比较完后,函数会检查`diffFlag`的状态。如果`diffFlag=False`,则返回字符串 "equal",表示两个Excel文件内容相同;否则,返回差异信息,表明文件不一致。 通过这种方式,测试人员可以在自动化测试脚本中调用这个函数,以确保每次测试运行时的数据与预期或基线数据保持一致。这种功能增强了测试的准确性和可靠性,尤其是在需要大量数据验证的情况下。