QTP自动化测试:WshShell对象的常用方法与技巧

5星 · 超过95%的资源 需积分: 10 2 下载量 31 浏览量 更新于2024-09-18 1 收藏 217KB DOCX 举报
"QTP中使用WshShell对象进行Windows外壳程序操作的文档" 在自动化测试领域,尤其在使用QuickTest Professional (QTP)时,有时会遇到一些QTP自身难以处理或者不是最佳解决方案的任务。这时,我们可以借助Windows Script Host (WSH) 中的WshShell对象来执行与Windows系统紧密相关的操作。WshShell对象提供了多种方法,包括模拟键盘输入、读写注册表、启动程序、系统等待、添加事件日志和创建快捷方式等。 1. **WshShell对象**: WshShell对象是Windows Script Host的一部分,它允许我们与本地Windows外壳程序进行交互。通过创建WshShell对象,我们可以调用其各种方法来实现对系统的控制。 2. **Wscript和COM对象**: Wscript是Windows Script Host Object Model的缩写,它提供了一个基于COM(Component Object Model)的根对象,用于创建WshShell和WshNetwork对象。COM对象是一种遵循COM规范的组件,可以以DLL或EXE形式发布,支持跨进程通信。 3. **WshNetwork对象**: 虽然在自动化测试中用得较少,WshNetwork对象主要用于处理网络资源共享。本文重点不在这一部分,因此不做深入讨论。 4. **WshShell常用方法**: - **Run方法**:用于启动应用程序,例如`wsh.Run "notepad"`将打开记事本程序。 - **AppActivate方法**:可以激活指定的应用程序窗口,这对于自动化测试中需要等待特定窗口出现的情况非常有用。配合循环判断,可以避免硬编码等待时间,提高测试效率和准确性。 - **SendKeys方法**:模拟用户键盘输入,比如`wsh.SendKeys "^c"`可以模拟Ctrl+C的复制操作。 - **RegRead和RegWrite方法**:用于读取和写入注册表项,这在需要修改系统配置或检查特定设置时非常实用。 - **Popup方法**:可以弹出定时提示框,方便在测试过程中显示信息或等待用户确认。 - **CreateShortcut方法**:创建快捷方式,适用于需要创建桌面快捷方式或其他位置的快捷方式文件的场景。 - **Sleep方法**:使脚本暂停一段时间,常用于延迟操作或等待某个条件满足。 5. **注意事项**: 在编写VBS脚本时,需要注意变量命名,避免与内置对象冲突。例如,WshShell对象的内置变量名为WSH,不推荐使用`wsh`作为变量名,因为VBScript不区分大小写,可能会引起混淆。 6. **代码示例**: 以下是一个简单的示例,演示如何使用WshShell对象启动应用程序并激活窗口: ```vbscript Dim wsh Set wsh = CreateObject("WScript.Shell") wsh.Run "notepad" wsh.AppActivate "无标题 - 记事本" '假设记事本窗口标题为"无标题 - 记事本" Set wsh = Nothing ``` 这段代码首先创建WshShell对象,然后启动记事本,接着激活名为"无标题 - 记事本"的窗口。 通过WshShell对象,我们可以弥补QTP在处理某些特定任务时的不足,提高自动化测试的灵活性和覆盖范围。正确地使用这些方法,可以使测试脚本更加高效且适应性强。