【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

使用 FlexMonkey 测试 Flex

  • 2008-10-24
  • 本文字数:1803 字

    阅读完需:约 6 分钟

在这篇新闻中,InfoQ.com 与 FlexMonkey 项目创建者、来自 Gorilla Logic 的 Stu Stern 一起讨论了 FlexMonkey 。FlexMonkey 是一个用来测试 Flex 应用的开源工具,它采用记录 / 回放模式。

Stern 首先对 FlexMonkey 进行了概要性描述:

FlexMonkey 是一个开源的 Flex 应用和库,可以记录和回放用户界面的交互并生成可重复使用的测试用例,你可以在持续集成框架(如 Cruise Control)中运行这些测试用例。

接下来 InfoQ 问询了 FlexMonkey 与其他 Flex 测试工具有何区别:

我们注意到 FlexMonkey 是唯一一个完全基于 Flex 的记录 / 回放工具。它无需浏览器插件(当然除了 Flash player 以外),也用不着特殊的脚本语言。记录下来的 UI 场景可以作为 ActionScript 的源代码,它们既可读又可编辑。甚至不需要使用记录工具就可以轻松创建测试,因为利用 FlexMonkey API,我们没必要直接在 ActionScript 中指定大多数的 UI 操作。 如果你了解 Flex,那么你对 FlexMonkey 的使用就几乎没有任何问题,能运行 Flex 的地方就能运行 FlexMonkey(也就是说几乎任何平台都可以)。

接下来,Stern 谈到了许可协议:

FlexMonkey 本身基于 Apache 2 许可,这意味着你可以修改其源代码,并将其作为其它开源或商业产品的一部分。很显然,Gorilla Logic 认为将 FlexMonkey 放出价值更大,而并不是将其作为一个产品来卖! 但我们应该注意到 FlexMonkey 依赖于 Adobe 的 Flex Automation API,它位于 FlexBuilder 专业版中。FlexBuilder 标准版包含了 Automation API 的试用版,这限制了应用每次加载时所允许的重放次数。你可以通过 FlexBuilder 标准版来试用 FlexMonkey,如果觉得满意再升级到专业版。我们希望 Adobe 将 Automation API 加到大多数已开源的 Flex 平台中,但现在你不得不使用 FlexBuilder 专业版。专业版还可以进行性能与内存分析,因此如果你正在进行要求严 格的企业级开发,那么无论如何也要升级到专业版。

InfoQ 谈到了测试异步功能所面临的挑战:

FlexMonkey 所生成的每个 UI 事件都是异步的,而且 FlexMonkey 都会在生成每个后续事件前暂停(默认暂停 500 毫秒)。如果你有一个运行时间很长的数据库查询(比如由按钮点击所触发),那么在按钮事件产生后你可以增加延迟时间。 像 FlexUnit 这样的测试运行框架也需要针对异步操作进行特殊的处理。FlexMonkey API 本身就是异步的,因此你需要通过某种手段告诉运行器测试何时完成。当 FlexMonkey 在一个测试用例中处理完所有的事件时它会产生一个 READY_FOR_VALIDATION 事件。如果使用 FlexUnit,你需要在调用下一个测试用例前使用 FlexUnit 的 addAsync 方法来告诉 FlexUnit 等待这个事件完成。

我还要补充一下,尽管 FlexUnit 是当前唯一一个直接集成到 FlexMonkey 中的 xUnit 框架,但你仍然可以将其他针对 Flex 的 xUnit 框架与 FlexMonkey 搭配使用。我再强调一次,FlexMonkey 测试其实就是 ActionScript。此外,你可以直接将其他任何 xUnit 框架集成到 FlexMonkey 中并生成代码,就像我们对 FlexUnit 所做的一样 (请放心大胆地去做吧)。

InfoQ 紧接着问道,FlexMonkey 是如何使用 Flex Automation 框架的:

当你运行一个使用了 Automation API 的应用时,每个 UI 事件(如按钮或者鼠标点击)都会生成一个“automation 事件”来描述相应的 UI 事件。这种包含在 automation 事件中的信息可以反馈到 Automation API 中并产生一个假的按钮点击,而 Flex 对其的响应就好像它是原生的 UI 事件一样。正如我之前所提到的,通过使用 FlexMonkey API,你可以创建一个此前并没有被 Automation API 记录下来的事件。我们可以使用 FlexMonkey 记录并回放几乎任何 Flex UI 事件,包括相关的“exotic”操作,比如某个 DataGrid 里的 itemEditor 是一个 ComboBox,那么我们就可以从中选择一个条目。

最后,InfoQ 问 Stern,读者还需了解什么:

尽管我们的开源项目还是个新兵,但 FlexMonkey 却相当稳定。它有丰富的文档。大多数人能在不到一小时内就成功运行起来。 你可以运行 http://keystone.gorillalogic.com/~sstern/MonkeyContacts.html 上的这个示例应用来快速了解 FlexMonkey。如果你运行这个示例,你会看到记录并回放 UI 场景是多么的简单,你还能看到生成的 ActionScript 是什么样子的。

该项目本身位于 http://flexmonkey.googlecode.com 。我们希望看过这篇新闻的每个人都能加入我们这个快速发展的社区!

查看英文原文: Flex Testing with FlexMonkey

2008-10-24 09:454156
用户头像

发布了 88 篇内容, 共 258.7 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

【万字干货】OpenMetric与时序数据库存储模型分析

华为云开发者联盟

OLAP 时序数据库 index Metric Timeseries

在云中确保安全的五个技巧

浪潮云

云计算

如何实现 iOS 短视频跨页面的无痕续播?

阿里云视频云

ios 阿里云 Video播放器 视频云

理解RESTful API

林十二XII

腾讯云分布式数据库TDSQL的十年自主可控之路

腾讯云数据库

数据库 tdsql

来自阿里的图解计算机、网络、操作系统PDF,竟在GitHub点赞最高

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

无敌!肝完这套Alibaba面试全能小册,百万年薪在向你招手!

Java 阿里巴巴 编程 面试 程序人生

大奖花落谁家,TDSQL他来了

腾讯云数据库

数据库 tdsql

牛掰!阿里大佬刷了四年LeetCode才总结出来的数据结构和算法手册

Java 编程 架构 面试 程序人生

什么是CPython

林十二XII

TDSQL交付要求和挑战: 快速、灵活、安全

腾讯云数据库

数据库 tdsql

云原生架构下的持续交付实践

百度Geek说

架构 云原生 后端

腾讯出品526页异步非阻塞通信领域巅峰之作:Netty IO核心技术指南

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

偷偷翻开学妹笔记本,发现绝密Spring Cloud Alibaba笔记

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

在?来说点儿程序员Style的金句吧【话题讨论】

气气

话题讨论

TDSQL自动交付方案: 全球灵活部署,最快9分钟

腾讯云数据库

数据库 tdsql

拓路前行-TDSQL追求极致体验的这一路

腾讯云数据库

数据库 tdsql

T-TDSQL的典型应用

腾讯云数据库

数据库 tdsql

不是吧 阿sir!都21年了还有人不会算法?赠你份字节内部算法手册吧

Java 编程 架构 面试 架构师

使用DEM和矢量数据绘制地图

gisbook

GIS map DEM

高能预警!Alibaba最新出版的JDK源码剖析手册(究极奥义版)开源

Java 程序员 架构 面试 Alibaba

拯救你的算法!GitHub上神仙项目手把手带你刷算法,Star数已破110k

Java 编程 架构 面试 程序人生

自助售货机主板要注意哪几个方面?

双赞工控

安卓主板

面试官:你说说限流的原理?

艾小仙

面试

TDSQL多集群下的自动化和交付

腾讯云数据库

数据库 tdsql

TDSQL原创技术的出发点

腾讯云数据库

数据库 tdsql

12年技术老兵整理的Alibaba“MySQL 学习笔记”带你轻松拿捏MySQL

Java 编程 架构 面试 程序人生

T-TDSQL的核心技术

腾讯云数据库

数据库 tdsql

少女银四失足,偶得“阿里Java神级题库(25专题)”,金九稳了

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

阿里最受追捧的「中高级技术核心」,助我拿下菜鸟offer,附面经

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

工信部整治平台网址屏蔽问题,打击互联网行业垄断任重道远

石头IT视角

使用FlexMonkey测试Flex_Java_Jon Rose_InfoQ精选文章