51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5387|回复: 23
打印 上一主题 下一主题

[原创] 怎样让QTP9.5识别Flex3.0插件

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-10-29 10:33:14 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
最近正在研究用QTP测试Flex
装上Flex插件以后发现QTP9.5的Object Identification里面已经显示了Flex3.0的类,但是还是不能识别网页上Flex编的控件



我QTP9.5安装好了 并装上了Flex3.0的插件。并且在用Flex3.0编译的时候加上了如下:

打开Flex Builder,右键选择Project -> Properties -> Flex Compiler,修改属性“Additional compiler arguments”,在该属性中添加:

  -locale en_US -include-libraries "C:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\libs\automation.swc" "C:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\libs\automation_agent.swc" "C:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\libs\qtp.swc" "C:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\libs\automation_dmv.swc"

结果发现QTP只能识别非常有限的控件和操作如
FlexFrame, FlexButton, FlexConvas

但不能识别常用的控件如:FlexComboBox, FlexDateGrid

请问这种情况该怎么处理呢

是手工插入语句来识别控件

还是有更好方法呢?


最好能界面可以识别的办法,因为我正在熟悉VB Script中

谢谢啦~


[ 本帖最后由 luna121 于 2009-11-3 20:16 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2016-5-11 13:12
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    24#
    发表于 2010-2-23 14:31:37 | 只看该作者

    可能与Flex版本有关系

    我看到你发给我的短消息, 以下是我的观点 。
    我觉得可能有以下几种原因:
    1。确实你的Flex版本: Flexdatagrid在2。0版本里是不能识别的,  到 3。0 后升级为 AdvanceFlexDatagrid控件,就可以识别了 , 所以试试要开发那边升级到 3。0

    2。可能与编译环境有关系,编译环境要是 Flex professional版本, 标准版会有很多限制。

    3。再不识别的就是自定控制了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    23#
     楼主| 发表于 2010-2-3 10:28:06 | 只看该作者
    很久没有回来啦

    这个问题也应该有了公布答案的时候了 呵呵

    一般来说 按楼上所有讨论的步骤做 就应该能识别flex插件了

    如果还不能识别,则应考虑是否编的程序自定义了一个封装:使的flex标准控件无法被识别

    这种情况最好和开发做一下讨论,能否在不影响程序正常运行的前提下做一下更改
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    22#
     楼主| 发表于 2009-12-4 15:24:48 | 只看该作者
    看到论坛里有些朋友问到qtp识别flex插件的办法

    希望贴子不要沉下去 继续讨论

    虽然现在仍然不能识别 但我总结了一些识别qtp的必须条件
    1.安装qtp-flex插件
    2.编译的时候加入3个自动化库函数如1一楼所述
    3.或者无法获得源代码,需要用runtime loading的办法
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    21#
     楼主| 发表于 2009-11-24 12:15:31 | 只看该作者
    顶起来 继续讨论
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
     楼主| 发表于 2009-11-10 14:30:14 | 只看该作者

    回复 17# 的帖子

    我用Runtimeloading 的方法还是不行啊


    大家帮帮忙吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
     楼主| 发表于 2009-11-7 21:39:06 | 只看该作者
    太谢谢楼上几位的帮忙啦 我先去试试

    To: 14楼 如果不在编译的时候加上那些参数,你可能要自己添加virtual object 一个一个去表明

    我没说清楚Flex源文件是指Flex project
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2009-11-6 22:05:54 | 只看该作者
    1.首先确定你的网页是不是刷出来了 要不要等待时间 适当的加入wait
    2.打开对象库 吧报错的对象属性修改下 尽量简单些 能识别就行
    3.可以试试用模拟录制的方法 如果对象不识别

    [ 本帖最后由 MR.Sunday 于 2009-11-6 22:08 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2009-11-6 18:20:28 | 只看该作者
    说错了,除了添加那几个.SWC文件,还可以用RUNTIMELOADING的方法
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2009-11-6 18:19:17 | 只看该作者
    你遇到的这个问题也有可能是你的FLEX3.0的插件安装不正确,你可以卸载多装几次
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2009-11-6 18:10:58 | 只看该作者
    除了添加.SWF文件,还可以使用RUNTIMELOADING来标识FLEX界面上的控件
    Navigate to the flex_builder_root/sdks/3.0.0/templates/automation-runtimeloading-files directory.
    Execute the build.bat file. This compiles the runtimeloading.mxml file into a SWF file.
    Copy the runtimeloading. swf and RunTimeLoading.html file to your web server. Copy the Flex application that you want to test to this server as well (the application need not be compiled with automation libraries).
    Request the RunTimeLoading.html file and pass your Flex application as the automationswfurl query string parameter; for example:
    http://localhost/RunTimeLoading.html?automationswfurl=MyApp.swf

    这种方法我在用,完全可行
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2009-11-6 18:09:19 | 只看该作者
    啊,必须要开发人员编译时加入参数才能识别吗?别的有什么办法可以识别呢?Flex原文件是指?不好意思我初学,问题比较多。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2009-11-6 17:53:05 | 只看该作者

    回复 11# 的帖子

    那是因为你还没有把Flex原文件导入

    你应该像开发的人员询问,让他们在编译的时候加入参数

    如果你没办法在编译的时候加入参数 QTP是无法识别的

    只能想别的办法
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2009-11-6 17:49:40 | 只看该作者
    谢谢啦 这是报错文件的截图

    帮我看看吧

    按说能正常录制就应该能回放的

    还有一个问题就是

    我发现在录制的过程中还是有些Flex控件不能被录下来

    像FlexComboBox, FlexDateGrid

    请问这种情况下该怎么办呢

    PS:我已经试过加Virtual Object,可是里面的控件选项少得可怜

    用Object Repository里的 Add Object或Object Spy都查不到这些Flex控件

    可是我看到Object Identification里面实际上有这些Flex控件的



    请大家帮帮忙吧\(^o^)/~

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2009-11-6 17:44:50 | 只看该作者
    呃,是这样的,我想对一个网页游戏进行录制回放,我是要把这个网站变成Flex Builder里的Project吗?要怎么把他变成Project呢,现在我点了Project菜单后,里面的Properties是灰的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2009-11-6 17:36:05 | 只看该作者
    先点击你的Project
    然后再菜单栏里Project就激活了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2009-11-6 14:55:01 | 只看该作者
    弱弱问下,打开Flex Builder,右键选择Project ,这个project是在哪啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2009-11-6 11:44:45 | 只看该作者
    能否发下报错的截图或信息
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2009-11-6 10:12:33 | 只看该作者
    恩 已经可以让qtp识别flex插件了

    就是需要在flex编译的时候,加入automation等库函数 如一楼所述

    可是新的问题又出现了

    QTP9.5和IE7.0是不是不兼容阿,录制的时候没问题,可是一到回放就报错 不能识别flexobject云云
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2009-11-4 10:09:07 | 只看该作者
    继续讨论...
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-24 11:54 , Processed in 0.098579 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表