前言随着移动终端的普及手机App应用越来越多也越来越重要。而作为测试袁的我们也要与时俱进努力学习手机App的相关测试。自动化测试主要分为三层UI层、接口层、单元层。移动端、web端通常所说的自动化测试是指UI层测试。基本原理就是基于页面元素的识别和定位来模拟用户行为首先识别到某个元素比如一个按钮然后定义一个动作比如点击这样就通过代码模拟完成了一次按钮的点击代替了人工去点击。如果后期再加入数据驱动和Page Object思想就基本可以形成一个UI层自动化测试框架了。一、开发语言选择通常用于自动化测试的编程语言有Python、Java、Javascript、Ruby、C#、PHP等。一般我们会选择自己熟悉的编程语言来编写自动化脚本但对于编程基础基本为0的童鞋或者专注于做自动化测试的童鞋推荐学习使用Python。相对于其他语言Python做自动化测试有以下优点对于初学者来说Python语法简洁可读性强易于学习有强大的第三方库编写脚本效率更高Python中的Pytest自动化测试框架是目前最流行的测试框架之一二测试框架选择选择编开发语言之后我们需要选择UI测试框架。目前较为主流或者使用较多的APP UI自动化测试框架有Appium、Airtest等。1、Appium开源Appium server支持在Windows、macOS、Linux上运行支持多种主流编程语言如Python、Java、Javascript、Ruby等支持Android、ios、H5自动化测试集成了UiAutomator、UiAutomation框架环境搭建较为复杂2、Airtest由网易开发(官方文档)只支持python语言提供集成Airtest与Poco两个测试框架的强大的IDE对新手很友好集成基于图像识别的UI自动化测试框架airtest即使不懂代码也能编写自动化脚本跨平台可对Windows、Android和iOS应用软件进行自动化测试对游戏测试较为友好Airtest与Poco本质上是python的两个第三方库测试环境搭建没有Appium那么复杂3、选择框架根据实际情况选择合适的框架。以下情况可以优先选择网易的Airtest (Airtest官网)无编程基础游戏测试测试场景较为单一Appium相对来说较为笨重支付宝小程序自动化博主目前使用Airtest集成的Poco框架做支付宝小程序自动化测试以下情况建议选择Appium测试场景比较复杂如需要多台手机批量测试测试脚本语言非PythonAirtest目前只支持Python三、单元测试框架选择区别于上面所说的UI测试框架单元测试框架用于加载测试用例、执行测试用例、断言、输出测试结果等。不同的开发语言有各自对应的单元测试框架如Java有JUnit、TestNG、Robot等Python有unittest、pytest等。博主主要使用Python做自动化测试所以这里只针对Python单元测试框架做说明。python主流的单元测试框架unittestPython自带的单元测试框架pytest基于unittest开发易用性好信息更详细插件众多robot framework基于Python的关键字驱动测试框架有界面自带报告及log功能完善清晰美观这里强烈推荐使用pytest功能强大且容易上手官方文档为英文中文可参考Pytest 使用手册。四测试环境搭建1、测试电脑选择有条件的话建议使用Mac机器专门用于UI自动化测试因为ios app ui自动化只能在Mac机器上进行。2、测试手机选择刚开始进行测试脚本调试时可以选择模拟器Android模拟器可选择Gernymotion、夜神模拟器推荐具体参考博客Android模拟器的使用待整个测试项目开发完成后建议换成真机跑自动化脚本这样更接近真实的用户使用场景。3、开发语言环境建议安装python 3以上的版本官方已经停止对python2版本的更新维护。4、自动化测试框架环境搭建windows环境下搭建Appium请网上查一下appium环境搭建Mac下搭建Appium稍微复杂点后续会写博客分享。若选择Airtest框架的话请参考官网。五、脚本编写1、编写测试demo为了验证整个测试环境是否搭建成功、是否能跑通用例一般我们需要先编写简单的测试脚本并执行通过则说明整个环境搭建成功。2、确定目录结构推荐使用Page Object设计模式来开发APP UI自动化测试项目3、选择测试报告不同的开发语言、不同的单元测试框架可选用不同的测试报告。在python中unittest框架使用HTMLTestRunner或BSTestrunner生成测试报告可参考博客unittest单元测试框架。Pytest框架使用pytest-html生成报告或通过allure定制测试报告。以上步骤完成后继续往测试项目里新增测试用例便可。六、Jenkins集成根据上述步骤编写完成整个app UI自动化测试项目且运行一段时间稳定后就可以考虑进行Jenkins的集成。总结APP UI自动化可使用以下几种实现方式1、python appium unittest HTMLTestRunner2、python appium pytest pytest-html / allure3、python AirtestAirtestIDE4、python Poco pytest pytest-html / allure可根据实际情况自行选择。最后下方这份完整的软件测试视频教程已经整理上传完成需要的朋友们可以自行领取【保证100%免费】软件测试面试文档我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。