
首先来看业界用的较早也是经常听过的一款工具—— 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 地址:
https://github.com/zhangzhao4444/Maxim
Fastbot是字节跳动的Quality Lab团队开发的一款融合了机器学习与强化学习的基于模型测试的工具。
中文介绍
英文介绍
Fastbot可以理解为MaxIM的升级版,为了增强覆盖,融合了多种机器学习、强化学习等相关的算法。他的执行速度很快,并显著提升了测试覆盖度。应用的效果也是非常不错的。
这是来自于作者团队的效果介绍
官方 GitHub 地址:
https://github.com/bytedance/Fastbot_Android
AppCrawler 是由霍格沃兹测试开发学社第一任校长思寒开源的一个项目,官方 GitHub 上对这款工具的解释是:
这里顺便提一下的是谷歌也发布了一款自动遍历的工具,名字几乎一样,叫做 App Crawler (差了一个空格),设计的思想也一致。思寒开源的的工具比谷歌早了两年时间。
下面来看看 AppCrawler 的作用和价值。看看它为何满足我们的测试需求,它的优缺点又在哪里。
优点:
- 跨平台性:AppCrawler 是基于 Appium 开发的,所以支持 Android、iOS、Web以及GUI
-
- 灵活定制:对遍历的页面、控件、事件、深度等都可自由控制
缺点:
- 灵活定制:对遍历的页面、控件、事件、深度等都可自由控制
- 运行速度较慢:AppCrawler 是基于 Appium 开发具备了跨平台的优点,但是也因为这层封装造成了运行速度相对较慢,再加上运行过程中加入了截图(可以在配置中取消,但是取消后不利于结果的查看),运行起来自然就慢了;
-
- 使用门槛高:正因为使用灵活性的问题,也造成了使用门槛的提高,主要基于 YAML 文件中使用 Appium 的相关技术知识进行配置,这就对使用者有了一定的技术要求;
给大家介绍了常见的几款遍历工具,相信大家已经对自动遍历已经有所了解。那么如何把这套有趣又有用的技术落地到自己的工作中以保证好回归测试、健壮性测试效果哪?
- 使用门槛高:正因为使用灵活性的问题,也造成了使用门槛的提高,主要基于 YAML 文件中使用 Appium 的相关技术知识进行配置,这就对使用者有了一定的技术要求;
9月28日appcrawler的作者思寒将来到直播间,与大家分享并交流智能遍历的相关技术,并教大家在工作中如何应用。
点一下在看,就少一个 Bug!
哈喽,喜欢这篇文章的话烦请点个赞哦!万分感谢(*^▽^*)PS:有问题可以联系我们哦v ceshiren001
获取更多技术文章分享
1.关于Appium
Appium是一个自动化测试开源工具,它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了iOS和Android测试套件间代码的复用性。
本次Workshop,我们学习了Appium的设计原理,了解如何抓取页面元素,如何使用Appium-desktop进行用例的录制,为一些不是很了解Appium的同学打下了基础。
然后我们对PageObject这一业内最流行的UI自动化测试设计模式进行了讲解,并通过实战的方式,让大家深刻了解了PO在实际的工作中的实际作用。
我们的压轴课题是Appium源码解析,我们带大家深度解析了Appium这一开源框架的源码,使各位同学对优秀的测试框架有了一个初步的认知。
2.活动现场实况

▲Workshop会议室就绪

▲现场“活捉”一枚海贼迷
本次workshop是10点正式开始讲课,但是有很多同学在不到九点的时候就已经到达会场,进行环境配置等提前的预习准备,足以看出大家对这次workshop的重视程度。
学院也极力配合大家的学习热情,每个助教也都早早的就位,为提前到场的同学答疑解惑。

▲助教为现场同学解答问题
上午主要介绍了Appium测试框架原理,以及带大家解析了Appium自动化流程。一上午的时间,干货满满,现场学习气氛高涨,每一个到来的同学都很认真,甚至中午的午休时间也舍不得放过。

▲同学们聚精会神的听课

▲中午午休时间思寒为大家答疑
到了下午,思寒为大家详细的介绍了PageObject设计模式,并将这一设计理念与实战融合,带大家更深刻的理解移动端自动化测试的要点。

▲思寒为大家讲解课程
学习了一天,需要食物来补充能量!所以学院也为大家准备了好吃的下午茶,为大家做好“粮草补充”。

▲补充能量的下午茶歇

▲思寒老师在茶歇时间回答问题
既然有“霍格沃兹”,那怎么能缺少“神奇动物”呢?
在下午学习的过程中,一只可爱的魔法猫咪加入到了我们霍格沃兹测试学院,聚精会神的和我们一起学习了Appium的源码与架构的剖析
小猫都在学习啦,你还在等什么呢?

▲认真学习的小猫咪
内心OS:Appium原来有这么多优秀的设计思想可以借鉴呢。我还要认真多看一些,下次可以写出来一个Catium,给大家自动测试一下小鱼干好不好吃。
3.Workshop完美收官
仅仅用了一天的时间,我们让现场的学员既学到了实用的自动化流程,和优化脚本的设计模式,又带学员剖析了测试圈最好的开源框架之一Appium的一些底层实现逻辑。
假以时日,相信我们的学员吸收了这些优秀的开源项目的优点,也可以做出来像Appium一样优秀,实用的测试框架。

▲ Workshop结束后的大合照
4.聚餐时间(彩蛋来啦)
学习是一件辛苦的事情,劳逸结合才能使效率更高。
在Workshop结束之后,大家使用了学院的TeamBuilding“腐败”权利,学院的同学与老师、助教们一起聚餐。大家一起一边聊聊行业形势,技术趋势,一边大快朵颐,享受美食。

既有美食,又学到了知识,Workshop第六期-深圳站最终划下了一个完美的句号。期待下次能继续和各位同学一起,共同进步。



原文链接
哈喽,喜欢这篇文章的话烦请点个赞哦!万分感谢(*^▽^*)PS:有问题可以联系我们哦v ceshiren001
获取更多技术文章分享
本文比较了Android测试工具Monkey、Maxim、Fastbot和AppCrawler的优缺点,探讨了它们在自动化遍历测试中的应用和局限,以及在选择中的考量因素。
208

被折叠的 条评论
为什么被折叠?



