Flexmonkey是一个开源的AIR应用,它可以利用Flex自动化框架来记录和回放Flex应用的GUI交互过程。下面主要讲述了如何搭建Flexmonkey项目的测试环境、如何使用Flexmonkey做自动化测试和通过AS来编写自动化测试的脚本。
准备工作:
1.安装Flex应用程序的开发环境Flash Builder
2.获取Flexmonkey安装包和我们需要的范例文件 参考:http://www.adobe.com/cn/devnet/flex/articles/flexmonkey.html
上面提供的是官网上Flexmonkey的下载地址,网页打开的慢而且下载比较麻烦,我们可以去CSDN上下载Flexmonkey的安装包。
一.搭建Flexmonkey的项目环境
1. 启动Flash Builder,将下载的flexmonkey_sample.zip中的MonkeyContactsIntroExample项目解压到Flash Builder的Workspace中,当然也可以是其他目录;
2. 在Flash Builder中导入MonkeyContactsIntroExample项目,并编译运行这个应用,如图:
3. 双击下载的Flexmonkey安装包进行安装,然后启动Flexmonkey;
4. 第一次启动Flexmonkey,会弹出Project Properties窗口,我们可以设置该测试项目的保存路径、测试用例的保存路径
-
A.Project Directory是该测试项目的保存路径,一般我们选择在Flash Builder项目下新 建文件夹tests来保存这个测试项目,在这个例子中就是 MonkeyContactsIntroExample/tests;
B.Output Source Directory是用来保存我们在Flexmonkey中创建的测试用例,一般我们 在tests文件夹下新建文件夹src来保存它,如图:
5. 我们关闭这个Project Properties窗口,按照下面的步骤来新建一个Flexmonkey项目
-
A.选择File-->New Project,在弹出的对话框中选择文件夹MonkeyContactsIntroExample,然后新建tests/src文件夹,选择tests文件夹,点击确定;
B.选择Project-->Properties,我们可以看到ProjectDirectory已经定位到tests下,我们需要重新定位下Output Source Directory到src文件夹下,其他的都可以选择默认;
C.打开Setup Guide,选择Flex SDK的版本号,如图:
D.在Step #2中勾选右侧的复选框,将Step #3右侧的 拖拽到 MonkeyContactsIntroExample项目下lib文件夹中;
E.复制Step #4下面方框中的配置内容,然后在Flash Builder中打开该Flex项目的属 性,在选项卡Flex编译器中的附加的编译器参数位置追加复制的内容; 注:也可以追加下面的通用编译器参数
-
Flex 4.x
-locale en_US -include-libraries libs/automation_monkey4.x.swc ${flexlib}/libs/automation/automation_agent.swc
Flex 3.x
-locale en_US -include-libraries libs/automation_monkey4.x.swc ${flexlib}/libs/automation_agent.swc
F. 然后点击OK按钮,这样就完成了一个项目的创建。
-
6. 在Flexmonkey主界面中,Monkey Link Connection Status亮起来了就说明Flexmonkey和开始打开的应用程序完成了勾兑。
二.测试Flex应用程序
Flexmonkey的工具栏
1. 录制功能
- A.点击Start Recording 按钮,会弹出一个录制窗口,如图:
B.在Flex应用中输入一条Contact信息,然后点击Stop Recording按钮结束录制,我们 会得到下面的结果,输入与录制内容如图:
输入的内容:
录制的内容:
C.展开Flexmonkey IDE中的New Test Suite 文件夹,然后将上述录制的片段拖拽到 New Test下;
D.这样便通过录制构建了一个简单的测试片段,我们可以通过复制、删除、移动等操 作来编辑这个测试片段从而形成一个新的测试片段。
2. 回放功能
-
当我们把鼠标悬停在New Test Suite 或New Test Case 或New Test或者是某一个操作的右边空白处时,会显示编辑按钮 ,分别是拖拽(剪切)、复制、播放、删除的含义,我们点击Play就可以播放对应的Suite或Test Case或Test或者是Test Item;
3. 创建一个验证测试片段
-
A.拖拽一个 到New Test Case目录下就新建了一个Test片段,双击这个Test片段, 我们为它重命名为Validation Test;
B.拖拽一个 到Validation Test下,这时候将鼠标移动到Flex应用上面,然后选择 一个组件,如Name标签,会弹出一个Store Value Command对话框,如图:
C. 设置Property String为label,指的是Name标签上的文本;调整Retry Attempts次数 为3次(默认是20次),指的是失败是尝试次数;Key Name 保持默认,然后关闭对话 框;
D.拖拽一个 到Validation Test中,选取一个组件,便于理解Store Value工具,我 们也选择Name标签,会弹出属性选择窗口,输入label,勾选复选框,如图:
点击next后,在最下面Expected Value中输入预期值,如果不输入预期值我们则可以选 择Stored Key Value(在上面步骤中存储的值),如图:
E.然后我们Play一下Validation Test,测试会很好的通过,如图:
F.这样一个简单的测试片段就完成了,上面的New Test我们更名为Setup Test,它和 Validation Test一起便构成了测试用例New Test Case 我们更其名为Monkey_Contact Test;
G. 选择File-->Save 来保存这个测试用例。并执行下File-->Generate FlexUnit Test。
4. 对于其他的工具使用,一些简单的对比、尝试基本就可以弄清楚了,这儿就不多说了。
三. 使用Actionscript 生成测试脚本
参考:http://www.51testing.com/html/39/n-155739.html
在Flash Builder中,我们逐级展开 MonkeyContactsIntroExample/tests/src/testSuites/newTestSuite/testCases/tests, 将会看到我们创建的测试片段,里面就是用AS编写的测试脚本。
通过测试用例生成的脚本我们可以看到: 录制的每一个操作都会new一个UIEventMonkeyCommand;每一个命令都指定一个操作,属性/值对用以标志该操作以及操作相关参数所对应的目标组件。[TestCase(order=1)] 标识测试片段运行的先后顺序。函数setupTestTest()是测试的入口,这个函数会执行runFlexMonkeyCommands()从而运行那些操作。
如果想要深入学习如何编写AS脚本,最好的方法就是在Flexmonkey中录制一些基本操作,然后通过编辑来创建随意的测试用例,然后调出测试脚本进行学习。