东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

使用 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:454152
用户头像

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

关注

评论

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

如何实现云数据治理中的数据安全?

京东科技开发者

云计算 大数据 数据治理 企业号 3 月 PK 榜 计算资源

gt-checksum 1.2.1发布,新增表结构校验及修复等超实用特性

GreatSQL

MySQL greatsql社区 gt-check

稳定高效数据库管理:Valentina Studio Pro激活版

真大的脸盆

数据库 Mac 数据库管理工具 Mac 软件 管理数据库

Dubbo + ZooKeeper|如何解决线上故障排查链路长的难题

云布道师

dubbo

什么是容器编排及编排的优点

黎博

容器编排 Kubernetes Serverless

作为移动开发你不能不了解的编译流程

京东科技开发者

编译器 移动开发 京东云 京东技术

一文吃透扫码登录原理

程序员大彬

Java java面试 扫码

Final Cut Pro资源库占用内存太大如何释放磁盘空间?

魔仙苹果mac堡

FCPX下载 fcpx Final Cut Pro空间不足 fcpx中文版

聊一聊系统重构

Tars-Java网络编程源码分析

vivo互联网技术

网络编程 nio TARS

简历上的项目,需要这样描述才有亮点!

小傅哥

Java 面试 项目 简历 校招

Parallels Desktop虚拟机问题汇总

魔仙苹果mac堡

常见问题 parallels desktop18 pd虚拟机 PD密钥

运维训练营第19周作业

好吃不贵

手把手带你上手ChatGPT

老周聊架构

3月月更 ChatGPT

利用 ChangeStream 实现 Amazon DocumentDB 表级别容灾复制

亚马逊云科技 (Amazon Web Services)

实现常驻任务除了避免昙花线程,还需要避免重返线程池

newbe36524

C#

基于 Kafka 和 Elasticsearch 构建实时站内搜索功能的实践

京东科技开发者

MySQL ES 京东云 京东物流 京东技术

美团:某动态线程池框架是官方开源的么?

马丁玩编程

线程池 美团线程池

线段树模板与练习

timerring

线段树

使用K8S进行蓝绿部署的简明实操指南

SEAL安全

k8s 企业号 3 月 PK 榜 蓝绿部署

人工智能与软件工程

紫晖

人工智能 机器学习 软件工程 工程

在京东如何做好前端系统的可观测性

京东科技开发者

前端 京东云 京东技术

Three.js 进阶之旅:物理效果-3D乒乓球小游戏 🏓

dragonir

CSS JavaScript 前端 React three.js

追踪 Kubernetes 中的数据包

张晓辉

Kubernetes 网络

系统设计的端到端原则

俞凡

架构

PyTorch深度学习实战 | 神经网络的优化难题

TiAmo

PyTorch 随机梯度下降 动态调整

AAA级认证!索信达综合信用水平获高度认可

索信达控股

常用对话框基本使用

攻城狮Wayne

dialog timepicker progress

如何实现云数据治理中的数据安全?

京东科技开发者

数据库 云计算 京东云 京东技术

交易履约之产品中心实践

京东科技开发者

交易 京东云 京东技术 京东科技 产品中心

移动云发布操作系统迁移工具,助力全场景业务一站式迁移

openEuler

Linux centos 操作系统 虚拟化 openEuler

使用FlexMonkey测试Flex_Java_Jon Rose_InfoQ精选文章