首先来看业界用的较早也是经常听过的一款工具—— Monkey。这是 Android 官方提供的一个工具。谷歌原本设计这款工具是为了对 App 进行压力测试的。谷歌早期在设计 Android 的时候,Android 需要响应滑动、输入、音量、电话等事件,早期 activity 设计不完善的时候,谷歌希望测试 activity 的性能,把所有的数据批量化的输出给 activity,看 activity 一秒钟可以处理多少数据。所以早期 Monkey 是用来做 Android 的一个压力测试的工具。
由于 Monkey 在测试过程中的“随机”性,恰巧可以被用来做自动遍历测试,但是 monkey 的缺点很明显,不支持业务行为定制,无法灵活的控制,经常会点到外部的 App 无法回归原测试 App;或者点击到注销和退出,造成无法继续后面的测试;因此 monkey 在经过调研了解后没有成为我们做自动遍历测试的首选。
Monkey 官方链接:
https://developer.android.com/studio/test/monkey
Maxim 也是一款自动遍历工具,由国内的 zhangzhao 同学开发,官方给出的定义是:
我们来看看这款工具的优缺点:
优点:
- 基于Monkey二次开发,运行速度非常快
- 提供了多种遍历算法以提高覆盖度
- 提供了定制化功能,可以实现流程控制
缺点: - 因为是基于 Monkey,所以不具备跨平台性,只能测试 Android,不能测试 iOS,Web 等;
这是一款很优秀的工具,可在一定程度上进行定制,如果只测试 Android 系统的话,可以考虑选用 Maxim 做自动遍历。
官方 GitHub 地址:
GitHub – zhangzhao4444/Maxim: 高速uiautomator控件解析算法的Android Monkey,…
高速uiautomator控件解析算法的Android Monkey, 每秒10-15个Action Event。实现快速DFS算法的Android Monkey , 每秒 5个Action Event。 – GitHub – zhangzhao4444/Maxim: 高速uiautomator控件解析算法的Android Monkey, 每秒10-15个Action Event。实现快速D…
Fastbot是字节跳动的Quality Lab团队开发的一款融合了机器学习与强化学习的基于模型测试的工具。
中文介绍
英文介绍
Fastbot可以理解为MaxIM的升级版,为了增强覆盖,融合了多种机器学习、强化学习等相关的算法。他的执行速度很快,并显著提升了测试覆盖度。应用的效果也是非常不错的。
这是来自于作者团队的效果介绍
官方 GitHub 地址:
https://github.com/bytedance/Fastbot_Android 1
AppCrawler 是由霍格沃兹测试开发学社第一任校长思寒开源的一个项目,官方 GitHub 上对这款工具的解释是:
这里顺便提一下的是谷歌也发布了一款自动遍历的工具,名字几乎一样,叫做 App Crawler (差了一个空格),设计的思想也一致。思寒开源的的工具比谷歌早了两年时间。
下面来看看 AppCrawler 的作用和价值。看看它为何满足我们的测试需求,它的优缺点又在哪里。
优点:
- 跨平台性:AppCrawler 是基于 Appium 开发的,所以支持 Android、iOS、Web以及GUI
- 灵活定制:对遍历的页面、控件、事件、深度等都可自由控制
缺点:
- 运行速度较慢:AppCrawler 是基于 Appium 开发具备了跨平台的优点,但是也因为这层封装造成了运行速度相对较慢,再加上运行过程中加入了截图(可以在配置中取消,但是取消后不利于结果的查看),运行起来自然就慢了;
- 使用门槛高:正因为使用灵活性的问题,也造成了使用门槛的提高,主要基于 YAML 文件中使用 Appium 的相关技术知识进行配置,这就对使用者有了一定的技术要求;
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦。更多技术文章
原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/tech/272396.html