QTP自动化测试权威指南 连载(六)

发表于:2013-6-20 15:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:赵旭斌 阙勇等译    来源:51Testing软件测试网

第二十八章 QTP高级应用

  在本章我们将会讨论QTP中各种相对高级的常见问题及解决方案,这里故意把本章留在最后,主要的原因是本章的各种概念在之前的很多章节中已经提到过,我们还会介绍Settings对象在运行时遍历所有的子项,此技术可以用于研究发现QTP的一些文档未公开的隐藏特性。

  不同机器的测试脚本同步执行

  在一些复杂的测试系统场景下会需要QTP去通过脚本去触发另一个脚本以及需要执行的被测应用,在这类情况下,我们需要通过同步通知方式来使不同种类的应用进行协同工作

  为了解决此类问题,我们需要从QTP脚本运行中获取到过程信息,主要是通过QTP的自动化模型AOM下的Environment对象接口来实现所需要的同步进行协作和控制的脚本执行。以下脚本展示了怎样通过自动化模型AOM获取到本地机和远程机上的环境变量Environment对象:

'获取正在运行QTP的对象引用
Set qtpLocalPC = CreateObject("QuickTest.Application")
sRemoteIP = "10.1.1.1"
Set qtpRemotePC = CreateObject("QuickTest.Application", sRemoteIP)
'获取到环境变量
Set qtpLocalEnv = qtpLocalPC.Test.Environment
Set qtpRemoteEnv = qtpRemotePC.Test.Environment
'最终可以访问到环境变量
MsgBox qtpLocalEnv("TestDir")
MsgBox qtpRemoteEnv("TestDir")

  那么现在就需要等待QTP运行合适的位置时对指定环境变量进行更新,看一下如下QTP脚本:

  QTP脚本1

'脚本1Script 1
'创建同步点环境变量
Environment.Value("SyncPoint1") = False
Msgbox "Job 1 Completed"
'实现任意操作
'<-- 另一个脚本会等待此同步点为True
Environment.Value("SyncPoint1") = True
Msgbox "Starting Job 2"

  VBScript脚本2

  此Vbscript脚本会等待QTP脚本1更新SyncPoint1的状态后才开始执行:

'本地机器IP
strCompIP = "127.0.0.1"
Set qtpApp = CreateObject("QuickTest.Application", strCompIP)
'等待脚本停止
While Not qtpApp.Test.IsRunning
Wend
'等待同步点SyncPoint环境变量更新为True
While qtpApp.Test.Environment("SyncPoint1") <> True Wend
MsgBox "Script 1 has passed the sync point."

  在QTP中运行脚本1以及脚本2,脚本2将会等待Job 1 Competed消息后弹出Script1 has passed the sync point消息框。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号