• AOM ----  Automation Object Model (自动化对象模型)

AOM就是一个可以自动化QTP的自动化对象模型,它可以对QTP的进行自动化配置操作以及QTP的运行回放进行自动化等等功能。

最简单的创建AOM的例子:

Dim qtApp
Set qtApp = CreateObject("QuickTest.Application")
qtApp.Launch
'Start QuickTest
qtApp.Visible = True

C#等也都能够调用AOM来自动化QTP,这是因为QTP安装程序中已经注册了一个核心DLL文件的COM,这个DLL就是在安装文件夹下的BIN目录下:QTObjectModel.dll

下面我们就来简单的完成一个启动QTP--》打开脚本--》回放 这样的一个实例

我们在这里使用VBSEDIT工具

1、首先在这里引用QTObjectModel.dll

引用方法:

TOOLS - REFERENCES - add

在PROG ID中输入  QUICKTEST.APPLICATION

在TYPELIB PATH中找到这个dll的路径,位于安装路径的BIN目录下

2、在引用完DLL后,就可以创建AOM对象,并且会有相应的代码提示

当创建好AOM对象的同时也可以在对象浏览器中看到这个DLL下的所有方法和属性

3、完成以下代码之后,这样一个简单的从启动QTP、打开测试脚本、运行回放、关闭QTP的整个自动化QTP的流程就完成了

  1. Set qtapp=CreateObject("quicktest.application")
  2. '创建对象
  3. qtapp.Launch
  4. '启动
  5. QTPqtapp.Visible=True
  6. '设置为可见
  7. qtapp.Open "d:/Test"
  8. '打开相应的QTP测试脚本
  9. qtapp.Test.Run
  10. '运行测试脚本
  11. qtapp.Quit
  12. '退出QTP
  13. Set qtapp=Nothing
  14. '释放

4.当我们还需要对QTP的设置进行自动化时,由于QTP的设置较多,一个个写的话会很繁琐,因此我们可以先在QTP里设置好,然后直接在QTP的setting和option选项中点击generate scripting进行导出,这样能去我们很多的精力来写代码。

 注意事项:

1.执行以上代码时,系统多出一个QTAutomationAgent.exe的进程,此进程在运行完以上代码后会自动关闭,但是需要注意的是,当我们在调试代码或者是做非法中止以上代码而为能使以上代码执行到最后完毕的话,此进程不会自动关闭,这样就会导致我们第二次创建AOM对象时报错,因此大家如果在调试此代码时遇到“远程过程调用失败”的类似错误提示,就可以试试kill掉QTAutomationAgent.exe这个进程,然后重新调试下代码就ok了。

2.如果在QTP直接创建AOM对象是会报错的,因为QTP只允许有一个实例对象,当我们已经开启了一个QTP之后就不可以再创建另外一个QTP了,因此这个时候我们可以直接使用GETOBJECT("","quicktest.application")来对当前启动的QTP进行操作,当我们添加下图脚本后,我们点击运行后当前QTP就会自动隐藏,运行完后自动恢复可见.

AOM的更多相关文章

  1. QTP关于AOM的Javascript启动方式

    序 QTP的AOM模型想必大家都很熟悉了,平时常用的就是通过VBS脚本的方式编写启动程序(也是我现在用的方法).其实,还有很多其他的方式,如Java,C#,JS,这些语言都是通过调用QTObjectM ...

  2. java web学习总结(五) -------------------servlet开发(一)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  3. Android—关于自定义对话框的工具类

    开发中有很多地方会用到自定义对话框,为了避免不必要的城府代码,在此总结出一个工具类. 弹出对话框的地方很多,但是都大同小异,不同无非就是提示内容或者图片不同,下面这个类是将提示内容和图片放到了自定义函 ...

  4. javaweb学习总结(五)——Servlet开发(一)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  5. servlet(1)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  6. JavaWeb的学习之Servlet(转载自孤傲苍狼)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  7. Visual Studio 技能GET

    常用快捷键 自动生成头部注释 代码片段 NuGet Team Foundation 常用的VS快捷键 查看与设置快捷键 一般在菜单里面我们直接就可以看到一些功能的快捷键.另外,可以依次通过 菜单栏-工 ...

  8. 研究base64_encode的算法

    从网上看了一些资料,为了方便自己理解,于是把它的编码原理,自己放在excel表格中清晰列出来,方便以后查阅.做的图如下:

  9. php 操作mysql 分表的一种方法

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAARUAAAHXCAIAAAAdrFkKAAAgAElEQVR4nOyd61sTx9//+4fcj+6H95

随机推荐

  1. Day3---Python的time库的一些简单函数以及用法

    time库的一些函数 time.time () :   获取当前时间戳,即计算机内部时间值,浮点数 >>>import time >>> time.time() 1 ...

  2. 攻防世界--insanity

    测试文件:https://adworld.xctf.org.cn/media/task/attachments/d2a7dde552e647688230e80b2767b912 1.准备 获得信息: ...

  3. 【学习总结】Python-3-字符串函数-strip()方法

    参考: 菜鸟教程-Python3-Python字符串-strip()方法 语法: str.strip([chars]); 参数: chars -- 移除字符串头尾指定的字符序列. 返回值: 返回移除字 ...

  4. jsp常用代码

    1.头部 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8&q ...

  5. 靶场练习--sqli(1&2)

    前言 懒猪赵肥肥耍了3天3夜,每天除了练英语口语,啥子都没干.今天开始发愤图强,嘻嘻~ 计划内容有:靶场.视频.python.PHP.java.计算机英语. 首先,每天必搞靶场必看视频必学java和英 ...

  6. Linux命令(干货)

    @ vim 编辑快捷键 ctrl + n 是自动补齐 ctrl + p 是往上选择 ctrl + f 是下一屏幕 ctrl + b 是上一屏幕 w:是移动一个单词 b:是向前一个单词 d^:当前行中, ...

  7. 【LeetCode】一种博弈思路 minimax(共5题)

    [292] Nim Game (2019年3月12日,E) 有一堆石头,游戏规则是每次可以从里面拿1-3颗石头,拿到最后的石头的人赢.你和你的对手都 optimal 的玩这个游戏,问先手(也就是你)能 ...

  8. java ArrayList的基本使用

    package java06; /* 数组的长度是不可以发生改变的 Arraylist 集合的长度可以发生改变 对于ArrayList来说,有一个尖括号<E>代表泛型 泛型:就是装在结合中 ...

  9. java类的加载与初始化

    https://blog.csdn.net/u013349237/article/details/71076617 1在命令行启动虚拟机jvm进行加载, 2用class.forname()方法进行动态 ...

  10. 获取配置文件yml的@ConfigurationProperties和@Value的区别

    首先,配置文件的事,我没讲properties,这个写中文的时候,会有乱码,需要去Idea里面设置一下编码格式为UTF-8 还有,我们的类和配置文件直接关联,我用的是ConfigurationProp ...