QTP使用Excel自动化模型对象基础操作详解
需积分: 3 157 浏览量
更新于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执行更复杂的操作,如查找特定数据、执行公式计算、合并单元格等,极大地丰富了测试用例的编写和执行。
2019-09-21 上传
2012-07-06 上传
2013-06-08 上传
2011-06-01 上传
2009-02-07 上传
2022-09-23 上传
2022-09-19 上传
2022-09-24 上传
2011-12-01 上传
dieinthesun
- 粉丝: 1
- 资源: 4
最新资源
- warrants_dashboard:实时仪表板,用于自定义变量和本地股票代码
- Gxss:用于检查一堆包含反射参数的URL的工具
- json_song_list:COMP 20作业9
- 文件系统中的React-Native图像缓存以及针对iOS和Android的渐进式加载-JavaScript开发
- QCefView:封装了名为QCefView的CEF的QWidget
- IDL.zip_图形图像处理_IDL_
- Api_read_joke
- gophercises:来自courses.calhoun.io的golang练习集
- nubers-eats-frontend
- symphytum:Symphytum个人数据库软件
- event-emitter:发出和监听任何类,对象或函数中的事件,而不会弄乱它们扩展类。 您可以使用Fluent接口或可摇树的函数进行声明
- Win32API.zip_Windows编程_Visual_C++_
- LLE手写体matlab代码.zip
- lazyfoo-sdl2
- Tab Shifter (and Window Mover)-crx插件
- hw0-paxaplenty:GitHub课堂创建的hw0-paxaplenty