浅谈移动端自动化测试框架和工具
共 2199字,需浏览 5分钟
·
2020-07-28 12:57
Hello,World!
最近时间相对比较宽松,聊聊自己对目前移动端自动化框架或者工具的认识。有不对之处望指出。
1.Monkey
Monkey是谷歌自家东西,它可以生成一些伪随机用户事件流例如模拟用户的点击等手势,以及一些系统级的事件。它应该是目前流行移动端自动化框架或者工具的一个鼻祖。
Monkey 更应该算是一个客户端性能测试工具,测试客户端应用的稳定性,健壮性还是相当不错的。Monkey 也无需而外安装,在android SDK的platform-tools目录下。在进行SDK环境配置时可以把该路径配置到系统变量的path中,便可以直接通过命令进行使用。
Monkey 的谷歌官方地址是:http://www.android-doc.com/tools/help/monkey.html
2.Monkeyrunner
Monkeyrunner 同样是android SDK 自带的测试工具,看名字还跟Monkey很像,但是他们的作用完全是在不同领域。Monkey 更多用于客户端性能,发送的随机事件是基本没法控制的,而Monkeyrunner则强大很多,可以用于做功能测试,回归测试并且可以自己定义测试扩展,灵活性较大。
Monkeyrunner 工具提供了一些API,可以通过该API来控制Android设备或者模拟器。可以通过编写python脚本去安装Android 应用,运行应用,发送模拟按键,手势,截图等等,可以说你能在设备中干的事情,Monkeyrunner 都能干。
网上已经很多人分享了Monkeyrunner录制脚本和回放的脚本,可以下载下来,直接放到android SDK的platform-tools目录下,通过命令 monkeyrunner 脚本名 便可以启动录制器,录制你需要的自动化测试脚本或者回放。
Monkeyrunner 足够强大了,但是录制的脚本是以坐标轴来作为定位方式,而安卓设备类型众多,各种分辨率,所以移植性不好。
Monkeyrunner 的谷歌官方地址:http://www.android-doc.com/tools/help/monkeyrunner_concepts.html
3.Uiautomator
上面提到Monkeyrunner 的定位是以坐标轴的方式,移植性差。那么谷歌还学习 ios 的uiautomation,推出了Uiautomator 则很好的解决了这点。Uiautomator 是通过以控件的方式来定位,当然也是支持坐标轴的方式来定位。Uiautomator是Android 4.1后加入的,所以仅支持Android 4.1 和以上的版本,但是不支持webview。
Uiautomator 谷歌官方地址:http://android.toolib.net/tools/help/uiautomator/index.html
4.Robotium
Uiautomator 仅仅支持4.1以上的版本,然后国内用户Android 升级较慢,还存在非常多的4.1以下版本,所以Uiautomator 貌似也就变得不能满足要求了。
Robotium 则很好的解决了这点,它支持所有的Android 版本,是居于原生的Instruments 二次封装的一个框架。最新版本好像已经更新到了5.0.1, 稳定性等都不错。而且官方还出了一个录制插件 Robotium Recorder(http://robotium.com/products/robotium-recorder)不过这个插件是需要收费的。
Robotium 只支持Java语言开发并只支持Android,并不支持跨进程。
Robotium的中文地址:http://www.robotium.cn/
5.Appium
Appium 官方宣称支持同时支持Android, IOS, FirefoxOS。并且appium 你可以用任何你熟悉的开发语言来进行编写测试用例。例如Java, Python, Ruby, PHP, JavsScript, Object-C, C#.....
Appium 在Android 上如果是大于4.1 则用的是uiautomator, 以下版本则使用Selendroid(selenium for android). IOS上采用uiautomation库做支持。
Appium 的稳定性相对较差点,但是同样采用的控件的定位方式对不懂java而熟悉其它语言的来说还是相当不错的选择。
Appium 官方地址:http://appium.io/
有个论坛也可以看看:http://testerhome.com/
以上均是开源项目或者部分开源,源代码都可以找到,感兴趣可以自己下源代码看看。当然像百度也有一个移动端测试框架叫 云cafe, 阿里好像也有个,但是都没去接触,不了解情况。
传一张图,看懂很多:
- end -
觉得内容还不错的话,给我点个“在看”呗