测试与开发

发布新日志

  • QTP三种录制模式

    2012-03-22 14:20:42

    QTP提供三种不同的录制方式:正常录制(Normal Recording)、模拟录制(Analog Recording)和低级录制(Low Level Recording)。

    1.正常录制(Normal Recording)
      QTP默认的录制模式,这种录制模式是QTP最突出的特点,是直接对对象的操作,可以说此类模式继承了对象模型的所有优点,能够充分发挥对象库的威力。它通过识别程序中的对象来代替以前依赖识别屏幕坐标的形式。但是正常模式并不能保证识别程序中所有的对象,因此,仍然需要其他两种模式来补充。在录制完之后,不管再次打开的对象位置在哪(简单的说就是不具体记录对象控件的坐标,但是被测页面上必须存在该控件对象),它都能执行到。开启正常录制模式的方式。

      (1)QTP上方菜单栏→Automation→Record。

      (2)直接使用快捷键“F3”。

      (3)在QTP界面上点击正常录制图标。


    2.模拟录制(Analog Recording)
      此类模式录制了所有键盘和鼠标的精确操作,对于正常录制模式不能录制到的动作,可以使用模拟录制模式来弥补。例如,录制一个鼠标光标拖动的动作,正常录制模式无法录制这个业务操作,这时就可以考虑切换到模拟录制模式记录鼠标光标的轨迹。模拟录制模式录制下来的脚本文件比较大,而且依靠这种方式是不可以由QTP进行编辑的。选择模拟录制模式,如果在回放时,改变了屏幕的分辨率或者窗口/屏幕的位置, 回放就会失败。开启模拟录制模式的方式。

      (1)前提是开启正常录制模式。

      (2)QTP上方菜单栏→Automation→Analog recording。

      (3)直接使用快捷键“Shift+Alt+F3”。

      (4)在QTP界面上点击模拟录制图标。


    3.低级录制(Low Level Recording)
      此类模式是用来录制QTP不能识别的环境或对象。它不止录制了鼠标和键盘的所有操作,对对象的位置要求也非常严格。按此模式录制的对象都以Windows和WinObject的形式存在。QTP按照屏幕上的x坐标和y坐标录制该对象,将所有父类对象录制为Windows测试对象,将所有的其他对象录制为WinObject测试对象。它们在ActiveScreen中显示为标准Windows对象,并且在录制回放时,对象的坐标有任何一点改变就会失败。这类方式适用于QTP不能正常识别对象时的应用,主要是记录坐标的位置,可以对QTP不支持的对象进行坐标记录。但是不到万不得已的时候,不推荐使用此模式。开启低级录制模式的方式。

      (1)前提是开启正常录制模式。

      (2)QTP上方菜单栏→Automation→Low Level Recording。

      (3)直接使用快捷键“Ctrl+Shift+F3”。

      (4)在QTP界面上点击低级录制图标。

      以上就是QTP的3种录制模式,读者可在进行录制时,根据实际的业务需求进行灵活地切换运用。只有在正常模式下不能录制自己想要的业务操作的时侯才可以使用模拟录制和低级录制,模拟录制和低级录制比正常录制需要占用更多的硬盘资源。一般先使用正常录制模式录制脚本,碰到正常模式不能录制到的脚本时再切换到模拟录制或低级录制来录制这些步骤,之后别忘记再切换回来。

      实际上,遇到正常模式下无法录制的解决办法还有很多,比如在上一个小章节中提及的Web Event Recording Configuration实现一些鼠标事件,诸如onmouseover事件等。

  • qtp添加对象到对象库

    2012-03-06 15:13:33

    1.应用程序录制以qtp自带的Flight应用程序为例

    2.录制脚本:输入用户名和密码,点击确定按钮,结束录制

    3.现在想在输入用户名密码之前操作界面上的“Help”按钮,这个“Help”按钮是没有被录制的,没有被添加到对象库,所以qtp不识别此对象

    4.首先打开应用程序,进入到要添加对象所在的界面(这是重要一步),在本例中就是登陆界面。将“Help”对象添加到对象库步骤:Resource->  Object    

       Repository,进入界面后选择object->add objects to local.....,点击登陆界面上的“Help”按钮,这样“Help”按钮对象就被添加到对象库;如果想把页面上的所有对象添加到对象库中,直接点击打开的界面,就可以了,所有的对象都被添加到对象库中。

      (呵呵,由于是新手,在添加这个对象的时候,我没有打开应用程序,所以每次添加的都是电脑桌面,后来才反应过来,耽误了一会的时间

      

    点击OK之后,“Help”对象就被添加到了对象库

     5. 完善代码实现在输入用户名密码之前先查看帮助:

        

    6.  添加对象到对象库中到这里就基本结束了。下一节就介绍怎样参数化登陆的用户名。

  • 设置脚本自动运行

    2012-03-05 11:55:02

    测试实验室—执行流-定时

    如附件

     

  • QTP链接QC

    2012-03-05 11:26:00

    下载插件

    http://update.external.hp.com/qualitycenter/qc90/index.html

    插件下载地址(我的是10.00版本的)

     

    将最近QTPQC连接Run Script时碰到的问题记录下来,同时也做个基础操作步骤备参考。

     

     

     

    一、QTPQC连接步骤:

    1、 安装QTP Add-inHelp->Add-ins Page->More Hp Quality Center Add-ins->QuickTest Professional Add-in

     

    安装后在Test Plan中新建Test时就可以新建QTP类型的test

     

    2、 QTP端连接QC

    File->Quality Center Connection

    跳出连接提示框,输入QCURL 地址(只需到qcbin即可)

     

    点击Connect连接,依次输入用户名密码,选择DomainProject点击Login既可以成功连接。

     

    成功连接后,在QTP右下角会有QC的图标

     

     

    3、 上传脚本到QC

    点击File->Save as,在弹出的窗口中选择Quality Center Test Plan,然后选择需要保存到的QC Test Plan的目录。这样你就会在QC 该目录下发现你刚刚上传的脚本。

     

     

     

            4、 Test Lab中执行QTP脚本,点击Run,脚本就开始运行了,直接等着运行后的结果

           吧。。。下图选择的是在本地Run  

     

                

     

     

    二、碰到的问题

    1、 ”Class Not Registered”.

    Test Lab中执行QTP脚本时,每次点击Run,并不会弹出Automation Runner(如上图)的窗口,而是跳出提示框”Class Not Registered”.

    后来通过查资料发现 wexectrl.exe 这个文件虽然存在,但是还没有注册,所以采用如下的方式手动注册。

    命令行模式下输入:

    "C:/Program Files/Common Files/Mercury Interactive/Quality Center/wexectrl.exe" –unregserver

    然后再次输入:

    "C:/Program Files/Common Files/Mercury Interactive/Quality Center/wexectrl.exe" -regserver

    然后你就会发现,可以正常打开如上图的窗口正确的跑脚本了。

    2、 ”ActiveX component can´t create object: ´XStandard.Zip´”.

    跑脚本时,由于脚本中包含Zip文件的压缩,即需要创建:CreateObject("XStandard.Zip"),但是脚本Run过程中经常会报错,提示”ActiveX component can´t create object: ´XStandard.Zip´”

    后来发现是缺少XZip.dll文件。保存并注册后,一切恢复正常。

  • QTP 启动应用软件方法 (转)

    2012-03-02 10:15:00

    在QTP录制过程中,我们可能需要手动添加一些代码。今天先总结一下启动应用软件的方法:

           在QTP中启动应用软件的方法有以下几种:

           1. SystemUtil.Run:使用系统内定的SystemUtil对象的Run方法启动,语法规则:SystemUtil.Run ( FileName, Parameters, Path, Operation,Mod ), 其中"FileName”是必填项,其余都可以省略不写. 经常写代码的对于这些常用的方法很熟悉,自然就写出来了,比如打开IE浏览器,我们直接写为:SystemUtil.Run "C:/Program Files/Internet Explorer/iexplore.exe";我们也可以在打开IE的同时,打开对应的网址,比如打开baidu,直接写为:SystemUtil.Run "C:/Program Files/Internet Explorer/iexplore.exe","www.baidu.com"即可。但是如果对于一些常用方法不是很熟悉的用户,QTP提供了很方便的步骤生成器,方便用户的使用。可以使用F7打开步骤生成器,根据提示一步步在对应的Value值内输入内容,则Generate Step下会自动出现完整的代码,然后点击OK即可生成。

     使用步骤生成器,我们获得的代码如下:SystemUtil.Run "C:/Program Files/Internet Explorer/iexplore.exe", "", "C:/Program Files/Internet Explore", "", 0 效果同SystemUtil.Run "C:/Program Files/Internet Explorer/iexplore.exe"

          2. InvokeApplication:该方法是QTP built-in的function,同样也可以使用F7打开步骤生成器获得我们想要的代码

    获得的代码为:InvokeApplication "C:/Program Files/Internet Explorer/iexplore.exe",通过运行该代码,可以打开IE浏览器。同时可以为InvokeApplication设置返回值,返回值类型为布尔类型。我们可以充分利用这一点,来判断文件是否打开成功。返回为True,则打开成功,返回为False,则打开失败。

          比如我们打开一个应用文件“计算器”,就可以通过返回值来判断计算器打开成功还是失败。

          ReturnValue=InvokeApplication ("C:/Windows/System32/Calc.exe")

          If ReturnValue=True  Then

                 Msgbox "Open Success!"

                 Else

                        Msgbox "Open Fail!"

          End If

          值得注意的是,当使用返回值时,InvokeApplication后需要用括号括起来;另外SystemUtil.Run没有返回值。

          3. 利用WshShell对象启动:在讲到WshShell对象启动前,可以先回顾下WshShell的几个属性和WshShell的方法。

     

    这些我们都可以通过帮助文档获得,这里就不赘述了。这样我们就可以利用WshShell对象的属性和方法来创建快捷方式、打开程序文件等。简单例子,还是打开”calc.exe”,我们只需要用到其中的Run方法。

            Set WshShell = CreateObject("WScript.Shell")

            WshShell.run("C:/Windows/System32/calc.exe")

            Set WshShell=nothing

            很多人会发现,如果我们照搬帮助文档中WshShell对象的使用,在QTP中运行时会报错,原因就在于QTP没有WScript对象,因此我们只需要将WScript.CreateObject改成CreateObject就行。其他WshShell的方法和属性,大家感兴趣可以自己试试看。

           4. 直接在Run-Setting中将启动的应用程序添加进去。如下图,即将”calc.exe”添加到启动目录中,则在录制和回放时,QTP会自动打开”计算器”

     

    http://blog.csdn.net/lym_372/article/details/5658450

Open Toolbar