(上)FlexMonkey将单元测试引入Flex用户界面开发

发表于:2009-9-23 13:49

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Stuart Stern    来源:InfoQ

  交互地创建测试

  FlexMonkey本身虽然是Adobe AIR应用程序,但却可以测试AIR和Flex应用程序,包括使用远程服务如BlazeDS在内的基于服务端的Flex SWF文件。FlexMonkey可以在不需要链接任何特殊测试库的情况下,录制和回放应用程序的交互,并且既可以测试单独运行的应用程序,也可以测试在浏览器中运行的应用程序。

  想要创建一个测试套件,你可以使用FlexMonkey加载器运行应用程序,方法可以通过文件选择对话框定位到SWF文件或者也可以指定要加载的服务器端SWF的URL。FlexMonkey将加载SWF并且将它显示在自己的窗口或者浏览器页面中,它还会打开一个包含FlexMonkey控制台的单独窗口。该控制台主要用来管理用户界面测试的录制和修改。想要录制一个测试,你可以简单地点击Record按钮,然后与你的应用程序进行交互即可。当你点击组件或是在应用程序窗口中输入一些字段时,每一个动作都会被录制下来并显示在FlexMonkey控制台中。下面的屏幕截图显示了一个简短的录制过程,其中我们使用了一个简单的联系人管理应用程序("Monkey Contact Manager"),输入名字("Fred")和电话号码("555 555 1212"),然后点击Add按钮,应用程序联系人列表中就会多出了一个新行。FlexMonkey可以如实的录制任何一个UI事件,包括许多“外部的”事件,例如选择一个嵌入在DataGrid中的ComboBox里的值。

点击查看大图

  在上面的屏幕截图中,我们看到在手工测试Monkey Contact Manager应用程序时,FlexMonkey控制台包含了录制的事件。

  FlexMonkey使用熟悉的xUnit测试层次来将所有的测试组织成测试用例和测试套件。在这个例子中,我们创建了一个叫做MonkeyContactsSuite的套件,它其中包含了一个叫做MonkeyContactsCase的测试用例。这个测试用例反过来包含了一个叫做TestAddNewContact的单个测试,而这个单个测试是由我们刚刚录制完的不同用户操作组成的。对于每一个用户操作,FlexMonkey会捕获一个UI事件,一个属性值对,用以标识事件的目标以及事件相关的参数。点击第一个Input操作,我们可以看到FlexMonkey控制台右侧显示出它的详细信息,并且可以修改其中的参数。例如,我们可以在回放过程中将脚本中的输入由"Fred"改为"Ethel"。

点击查看大图

  这个操作将一个带有"Ethel"参数的UI输入事件发送到了一个属性为automationName值为inName的组件中。换句话说,这个操作是指示FlexMonkey在回放过程中向联系人管理程序中的Name字段输入"Ethel"。Container Value 和 Container Property 两个字段是通过指定父容器的属性/值对来进一步验证事件的目标组件。利用目标和容器属性来查找一个组件可以很明确地引用到任何UI组件,甚至都不需要指定 automationName 属性。例如,我们创建一个这样的操作:点击id为"editPanel"组件内部标签为"Go"的组件。通过点击FlexMonkey控制台上的 Verify按钮(绿色的勾)打开FlexMonkey Spy Window窗口,我们可以交互性的创造一个断言来验证一系列的属性值对。使用这个spy窗口,我们可以选择UI组件上任意的属性集合并检验它们是否与想象中一样。下面的屏幕截图展示了如何使用spy窗口,来验证一系列操作后Name字段的text属性是否为"Fred"。

点击查看大图

  除了验证属性值以外,FlexMonkey还可以在录制的过程中捕获应用程序窗口特定选择区域的位图,并且可以在回放的过程中对比这块窗口区域,这相当于提供了一个自动“目测”应用程序在实际屏幕显示时某个部分的方法。

  我们可以点击Play按钮来运行我们的测试。过程中FlexMonkey回放了每一个在联系人管理应用程序中记录的操作,而应用程序的响应方式与手工操作键盘鼠标时完全一样。我们的简单测试运行结果如下:

点击查看大图

  通过这种方式使用FlexMonkey,我们可以交互性地创建和维护多种多样的,复杂的,可以包含任意数量测试用例和测试的套件。

相关阅读:

FlexMonkey将单元测试引入Flex用户界面开发(下)

最新QTP识别flex4方法研究

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

Flex程序性能测试

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号