技术开发 频道

Flex自动化功能测试工具大比拼

  QTP

  在QTP中测试Flex需要安装Flex for QTP的插件。

  在Flex Builder 3中带有为QTP自动化测试而提供的插件,运行Flex Builder安装目录下的\Installers\QTP_Plugin_Installer.exe进行安装。安装完成后启动QTP,在Add-ins Manager窗口中出现Flex 3.0.0的插件加载项:

  为了让QTP可以识别Flex对象,还需要对被测试的Flex程序进行编译设置,打开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"

  这样编译后的Flex程序就可以被QTP所识别了:

  并且可以进行Flex程序脚本的录制:

  录制的脚本如下所示:

  Window("Microsoft Internet Explorer").FlexApplication("PhotoAlbum").FlexLinkBar("_PhotoAlbum_LinkBar1").Change "Shopping Cart"

  Window("Microsoft Internet Explorer").FlexApplication("PhotoAlbum").FlexLinkBar("_PhotoAlbum_LinkBar1").Change "Photo Catalog"

  Window("Microsoft Internet Explorer").FlexApplication("PhotoAlbum").FlexBox("Photo Catalog").FlexList("slideList").FlexBox("assets/thumbs/alcatraz.jpg").FlexImage("assets/thumbs/alcatraz.jpg").Click

  结论

  本文介绍了4种支持Flex自动化功能测试的商用工具,经过粗略的使用和对比,可以发现:每个工具在支持Flex的对象识别所采用的技术上有所差别,但是总体而言可分为两类:一类是采用了Flex自动化接口,例如RFT、SilkTest等;另外一类是没有采用Flex自动化接口,例如TestComplete采用的时MSAA接口。

  总体而言,对Flex应用程序进行测试之前,都需要对编译环境进行必要的设置,TestComplete由于采用MSAA接口,需要设置的内容相对少一些。

  与其它工具不同,QTP没有“原生”支持Flex,而是“假手于人”,需要借助Flex Builder专门为QTP提供的插件来实现对Flex测试的支持。虽然QTP没有直接支持Flex,但是通过初步的使用和比较,发现Adobe为其量身订做的Flex插件在识别对象的能力上比采用MSAA接口的TestComplete要略胜一筹。

0
相关文章