51Testing软件测试论坛

标题: 怎样让QTP9.5识别Flex3.0插件 [打印本页]

作者: luna121    时间: 2009-10-29 10:33
标题: 怎样让QTP9.5识别Flex3.0插件
最近正在研究用QTP测试Flex
装上Flex插件以后发现QTP9.5的Object Identification里面已经显示了Flex3.0的类,但是还是不能识别网页上Flex编的控件

[attach]57177[/attach]

我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 编辑 ]
作者: zero0223    时间: 2009-10-29 10:56
参考下这个
http://www.51testing.com/?uid-22 ... wspace-itemid-95933
作者: luna121    时间: 2009-10-29 14:22
好像必须在Flex Builder 中修改属性“Additional compiler arguments”
正在尝试中...
作者: luna121    时间: 2009-10-29 18:08
QTP 10.0 好像不兼容 FLEX add-in 插件

至少Adobe公司自己的debug论坛上类似Flex插件不能识别的问题还没有得到解决

大家试试qtp 9.5或9.2版本吧
作者: luna121    时间: 2009-11-3 20:17
希望能有用QTP测试Flex控件的xdjm一起讨论一下
作者: luna121    时间: 2009-11-4 10:09
继续讨论...
作者: luna121    时间: 2009-11-6 10:12
恩 已经可以让qtp识别flex插件了

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

可是新的问题又出现了

QTP9.5和IE7.0是不是不兼容阿,录制的时候没问题,可是一到回放就报错 不能识别flexobject云云
作者: MR.Sunday    时间: 2009-11-6 11:44
能否发下报错的截图或信息
作者: apprentice    时间: 2009-11-6 14:55
弱弱问下,打开Flex Builder,右键选择Project ,这个project是在哪啊
作者: luna121    时间: 2009-11-6 17:36
先点击你的Project
然后再菜单栏里Project就激活了
作者: apprentice    时间: 2009-11-6 17:44
呃,是这样的,我想对一个网页游戏进行录制回放,我是要把这个网站变成Flex Builder里的Project吗?要怎么把他变成Project呢,现在我点了Project菜单后,里面的Properties是灰的
作者: luna121    时间: 2009-11-6 17:49
谢谢啦 这是报错文件的截图
[attach]57303[/attach]
帮我看看吧

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

还有一个问题就是

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

像FlexComboBox, FlexDateGrid

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

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

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

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

[attach]57304[/attach]

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

作者: luna121    时间: 2009-11-6 17:53
标题: 回复 11# 的帖子
那是因为你还没有把Flex原文件导入

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

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

只能想别的办法
作者: apprentice    时间: 2009-11-6 18:09
啊,必须要开发人员编译时加入参数才能识别吗?别的有什么办法可以识别呢?Flex原文件是指?不好意思我初学,问题比较多。。。
作者: libo3229788    时间: 2009-11-6 18:10
除了添加.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

这种方法我在用,完全可行
作者: libo3229788    时间: 2009-11-6 18:19
你遇到的这个问题也有可能是你的FLEX3.0的插件安装不正确,你可以卸载多装几次
作者: libo3229788    时间: 2009-11-6 18:20
说错了,除了添加那几个.SWC文件,还可以用RUNTIMELOADING的方法
作者: MR.Sunday    时间: 2009-11-6 22:05
1.首先确定你的网页是不是刷出来了 要不要等待时间 适当的加入wait
2.打开对象库 吧报错的对象属性修改下 尽量简单些 能识别就行
3.可以试试用模拟录制的方法 如果对象不识别

[ 本帖最后由 MR.Sunday 于 2009-11-6 22:08 编辑 ]
作者: luna121    时间: 2009-11-7 21:39
太谢谢楼上几位的帮忙啦 我先去试试

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

我没说清楚Flex源文件是指Flex project
作者: luna121    时间: 2009-11-10 14:30
标题: 回复 17# 的帖子
我用Runtimeloading 的方法还是不行啊


大家帮帮忙吧
作者: luna121    时间: 2009-11-24 12:15
顶起来 继续讨论
作者: luna121    时间: 2009-12-4 15:24
看到论坛里有些朋友问到qtp识别flex插件的办法

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

虽然现在仍然不能识别 但我总结了一些识别qtp的必须条件
1.安装qtp-flex插件
2.编译的时候加入3个自动化库函数如1一楼所述
3.或者无法获得源代码,需要用runtime loading的办法
作者: luna121    时间: 2010-2-3 10:28
很久没有回来啦

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

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

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

这种情况最好和开发做一下讨论,能否在不影响程序正常运行的前提下做一下更改
作者: zchtest    时间: 2010-2-23 14:31
标题: 可能与Flex版本有关系
我看到你发给我的短消息, 以下是我的观点 。
我觉得可能有以下几种原因:
1。确实你的Flex版本: Flexdatagrid在2。0版本里是不能识别的,  到 3。0 后升级为 AdvanceFlexDatagrid控件,就可以识别了 , 所以试试要开发那边升级到 3。0

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

3。再不识别的就是自定控制了。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2