在开展自动化测试任务前,必须要了解并掌握实施自动化测试的流程。如果连自动化测试流程都无法掌握,那么也就无法顺利开展自动化测试任务。自动化测试流程和功能测试的测试流程大同小异。本节内容结合笔者自身多年自动化测试工作经验总结得出,可能并不一定就是标准的自动化测试流程,但具备一定的参考价值。
1. 需求分析
拿到一个项目以后,首先要分析系统哪些模块适合做自动化测试,而且要了解清楚这部分自动化测试实施的意义是什么,能够为我们带来什么样的好处和价值。如果上来就盲目地开展自动化测试,那么结果一定是没有意义的。结合笔者自身多年测试工作经验,一般来说,在评估一个项目是否满足做自动化测试的条件时,可以从以下但不局限于这几个方面考虑:需求不会频繁变更、界面稳定、手工测试稳定、回归测试验证使用较为频繁的功能。
2. 测试方案选择
测试方案选择可以理解为测试工具的选择。在开展自动化测试任务时,一般会考虑选择什么样的方式来实现。最常用的就是采用工具录制或编码的方式来进行,笔者更推荐后者。通过编码可以实现更多开发者自定义的功能,尤其是当测试案例比较多时,要考虑维护、测试数据管理等问题。目前比较主流的自动化测试框架有Selenium、Robot Framework、Appium、Roboium和MonkeyRunner等,在本书中分别会有Selenium、Robot Frameowork和Appium等测试框架的案例介绍。此外,测试方案的选择还要结合项目团队所使用的开发语言、项目架构和项目环境等方面考虑。
3. 测试环境准备
开展自动化测试前,测试环境的准备是必需的。测试环境一般包括工具安装环境和自动化测试环境,如果使用Selenium、Appium开展自动化测试,就必须要安装语言环境,如安装Python、Java,还要配置IDE、JDK等。不仅如此,还要考虑持续集成环境和版本管理等。
4. 测试框架设计
当编写了大量的自动化测试案例后,测试案例的维护会变得困难。对于测试案例中使用到的公共部分,如测试数据、配置文件和日志文件等都需要存放在不同的文件夹以便管理。因为在实际开发中,测试项目往往是由一个团队来完成的,不同的人会负责不同的测试模块,在后期还会涉及模块和模块间的相互调用等。
5. 测试用例执行
在自动化测试案例执行结束后,可以通过测试报告得知:本次测试执行了多少用例、通过数是多少、失败数是多少及失败原因是什么。还可以通过Jenkins定时构建自动化任务,如果涉及代码提交或更新,就会触发自动构建自动化任务,生成测试结果,最后将测试结果发送给相关负责人。