简介:使用automation object model进行QTP自动化编程

上一篇 / 下一篇  2007-05-15 17:56:22 / 个人分类:QTP学习

1.        介绍

使用QTPautomation object model,可以对QTP进行自动化编程,从而自动对QTP进行选项设置、自动运行测试(或组件),而无需使用QTP界面手工进行这些操作。

如果要重复多次的完成同一项工作任务,或重复多次运行同一测试(或组件),或需要快速配置QTP选项,则QTP的自动化编程是非常有用的。

 

本部分内容包括:

自动化QTP操作

决定什么时候使用QTP自动化编程

选择设计或运行自动化程序的语言与开发环境

了解自动化程序的基本元素

创建自动化程序脚本

1.1.      自动化QTP操作

使用QTPAutomation Object Model进行自动化编程,实现QTP操作的自动化。QTPAutomation Object Model提供了objectsmethods、以及properties,使我们可以在其它的应用程序中控制QTP的操作。

1.2.      决定什么时候使用QTP自动化编程

我们使用QTP设计测试(或组件),创建一个有用的自动化程序也需要一个计划、设计、测试的过程。

下面是几个实用的QTP自动化编程的例子:

l        Initializtionprograms(初始化编程)-你可以编写一个程序,来自动地启动QTP,配置操作选项及录制设定。

l        Maintaining your tests or components(维护测试或组件)-你可以编写一个程序,作用于一系列已有的测试或组件上,以统一达到某一目的。例如:

n        Updating values-使用合适的插件环境打开每个测试或组件,并以update的模式运行它(当然必须对应相应的已升级的被测应用程序),然后保存测试或组件以保存更新后的值。

n        Applying new options to existing tests of components(对已有的测试或组件应用新的操作选项)-当QTP版本升级以后,你可能发现有某些新的选项设置可应用到当前已有的测试或组件中。你可以编写一个程序,打开每个已有的测试或组件,为它们设置新的选项设置,然后保存并关闭它。

l        CallingQuickTestfrom other application(在其它应用程序中调用QTP)-You can design your own applications with options or controls that runQuickTestautomation programs. For example, you could create a Web form or simple Windows interface from which a product manager could scheduleQuickTestruns, even if the manager is not familiar withQuickTest.

1.3.      选择设计或运行自动化程序的语言与开发环境

现有多种面向对象的编程语言,可用于实现QTP的自动化编程。对于每种语言,都有多种开发环境的支持,在该开发环境中,可用以设计或运行自动化程序。

编写自动化程序

你可以在任何一个支持automation的语言与开发环境中编写QTP自动化程序,如VBscrīptJavascrīptVisual BasicVisual C++Visual Studio.NET等等。

有的开发环境support referencing a type libraryA type library是一个二进制文件,包括了对象模型的描述、界面、以及其它定义。

如果你选择的环境support referencing a type library,在你编程的过程中,你就可以享受到以下好处,如智能提示的功能、语句自动完成的功能、在状态栏显示帮助提示的功能。QTPautomation object model提供了一个type library文件,文件名为QTObjectModel.dll,这个文件存储于QTP安装目录的bin目录下。

如果你选择了一个support referencing a type library的开发环境,在编写或运行程序之前,确保装载了QTPtype library。例如:如果你选用了Microsoft Visual Basic,在Microsoft Visual Basic的菜单中选择Project>References,打开References对话框,然后选择QuickTestProfessional<版本号>Object Library

运行自动化程序

很多应用程序都可以运行自动化程序,你甚至可以在命令行使用WSH来运行自动化程序。

例如:Wscrīpt.exe /E:VBscrīptmyscrīpt.vbs

1.4.      了解自动化程序的基本元素(Element

与大部分automation object modes一样,QTPautomation object model根对象Application对象。这里的Application对象代表QTP应用程序。使用它,可以返回其它QTP元素如Test对象(它代表一个测试或组件文件)、Options对象(它代表Options对话框)、Addins集合(它代表Add-in管理对话框中一系列的add-in)等,并可以完成以下操作如装载add-in、启动QTP、打开并保存测试或组件、以及关闭QTP

Application对象返回的每一个对象,又可以返回其它对象,以完成其它与该对象相关的操作,并获取(或设置)与该对象相关的属性值。

每个自动化程序从创建QTP Application对象开始,创建此对象并不是启动QTP,它仅仅是提供一个对象,以便于你从该对象获得通道,以通向其它QTP automation object model的对象、方法以及属性。

如果你在程序中需多次的启动或退出QTP,你可以只创建一个Application对象实例,而不必多次创建QTP Application对象。

1.4.1.      创建Application对象

对于不同的语言,创建Application对象的过程稍有不同。下面例子中,是使用VBscrīpt语言,实现创建Application对象,并以visible的模式打开QTP程序的操作。

DimqtApp

SetqtApp=CreateObject(“QuickTest.Application”)     创建Application对象

qtApp.Launch                                   启动QTP

qtApp.visible=True                               设置QTP为可见模式

 

1.4.2.      建设自动化程序的其它部分

如何建设自动化程序的其它部分,与你的编程目标有关。

在启动QTP之前,你可以完成一些其它操作,如获取相关的add-in、装载add-in、并指导QTPvisible模式打开QTP等。

当完成这些预备步骤后,如果QTP还没有被打开,你可以使用Application.Launch方法打开它。自动化程序的其它操作一般都是位于Launch方法之后。

当完成这些必需的操作之后,或你想要实现的操作需要关闭并重新启动QTP如修改插件的装载),则使用Application.Quit方法。

1.4.3.      在远程电脑中运行自动化程序

默认情况下,当你在自动化程序中创建一个Application对象时,该对象创建于本地电脑中(使用QTP的本地副本)。你也可以选择在远程QTP电脑中运行自动化脚本。为了实现这个目标,你必须:

l        确保远程电脑的Distributed COMDCOM)配置属性已设置为允许你运行QTP自动化脚本。

l        在自动化程序的创建Application对象的脚本行,指定远程电脑的名称,例如在VBscrīptCreateObject函数中使用可选参数location

 

名词:COM-组件对象模型。COM提供了一套允许同一台计算机上的客户端和服务器之间进行通信的接口。

DCOM-分布式组件对象模型。是一系列微软的概念和程序接口,利用这个接口,客户端程序对象能够请求来自网络中另一台计算机上的服务器程序对象。

设置远程电脑中的DCOM配置属性

要在远程电脑中运行自动化程序,必须确保在远程电脑的DCOM设置中,给了你装载及设置QTP COM服务器的权限。

下面描述了在远程电脑中设置DCOM的过程。注意因为远程电脑的操作系统的不同,DCOM配置对话框中显示可能不同。

(下面的图片都是WinXP操作系统中的):

1.        在远程电脑中,选择Start>Run,打开Run对话框。

2.        在命令栏输入“dcomcnfg”后,点击OK,打开DCOM配置对话框或组件服务窗口(这与操作系统有关),并显示当前电脑中有效的COM应用程序。

3.        在列表中选择“QuickTestProfessional Automation”,打开属性对话框。

4.        QuickTestProfessional Automation对话框中,选中Security(安全)页签。

5.        在“launch permissions”(启动和激活权限)部分,选择custom(“自定义”)选项,然后点击EDIT(“编辑”)按钮。

6.        使用AddRemove操作选择网络用户或组,让用户或组就可以在本地电脑中通过自动化程序,远程让QTP脚本在本电脑上运行。当完成设置用户或组后,点击OK保存设置。

7.        重复56步,设置“configuration permissions”部分,设置用户或组,让用户或组可以通过自动化程序,远程修改本电脑的QTP的选项配置。

8.        QuickTestProfessional Automation对话框中,点击Identity(标识)页签,选择interactive user选项。

 

9.        点击OK保存QuickTestProfessional Automation属性设置。

10.    点击OK关闭DCOM配置对话框,或关闭组件服务窗口。

在远程电脑中创建Application

当远程电脑的DCOM设置完成后,你就可以在自动化程序中指定该远程电脑。

VBscrīpt中,你可以在CreateObject函数的可选参数location中指定远程电脑名称。例如:在一个名为MyServer的远程电脑上运行自动程序,你可以编写以下脚本:

DimqtApp

SetqtApp=CreateObject(“QuickTest.Application”,”MyServer”)

1.5.      创建自动化程序脚本

Test Setting对话框中的Properties页签、Options对话框的General页签、以及Object Identification对话框中,都有一个Generate scrīpt按钮。点击此按钮可以生成一个自动化脚本文件(.vbs),该文件包含了相关对话框的当前设定。

你可以运行这些脚本,运行该脚本可以打开QTP,并且QTPOptions设置使用的是脚本中的设置;你也可以将脚本中的内容复制到你自已的自动化脚本中。

例如,你在Options对话框中通过Generate scrīpt功能创建了一个脚本,脚本的内容应该是下面这样的:

Dim App 'As Application

Set App =CreateObject("QuickTest.Application")

App.Launch

App.Visible= True

App.Options.DisableVORecognition= False

App.Options.AutoGenerateWith= False

App.Options.WithGenerationLevel= 2

App.Options.TimeToActivateWinAfterPoint= 500

...

...

App.Options.WindowsApps.NonUniqueListItemRecordMode= "ByName"

App.Options.WindowsApps.RecordOwnerDrawnButtonAs= "PushButtons"

App.Folders.RemoveAll

 

 


TAG: QTP学习

 

评分:0

我来说两句

Open Toolbar