QTP使用Excel自动化模型对象基础操作详解

需积分: 3 1 下载量 55 浏览量 更新于2024-09-14 收藏 304KB DOC 举报
"QTP对Excel的基本操作,包括使用ExcelAutomationObjectModel(EOM)进行自动化测试中的数据驱动,以及一些关键的VBA代码示例。" 在自动化测试领域,QuickTest Professional(QTP,现在被称为UFT - Unified Functional Testing)是一种广泛应用的工具,它允许用户创建和执行功能测试脚本。尽管QTP自身的dataTable功能可以方便地处理数据,但熟练掌握Excel自动化模型对象(EOM)能提供更大的灵活性和控制力。EOM允许测试工程师直接与Excel工作簿和工作表进行交互,实现数据驱动测试,特别是在处理复杂或大量数据时。 以下是一段VBA代码,展示了如何使用EOM来操作Excel: 首先,引入必要的对象: ```vbscript Dim fileName, filePath Dim excelApp, fso, sheet, shell ``` 接着,创建Excel应用程序对象: ```vbscript Set excelApp = CreateObject("Excel.Application") ``` 创建文件系统对象和外壳对象,用于后续操作: ```vbscript Set fso = CreateObject("Scripting.FileSystemObject") Set shell = CreateObject("WScript.Shell") ``` 定义文件名和路径,并使Excel可见: ```vbscript fileName = "d:\1.xls" filePath = "d:\1" excelApp.Visible = True ``` 添加新的工作簿并保存: ```vbscript excelApp.Workbooks.Add excelApp.Save fileName excelApp.Quit ``` 重新打开已保存的工作簿并保持可见: ```vbscript excelApp.Workbooks.Open fileName excelApp.Visible = True ``` 添加新的工作表并命名: ```vbscript Set sheet = excelApp.Sheets.Add sheet.name = "sunyu" ``` 写入单元格数据: ```vbscript sheet.cells(1, 1) = "hello world" ``` 最后,使用外壳对象模拟键盘输入,实现“另存为”功能,因为直接使用`excelApp.Save`可能会遇到格式问题: ```vbscript shell.SendKeys "^s" shell.SendKeys "{Enter}" ``` 代码中提到的问题是,VBS创建的xls文件在使用`excelApp.Save`保存时可能会遇到格式问题,而`shell.SendKeys`模拟的“另存为”操作可以避免这个问题,保存为xlsx格式的新文件。 通过这种方式,测试工程师可以在QTP测试脚本中直接读取、修改和管理Excel文件,实现更高效的数据驱动测试。此外,还可以使用EOM执行更复杂的操作,如查找特定数据、执行公式计算、合并单元格等,极大地丰富了测试用例的编写和执行。