Be the princess of myself

发布新日志

  • 笨方法实现qtp的自动循环

    2007-09-03 11:09:04

       从理论上来将,qtp是做的一个非常不错的工具,使用起来也非常方便,实现自动循环是一个非常基本的操作,但是,我在使用其进行循环的时候,遇到了以下问题:

    循环时,经常是第一遍执行正常,第二遍的时候就出现找不到对象的错误,针对这个问题有以下方法可以避开。

    对于b/s结构的应用程序:不用for循环语句,通过添加参数进行循环,好像就不会出现这个问题;

    对于c/s结构的应用程序:

    1、不是操作系统自带的应用程序

    以qtp的自带的示例程序为例:

    Dim oShell
    Set ōShell = CreateObject ("Wscrīpt.shell")
    oShell.run "cmd /K CD C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app(程序路径) & flight4a.exe(程序可执行文件)"
    Set ōShell = Nothing

    问题:上面的程序可以打开一个非操作系统自带的应用程序,但是打开程序之后,出现一个命令行窗口,这样一来,每循环一次,会出现一个这样的窗口,我们如何关闭这个窗口呢?

    解决方案:

    步骤1:修改录制设置,设置为“在任何打开的基于windows的应用程序上录制并运行测试”;
    步骤2:急于已经打开的窗口进行录制,且录制的最后应该关闭应用程序,然后停止录制;
    步骤3:然后执行Window("C:\WINNT\system32\cmd.exe").close,将命令行窗口关闭
    这样,再进行循环的时候就不会有问题了。
    这里出现了一个疑问:我们为什么不在打开程序的一开始就将命令行窗口关闭呢?
    原因:因为我们执行打开这个应用程序的语句之后,处于windows界面最前方的窗口是你的应用程序窗口,如果此时就执行关闭命令行窗口的语句,qtp会报找不到的窗口的错误。

    2、打开一个操作系统自带的应用程序,以计算器为例:
    set WshShell =CreateObject("Wscrīpt.Shell")
    WshShell.AppActivate "计算器"——指定要激活哪个应用程序。它可以是包含应用程序的标题(和出现在标题栏中的一样)或过程 ID 的字符串(可以没有,它只是激活应用程序,保持应用程序在最前面)
    WshShell.Run "calc"——打开计算器
    注意:这种方法也使用于b/s结构的程序,只要把方法run的参数设置成为“IEXPLORE”就可以了。

      按照以上的操作,在使用for循环就不会有问题了!

     

     

Open Toolbar