2 web UI自动化
自动化测试一般分为UI前端自动化测试和接口后端自动化测试。自动化测试是为了减少枯燥的的重复性验证工作,提升效率,那么只要有重复验证的必要,UI自动化测试就有存在的价值。
2.1 自动化测试的5W1H
Why:提升测试效率,提高软件产品质量。省去枯燥的重复性工作,用更多时间做更重要的艺术化的测试。
What:将功能测试用例通过脚本实现,让机器代替人工来完成用例的执行。也就是用脚本模拟人类对前端界面的操作。
UI自动化测试的用例来源于功能测试,通常从其中选择最核心的功能的正常流程进行覆盖。
自动化测试的覆盖率 自动化用例数/功能测试用例总数 30~40%基本就到顶了。
Who:自动化测试工程师
Where:
1、持续集成的版本,敏捷迭代过程中的daily版本,在测试环境上执行自动化测试。
2、转测版本发布,在开展系统测试(功能测试)之前,测试一轮,作为准入测试或者冒烟测试。
3、上线之后,有可能 不太建议在生产环境上定时执行自动化,以维持生产环境的稳定。更建议用一套镜像副本。
When: 在版本基本稳定,一般经过了一轮功能测试之后之后,ui界面不会发生巨大变化的情况下,开始开展自动化测试。
整个项目的测试阶段流程:单元测试- (接口自动化从这个阶段往后都可以)集成测试-系统测试-回归测试(UI自动化)-验收测试-α、β测试-灰度-线上测试
一轮迭代转测之后的测试流程: 冒烟测试(白盒测试、自动化)- 系统测试功能验证 - bugfix回归验证 -专项测试 -验收测试-α、β测试-灰度-线上测试
HOW:
1、首先考量自动化测试能够带来的收益,决定是否在项目中开展自动化测试,决定标准在于产品是否会有一个长期的迭代过程需要反复验证某些功能。
建议,任何产品,都开展接口测试。
2、选型,选择适当的语言和工具来实现自动化测试框架的搭建。
测试脚本编写问题:语言 java python 和工具 selenium、appium
测试用例管理问题:数据驱动、关键字驱动、TestNG pytest unittest等测试框架。 excel管理用例编写。和系统测试流程最好契合。
测试流程体系融入:是否需要生成报告,以及邮件发送功能
研发体系融入:是否持续集成,使用jenkins等工具来完成,结合git maven等源码和编译管理流程,和开发、运维联系到一起。
适合做自动化的项目:敏捷项目,项目需求频繁变化,但是核心功能可能一直需要稳定反复测试。