您的位置:首页 > 其它

转——Windows平台MonkeyTalk环境搭建

2014-06-19 15:36 218 查看
 Windows平台MonkeyTalk环境搭建
 

MonkeyTalk是款针对手机应用的自动化测试工具。

 

特性:

1》免费且开源。

2》支持Android,IOS平台。

3》MonkeyTalk主要包括:MonkeyTalk IDE、MonkeyTalk Agent、MonkeyTalk scripts。

4》MonkeyTalk Agent可以是真机或模拟器。

5》无需root权限或越狱。

6》支持录制、回放、脚本编写(支持JS)。

7》支持回放内嵌的WebViews,但暂不支持录制。

8》支持桌面网络浏览器 (Firefox only in Beta5), 基于浏览器的移动网络。

9》被测试app必须植入Agent,即必须修改app源码。

一安装IDE

MonkeyTalk IDE 主要用于脚本的录制,回放,管理,适用于模拟器及真机。

1 下载MonkeyTalk的zip文件。地址:http://www.gorillalogic.com/monkeytalk

2 将下载好的monkeytalk-latest-win32.zip文件解压缩,里面含有IDE及Agent。如图1所示:

 


图1

3 将MonkeyTalkIDE 文件夹copy到你自己选好的目录下。如图2所示:

 


图2

 

在MonkeyTalkIDE子目录下双击MonkeyTalkIDE.exe启动IDE,如下图所示:

 


图3

二安装Agent

1打开Eclipse,将Android项目转化为AspectJ。

右击被测试app名称,选择Configure—— Convert to AspectJ Project(若单击Configure后没有出现Convert to AspectJ Project 选择,则请参照附录一安装AspectJ插件)。如图4所示:

 


图4

当成功Convert to AspectJ Project 后,app目录下会多个AspectJ Runtime Library目录,里面包含aspectjrt.jar。

 

2 将上次解压缩zip包后产生的文件夹下agents目下的相关平台(此处为Android平台)下的agent.jar(此处为monkeytalk-agent-1.0.11.beta5c.jar文件)copy到Eclipse中你所创建的app下的libs录下。若app中没有libs目录,则新建一个。如图5,图6所示:

 


 

图5

 

 


图6

 

3 右击libs目录下monkeytalk-agent-1.0.11.beta5c.jar—— AspectJ Tools ——

Add  to  AspectPath。如图7所示:

 


图7

将xxx-agent-xxx.jar 成功Add到Aspectpath后,app目录下会增加Referenced Libraries目录,如图8所示:

 


图8

 

4 右击app项目名称——选择Properties——选择Order and Export ——勾选AspectJ Runtime Library ——点击OK按钮。如图9所示:


 

图9

 

5 更改app中AndroidManifest.xml文件,添加以下两行代码:

<uses-permission
android:name="android.permission.INTERNET"/>

<uses-permission
android:name="android.permission.GET_TASKS"/>  

添加后结果如图10所示:  

 

 


图10

 

 

添加INTERENT是方便后期IDE与App通过Http通信用。

添加GET_TASKS是允许程序获取当前或最近运行的应用。

 

 

四连接device

启动MonkeyTalk IDE,单击工具栏中机器人小图标,选择Networked Android Device…。如下图所示:

 


图11

输入设备Ip,如下图所示:

 


图12

点击Ok,即可完成。若连接成功,在Console显示:

19:02:27.984: Connection set to device at [ip]。继续点击工具栏的小机器人我们将看到第三行将显示:Device at 192.168.6.236。

 


图13

 

附:查看设备IP

1》用usb将设备与PC机相连(已安装好设备驱动,PC能正确识别device的情况下)

2》运行cmd

3》在终端输入adb shell进入device的系统命令模式下

4》利用Linux下的ifconfig命名查看设备的Ip,如下图所示:

 


图14

 

 

 

 

 

附录一 AspectJ插件的安装

在使用MonkeyTalk测试Android时,需要用到AspectJ插件,我将在另一章节降到。

1 确保你的Eclipse安装了AspectJ插件。若已装,请跳过。若未装,则右击项目名——Configure——若菜单项中没有Convert to AspectJ,如图1所示,则表明Eclipse中未装AspectJ插件。

 

 


 

图1

 

2:安装AspectJ

2.1 打开Eclipse——Help——Install New Software

2.2 在Work With输入框中输入:http://download.eclipse.org/tools/ajdt/37/update,等待Pedding结束,如图:

 


 

 

图2

点击Next,如图:

 


 

图3

选择“I accept the terms of the license agreements”,然后点击Next:

 


图4

正在安装,如图:

 


图5

安装过程中可能会弹出一个对话框需要你确认,直接点击Yes就Ok了。

安装成后需重启Eclipse,重启Eclpse后右击项目名——Configure,你将看到如下信息,如图6所示:

 


图6

 

附录二(问题总结)

 

 1  command 'input.entertext' is illegal -- only Test, Setup, Teardown are allowed。

因为在mts中执行以下脚本(应该在mt中执行),所以出错

Input username EnterText user123

Input password EnterText pw123

Button LOGIN Tap

Button LOGOUT Tap

2 右击MonkeyTalk 
Project的name,选择new,没有“Test”菜单,只有“Test
Suit”菜单。


最新版的“Test”菜单改成了“Script”菜单。

 

 

3  MonkeyId 的选择

MonekyId是ComponentType的具体表现。比如ComponentType为Input即Android中的EditText,那么MonkeyId则是EditText的Id(android:id=“”)或者EditText的text(android:text=“”)。但我们在选择MonkeyId时尽量选择EditText的Id,Id是唯一的而text随时都可能发生改变,如果我们想重复执行这个script时,当EditText的值发生了改变,执行script时就会出错:Failure:Unable
to find Input('PWD')。

 

当我们在测试MainActivity这个界面时,设置的测试脚本中除了Password的MonkeyId用了text,其他的ComponentType的MonkeyId都用Android中View的id。如下图所示:

 


 

 

 

图7

注意:其中*表示第一个以“Input”为ComponentType的MonkeyId。

MonkeyId也可以用#N(N为数字)表示,其中N表示所有相同的ComponentType中的第N个MonkeyId,它们以(X,Y)的形式排序计算其N值,即从上到下,从左到右计算。如图7中的User用#1表示,PWD用#2表示,LOGIN用#1表示,LOGOUT用#2表示。如下图所示:

 


图8

点击ToolBar上的绿色箭头执行脚本,如下图所示:

 


图9

这次顺利执行了。当我们再次点击那个绿色箭头执行时,结果如下:

 


 

图10

我们看到Console中的最后一行:Failure:Unable to find Input('PWD')。脚本找不到PWD了,因为PWD被我们上次更改成了username。导致后面的两句脚本:

Button login_in Tap

Button login_out Tap

也无法执行了。

4 MonkeyTalk不能识别空格

若代码中在文字前面加空格,录制时可以通过,回放时出错,MonkeyTalk会默认把文字前的空格过滤掉,但实际上空格也是个合法字符,造成录制时与回放时的值不等,因此出错。

例如:“ 
开始收集”Button与“开始收集”Button实际不等,但MonkeyTalk在回放时会自动将“ 
开始收集”Button过滤成“开始收集”Button,但录制的脚本和实际代码中都是“ 
开始收集”Button。因此返回不能识别的错误信息。

PS:文章先贴上, 后续将具体操作,然后在该文章下面添加备注。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: