发布新日志

  • 关于QTP的标准检查点和active screen

    2008-09-01 17:23:27

    我们都知道,QTP是将它的对象存储到对象仓库(Object Repository)中的,一个被操作到的对象和它的父对象,一定能够在对象仓库中找到它,否则脚本将不能运行,如下图是QTP9.2种的对象仓库的对话框,我们就以winedit对象Agent Name为例来说明本文要阐述的知识点:

    不会上图,算了,不用图说话了。

    对象是放在对象仓库中的,而且对象仓库中保存了对象一部分属性的值,就是那些用于查找对象的描述属性的值是保存到对象仓库里的,但是对象仓库中并不保存所有属性的值,所以在我们添加对象仓库中对象的描述属性时,会看到新添加的属性是没有值的,需要我们自己指定.

    我们不能通过界面的方式一下子察看到测试中所有的检查点,只能在脚本的关键字视图中看一下,而在测试目录下,也找不到检查点信息对应的存放文件,那么,检查点信息放在哪里呢?我们知道,一个对象可以设多个标准检查点,比如OK按钮,可以在一个测试中针对它设定多个检查点,比如设定第一个检查点的enabled属性的预期结果值为true,第二个检查点的enabled属性的预期结果值为false.但是在对象仓库中,对象的属性值只有一个,所以检查点的预期值跟对象仓库的属性值肯定不是同一个。

    但是,检查点的信息的确是和对象仓库中的信息存放在一个文件里面的,这点你试验一下,修改检查点的信息前,将数据仓库文件拷贝到其他目录,然后修改检查点以后再将这个文件拷回来,你会发现检查点信息还是原来的。

    对象仓库中并不保存所有属性的值,这个我们在对象仓库对话框中就可以看得出来,但是每次我们在右下角的active screen中添加某个对象的检查点时,我们可以看到系统能够自动获取默认的属性值,那么这个值又是从哪里来的呢?这个我们要从qtp的标准检查点原理说起:

    qtp的标准检查点是和active screen息息相关的,如果要添加一个对象的检查点,这个对象必须是在active screen中的,也就是在测试目录下的snapshops的中的,仔细看一下这个目录下的html文件,你会恍然大悟,原来这里面保存了每个对象的属性信息和属性值(当然是捕捉时的值),这下你就明白为什么在对象仓库中看不到属性值,而添加检查点时系统能够自动获取属性值了吧!

     

     

  • 在qtp中引用外部dll的方法

    2008-08-28 13:12:01

    Extern Object 用于调用外部DLL中的过程,与之相关的方法是Declare Method,这个方法的作用是声明外部DLL中的过程(或方法),以便让qtp脚本中使用。语法如下:

    Extern.Declare(RetType, MethodName, LibName, Alias [, ArgType(s)])

    如下的例子使用 Extern.Declare Extern.<declared method> 方法改变“记事本”窗口的标题

    声明FindWindow方法

    Extern.Declare micHwnd, "FindWindow", "user32.dll", "FindWindowA", micString, micString

    声明SetWindowText方法

    Extern.Declare micLong, "SetWindowText", "user32.dll", "SetWindowTextA", micHwnd, micString

    获得记事本窗口的句柄

    hwnd = Extern.FindWindow("Notepad", "未定标题 - 记事本")

    if hwnd = 0 then

    MsgBox "Notepad window not found"

    else

    MsgBox hwnd

    end if

    改变记事本窗口的标题为“kuku”

    res = Extern.SetWindowText(hwnd, "kuku")

    注意:这个实验很多人不成功是由于记事本窗口没有打开,或者脚本中记事本窗口的标题写的不对(看着像可不行)。

  • QTP关于text值变化导致无法识别Link对象的解决办法

    2008-08-28 10:52:26

    QTP录制时自动将Link对象的描述属性设为:text和html tag,而在实际应用中,链接的text属性值是经常变化的,这样脚本回放的时候就会经常发生找不到对象的错误.针对这个问题,有几个解决方案:

    1.修改对象仓库中对性的描述属性:

    去掉text,添加url,这样既能够保证能按照链接找到页面,而且text属性的变化也不影响对象的识别.

    2.采用描述性编程

  • 外部工具如何调用QTP完成测试

    2008-08-27 11:43:09

    Dim qtApp
    Dim qtTest
    Dim qtResultsOpt

    Set qtApp = CreateObject("QuickTest.Application")
    qtApp.Launch
    qtApp.Visible = True
    qtApp.Open "D:\Test2", True

    Set qtTest = qtApp.Test
    qtTest.Settings.Run.OnError = "NextStep"
    Set qtResultsOpt = CreateObject("QuickTest.RunResultsOptions")
    qtResultsOpt.ResultsLocation = "D:\Test2\"
    qtTest.Run
    qtApp.quit
     
    Set qtResultsOpt = Nothing
    Set qtTest = Nothing
    Set qtApp = Nothing

我的栏目

数据统计

  • 访问量: 5851
  • 日志数: 8
  • 建立时间: 2008-08-26
  • 更新时间: 2008-09-02

RSS订阅

Open Toolbar