# 引言 我们的`Airtest Project`诞生的初衷,源于我们对于**游戏自动化测试框架**的渴求。相比于普通的软件测试,手游测试由于手机机型繁多,对于性能测试、兼容性测试的需求很高,同时可能还有大量重复性的内容例如新手流程需要进行反复测试。自动化测试在一定程度上,可以减轻测试人员的负担、缩短bug发现周期、提高测试效率。 然而,手游的自动化测试一直是业内难题,因为游戏场景复杂、内容随机性大、界面迭代频繁,最重要的是大家使用的游戏引擎五花八门,想要做好手游自动化测试并非易事。 为了降低自动化测试的门槛,用更少的精力产出更多高效的自动化脚本,来达到提升测试效率的目的,我们推出了一整套解决方案,项目命名为`Airtest Project`。 随着我们项目的持续开发,我们发现除了在游戏测试上它有着很不错的表现外,还可以很轻松地将它扩展到更多的平台、以及更多引擎上。从一开始我们仅仅使用Android手机来测试游戏,到现在我们可以在Windows、iOS上测试游戏和各类应用,我们看到了这个项目展现出来的巨大潜力和需求,因此我们决定将项目开源出来分享给大家,希望能够有更多人来一起使用和完善这个项目。 ## 前置需求 `Airtest Project`上手很容易,但并非没有门槛,我们希望你能够: - 对**自动化测试**有一些初步了解,有一些代码基础 - **了解Python基本语法**,我们的脚本基于Python,如果完全对它不了解的话可能需要预先学习一些Python的语法知识 - 准备一个集成开发环境,可以是我们提供的[AirtestIDE](http://airtest.netease.com/changelog.html),也可以是你喜欢的任何代码编辑器,例如Sublime,Pycharm等。在我们的系列教程中,为了便于展示,通常采用的是`AirtestIDE`,它对于我们的项目有一些专属定制的功能,能够让你更快上手。 - 一个你想要拿来测试的游戏或应用 - 在阅读系列教程前,**强烈推荐**先阅读官网的[5分钟快速上手教程](http://airtest.netease.com/tutorial/Tutorial.html),对`Airtest Project`的使用流程有大致了解 ## 名词解释 我们的`Airtest Project`的核心成员,是`Airtest`和`Poco`两大框架,它们都是`Python`的第三方库,因此使用我们的工具编写出来的脚本,**本质上都是普通的Python脚本**,你可以根据你的需求自由引入其他的`Python`库。 其中: - [Airtest](https://github.com/AirtestProject/Airtest)是一个跨平台的、**基于图像识别**的UI自动化测试框架,适用于游戏和App,支持平台有Windows、Android和iOS。 - [Poco](https://github.com/AirtestProject/Poco)是一款基于**UI控件识别**的自动化测试框架,目前支持Unity3D/cocos2dx-*/Android原生app/iOS原生app/微信小程序,也可以在其他引擎中自行接入poco-sdk来使用。 - [AirtestIDE](http://airtest.netease.com/) 是一个我们配套推出的跨平台的UI自动化测试**编辑器**,内置了`Airtest`和`Poco`的相关插件功能,能够使用它快速简单地编写脚本。 具体的使用方式,请参考教程和文档。 ## 教程索引 为了方便大家快速上手,我们根据几种最常见的使用场景,提供了以下几篇简易教程: - [5分钟快速上手教程](http://airtest.netease.com/tutorial/Tutorial.html),请优先阅读 - [如何编写你的第一个游戏测试脚本](1_how_to_write_the_first_script_for_your_game.html) - [在Android手机上进行测试](2_test_with_Android_device.html) - [使用iOS进行测试](3_get_started_with_iOS_test.html) - [Windows应用测试入门](4_get_started_with_Windows_test.html) - [AirtestIDE之web自动化教程](5_get_started_with_web_test.html) 请尽量在编写你的脚本前仔细阅读教程内容,同时,在我们的[如何编写你的第一个游戏测试脚本](1_how_to_write_the_first_script_for_your_game.html) 这篇教程中,我们还对`Airtest`和`Poco`两个框架都做了入门的基础介绍,事先阅读它也许能够让你少走一些弯路。 如果你的脚本中同时涉及到了游戏测试和`Android`手机相关的操作(例如`ADB`指令调用),可以同时参考[如何编写你的第一个游戏测试脚本](1_how_to_write_the_first_script_for_your_game.html)和[在Android手机上进行测试](2_test_with_Android_device.html)两篇教程,以此类推。 ## 源码、BUG与建议 若遇到BUG,或是有相关建议,欢迎到Github上的[AirtestProject](https://github.com/AirtestProject)页面,找对应的项目提issue。 如果不知道可以提到哪个项目下,可以直接[在这里提issue](https://github.com/AirtestProject/AirtestIDE/issues),我们会有专人统一处理。