发布新日志

  • QTP测试delphi程序

    2011-09-02 09:44:23

    QTP测试delphi程序

    近来接到项任务,用QTP测试delphi写的一个程序,识别对象问题成了大难题。下面说一下在解决这个问题中的一些经历:

    首先,下了一个QTP9.2的版本,发现不识别delphi,于是根据网上网友的意见,下了个8.2的delphi插件,安装上后,可以进行识别,大喜,在制作脚本时,QTP时常死锁,也就是崩溃(我也快崩溃了),几个小时的时间,电脑死机两次,查找解决方法,网上貌似没有查找到改处理方法,据说目前无法解决。

    然后,根据查询的资料,下QTP10.0,用自带的delphi插件(在安装QTP时,要勾选上安装delphi插件,默认是不安装的。),装上后,可识别,录制的对象前都会带上“delphi“标志,录制完毕,大部分步骤无法回放,而且是一回放,QTP立马提示"未知错误",网上查询结果是未配置delphi。配置步骤如下:

    配置delphi(中文)
    1)        将<QuickTest Professional Installation folder>\dat\Extensibility\Delphi 包含到你的工程。通过设置library path或者将该文件夹复制到你的工程所在目录等方式都可以。
    2)        添加 MicDelphiAgent到工程文件的Uses部分。例如:
    program flight;
    uses
          MicDelphiAgent,
          Forms,     
    Windows;
    ($R*.RES)
    begin
           Application.Initialize
           Application.Title :='Flight Reservation';
           Application.Run;
    end.

    但在QTP10.0的安装目录下,未找到步骤1的路径,后来查到10.0要安装补丁,于是安装补丁QTP_00591.exe,路径出现,完成了第一步。但第二步可能需要研发人员去操作,鉴于公司流程繁杂,难以实现,于是放弃。

    想从写脚本的技术上解决该问题,于是查找到可以用对象映射的方式来解决,对象映射完毕,录制时也识别准确,但回放时仍不识别,杯具。

    逼于无奈,还是用了描述性编程,由于QTP识别的所有控件都是winobject,在对象的操作方法上有限制,最后决定用对象映射先识别对象名称,然后再用描述性编程来写脚本,解决!(之所以不用QTP10.0的自带插件识别对象名称,是因为:第一,插件试用期只有15天,好像没有破解插件的办法,只能过期后用清空信息来延长使用时间,比较麻烦;第二,用QTP识别出的对象,都带有delphi标志,写起来麻烦。)

    PS:插件延长办法:控制面板-添加删除程序中删除所有附加插件,使用REGCLEAN注册表软件清理一下注册表,打开QTP一次, 再安装QTP95所需插件,打开QTP95,熟悉的13天又回来了.


Open Toolbar