本文摘要:重点介绍了appium方案与其他方案的优缺点对比,以及在环境配置、原生控件查找、图片识别方面的关键知识和常用问题解决方法。
本文适合:只有单一iOS开发或者自动化测试背景的人员,作为辅助文档阅读;不适合作为新手第一篇文档,或者已同时熟练掌握iOS开发、appium自动化测试的人员阅读。
一、前言
游戏发行业务中,对游戏进行测试是保证游戏质量重要的一环。传统人工测试的方法费时费力、容易出错,所以自动化测试技术显然才是更好的解决方案。而 appium
就是自动化测试的最优秀的方案之一,新手上路可以通过 appium 官方的 Getting Started - Appium 快速入门。
二、iOS UI 测试方案对比
在讲解appium
的相关内容之前,我们先看看目前有哪些主流的测试方案可以选择。
iOS的UI测试的技术方案有两个大的方向:
- 原生方向
- 跨平台的方向
方案对比:
方向 | 框架 | 编程语言 | 原生控件查找 | 图片识别 | 更新维护 | 开发体验 |
---|---|---|---|---|---|---|
原生 | XCTest | Objective-C、Swift | 最优 | 没有 | 最优 | 最优 |
跨平台 | appium | Python、JS等 | 有 | 有 | 优 | 一般 |
跨平台 | airtest | Python | 有 | 有 | 一般(iOS) | 优 |
2.1 原生
原生方向优势在于原生控件识别的速度以及准确度,以及框架更新维护的及时性。劣势在于没有直接集成图片识别的功能,而图片识别是游戏的自动化UI测试关键的一环。因此原生方向是适合App的自动化UI测试方案,并不适合直接应用于游戏。此外,原生方向还对使用人员有掌握iOS开发的要求,不便于我们iOS开发与测试人员合作开发。
2.2 跨平台
跨平台方向是实现iOS手游UI自动化测试更好的选择。此方向的具体实现有很多,表格举了两个较为典型的例子:appium
以及airtest
。
2.2.1 appium
appium
是开源社区最为流行的移动UI测试框架,支持多种编程语言编写脚本。项目维护更新频繁,bug修复及时。功能方面,原生控件识别、图片识别样样齐全。使用过程遇到的问题在社区中能较快找到解决方法。缺点在于appium的IDE等配套(指免费方案)不完善,且没有针对手游进行专门优化,实际使用需要自己实现较多的脚手架以及轮子。<