51Testing软件测试论坛

标题: flex sdk3.3支持QTP问题。。。。急!! [打印本页]

作者: fairylly    时间: 2010-1-21 14:36
标题: flex sdk3.3支持QTP问题。。。。急!!
为了让flex支持QTP,我按照网上的方法进行了如下操作:

1. 打开FB,右键选择你的Project -> Properties -> Flex Compiler
2. 修改属性“Additional compiler arguments”,在该属性中添加如下代码:
-locale en_US -include-libraries "flex_builder_dir\sdks\3.3.0\frameworks\libs\automation.swc"
"flex_builder_dir\sdks\3.3.0\frameworks\libs\automation_agent.swc" "flex_builder_dir\sdks\3.3.0
\frameworks\libs\qtp.swc" "flex_builder_dir\sdks\3.3.0\frameworks\libs\automation_dmv.swc"

在flex sdk 3.2版本时,是正常的
但使用flex sdk3.3版本进行编译时,一直会有报错:
[attach]59093[/attach]

把编译参数中的:automation_dmv.swc及qtp.swc去除后,可以编译正常;但QTP无法录制到该程序的信息;

大家是否有遇到过相关问题,如何解决的呢??

[ 本帖最后由 fairylly 于 2010-1-21 14:43 编辑 ]
作者: fairylly    时间: 2010-1-21 14:37
公司的程序是用flex sdk 3.3
之前用3.2会有问题,所以不可能换成3.2的
作者: fairylly    时间: 2010-1-21 15:41
之前出错,是因为少放了两个文件到flex sdk 3.3的对应目录下

总结需要从3.2拷到3.3对应目录下的文件:

frameworks\locale\en_US这个目录下要三个文件
datavisualization_rb.swc(之前出错,是因为少了这个)
automation_rb.swc
automation_agent_rb.swc

frameworks\libs这个目录下要五个文件
datavisualization.swc(之前出错,是因为少了这个)
automation.swc
automation_dmv.swc
qtp.swc
automation_agent.swc

[ 本帖最后由 fairylly 于 2010-1-26 14:16 编辑 ]
作者: fairylly    时间: 2010-1-26 14:15
标题: 出现新问题。。。
一个很小的项目,按上述操作后,可以正常录制使用

但另一个较大的项目,也如上添加编译参数后,项目中的很多flash按钮都无法点击。。。
把编译参数去除就正常。。

不知道是不是那些支持qtp的swc文件,和项目有冲突。。。

是否有人遇到过相似问题呢??
作者: fairylly    时间: 2010-1-26 17:37
一个个排查,发现去除编译参数中的automation_agent.swc,项目中的flash按钮操作正常;

但是flash debug提示:
TypeError: Error #1009: 无法访问空对象引用的属性或方法。
        at mx.automation.qtp:: QTPAdapter/setTestingEnvironment()[C:\work\flex\dmv_automation\projects\qtp\src\mx\automation\qtp\QTPAdapter.as:461]
        at mx.automation.qtp:: QTPAdapter()[C:\work\flex\dmv_automation\projects\qtp\src\mx\automation\qtp\QTPAdapter.as:357]
        at mx.automation.qtp:: QTPAgent/applicationCompleteHandler()[C:\work\flex\dmv_automation\projects\qtp\src\mx\automation\qtp\QTPAgent.as:48]
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at mx.managers:: SystemManager/preloader_preloaderDoneHandler()[C:\autobuild\3.3.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:3025]
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at mx.preloaders:: Preloader/displayClassCompleteHandler()[C:\autobuild\3.3.0\frameworks\projects\framework\src\mx\preloaders\Preloader.as:434]
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at com.adobe.cairngorm.game.view.loading::AppPreloader/dispatchComplete()[E:\fairylly\CompanySystem\liangjiansanguo\codes\game\src\com\adobe\cairngorm\game\view\loading\AppPreloader.as:100]
        at flash.utils::Timer/_timerDispatch()
        at flash.utils::Timer/tick()

且,QTP录制不到相关内容,看来还是需要automation_agent.swc,QTP才支持flex。。。
郁闷中。。。。

[ 本帖最后由 fairylly 于 2010-1-26 17:39 编辑 ]
作者: yujie6832    时间: 2010-1-27 09:51
FLEX一直没怎么使用过,呵呵,帮不了楼主
作者: fairylly    时间: 2010-2-2 10:11
标题: 问题已解决
这个错误是因为flex sdk3.3的一个BUG导致的,感谢adobe官网论坛上,svakil的回复:

You are facing the issue mentioned herehttp://bugs.adobe.com/jira/browse/FLEXENT-791
The issue is that when an application has overlapping containers and is compiled using automation libraries the controls present in the lower container are not clickable.

This issue has been resolved in sdk 3.4 but there is also a workaround wherein you can set mouseEnabled property to false for both the overlapping containers and run the application all your buttons should work.

升级flex sdk3.4后,使用对应的automation swcs包,重新编译项目,问题即可解决。
http://download.macromedia.com/pub/flex/sdk/automation_sdk3.4.zip
http://download.macromedia.com/p ... lization_sdk3.4.zip




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