首先我想说明的是,APP自动化测试可能很多公司都不用,但大部分自动化测试工程师、高级测试工程师岗位的招聘信息也有要求,所以为了更好的待遇,我们还是需要花时间掌握,毕竟谁都要跟上钱
接下来,让我们总结一下APP UI自动化测试的思路。
开发语言选择
自动化测试常用的编程语言有Python、Java、Javascript、Ruby、C#、PHP等。 一般来说,我们会选择自己熟悉的编程语言编写自动化脚本,但对于编程基础基本为0的童鞋(或专注于自动化测试的童鞋),建议学习使用Python。相对于其他语言,Python进行自动化测试有以下优点。
对于初学者来说,Python的语法简洁、可读性强、有强大的第三方库、编写脚本效率高的Python的py测试自动化测试框架是目前最流行的测试框架之一
UI测试框架选择
目前主流或大量使用的APP UI自动化测试框架有Appium、Airtest等。苹果公司
开源app ium服务器支持在Windows、macOS和Linux上运行。 支持安卓、ios、H5的自动化测试,如Python、Java、Javascript、Ruby等(
提供功能强大的IDE,便于网络开发,只支持python语言,集成了Airtest和Poco两个测试框架,为初学者亲切集成了基于图像识别的UI自动化测试框架Airtest, 不懂代码也可以编写自动化脚本跨平台,Windows、Android、IOs APP应用的自动化测试是对游戏测试友好的Airtest和Poco的本质
根据实际情况选择合适的框架。
在以下情况下,可以优先选择internet的Airtest :
无编程基本游戏测试方案是单一(Appium相对较重)支付宝(Alipay )小程序的自动化)博主现在使用与Airtest集成的Poco框架进行支付宝(Alipay )小程序
如果测试方案复杂,需要多个手机批量测试,则测试脚本语言不是python (Airtest目前仅支持Python )
单元测试框架选择
与上述UI测试框架不同,是单体测试根据开发语言的不同,Java有JUnit、TestNG、Robot等,Python有unittest、pytest等各自对应的单元测试框架。 由于博主主要使用Python进行自动化测试,因此这里只说明Python单元测试框架。
python主流的单元测试框架:
基于unittest、Python附带的单元测试框架pytest、unittest开发,基于易用性、信息更详细、插件更多的机器人框架、Python的关键字驱动测试框架
测试环境搭建
测试计算机的选择如果有条件,建议使用Mac机专门进行UI自动化测试。 因为ios app ui自动化只能在Mac机上进行。
测试手机的选择
刚开始测试脚本调试的时候可以选择模拟器,安卓模拟器可以选择Gernymotion,夜神模拟器。 具体请参考使用博客安卓模拟器。
整个测试项目开发完毕后,为了接近实际的用户使用场景,建议您更改计算机,使脚本自动进行。
开发语言环境
建议安装python 3或更高版本。 官方已经停止了对python2版本的更新维护。
UI自动化测试框架环境构建
要在windows环境中构建Appium,请参考其他博客。 在Mac环境中构建Appium有点复杂,稍后写博客分享。
选择Airtest框架时,请访问官方网站。
脚本编写
创建测试演示为了验证整个测试环境是否成功构建,以及是否可以运行公共示例,通常需要编写并运行简单的测试脚本,如果通过,则表明整个环境都成功构建。
确定目录结构
建议使用Page Object设计模式开发APP UI自动化测试项目。 请参阅博客Page Object设计模式。
选择测试报告
不同的开发语言、不同的单元测试框架可以选择不同的测试报告。 在python上,unittest框架可以使用html测试运行器或bs测试运行器生成测试报告,然后浏览博客unittest单元测试框架。 Pytest框架使用pytest-html生成报告,或者使用allure自定义测试报告。
完成以上步骤后,只要继续向测试项目添加测试用例即可。
Jenkins集成
按照上述步骤创建整个app UI自动化测试项目,运行一段时间后,可以考虑整合Jenkins。 博客Jenkins集成appium自动化测试(请参见Windows篇(或如何在远程Jenkins中添加Mac节点)。
总结
总结APP UI自动化可以使用以下实现方法。pythonappiumunittesthtmltestrunnerpythonappiumpytestpytest-html/allurepythonairtest (Airtestide ) pythonpocopytestpytest