1、什么是web自动化测试?
Web自动化测试是指利用自动化测试工具和框架,通过编写脚本来模拟用户在Web页面上的操作,自动化执行测试用例,断言比较预结果和实际结果,包括一系列日志信息以及测试报告的自动生成
验证Web应用程序的正确性、稳定性和性能等指标。Web自动化测试是一种高效、准确、可重复的测试方法。
可以帮助开发人员和测试人员快速发现和解决Web应用程序中的缺陷和问题,同时也可以提高测试效率、降低测试成本、缩短测试周期
2、web自动化测试的流程实施
1)需求分析
在这一阶段,需要明确测试的目标和范围,例如需要测试哪些功能,需要覆盖哪些场景,需要满足哪些性能指标等。
同时也要考虑测试数据的准备,例如如何生成测试数据、如何管理测试数据等。
2)技术选型
在这一阶段,需要根据项目需求和特点,选择合适的自动化测试框架和工具。例如选择Selenium WebDriver作为自动化测试框架,使用Python语言编写测试脚本,使用Pytest作为测试运行工具等。
3)环境搭建
在这一阶段,需要搭建测试环境,包括测试服务器、测试数据库、测试数据、测试工具等。例如在本地搭建测试服务器、使用Docker容器搭建测试环境、使用Jenkins作为持续集成工具等。
4)测试脚本编写
在这一阶段,需要根据需求和用例编写测试脚本,实现自动化测试。测试脚本应该具有可重复性、可维护性、可扩展性等特点。
同时,也需要考虑如何管理测试脚本,例如如何组织测试用例、如何管理测试数据等。
5)测试执行
在这一阶段,需要执行测试脚本,收集测试结果和日志。测试执行可以手动执行,也可以使用自动化测试工具执行。
在执行测试脚本之前,需要准备好测试数据和测试环境,确保测试的准确性和可靠性。
6)结果分析
在这一阶段,需要对测试结果进行分析,发现测试缺陷和性能瓶颈。测试结果可以通过测试报告、测试日志、缺陷管理系统等方式来记录和分析。同时,也需要对测试结果进行归档和保留,以备后续使用。
7)缺陷管理
在这一阶段,需要将测试缺陷记录在缺陷管理系统中,并跟踪缺陷的解决过程。缺陷管理系统应该具有良好的可扩展性和可定制性,可以根据项目需求进行定制和扩展。
8)性能优化
在这一阶段,需要根据测试结果和性能瓶颈,进行性能优化和问题排查。性能优化可以从多个方面入手,例如优化数据库查询、优化网络传输、优化代码逻辑等。
9)测试报告
在这一阶段,需要生成测试报告,反馈测试结果和缺陷情况。测试报告应该具有良好的可读性和可扩展性,可以帮助项目组和业务部门了解测试情况和测试结果。
10)持续集成
在这一阶段,需要将自动化测试集成到持续集成系统中,实现自动化测试的持续化和自动化部署。
持续集成系统应该具有良好的可定制性和可扩展性,可以根据项目需求进行定制和扩展
3、web自动化测试流程
需求分析:需要明确测试的目标和范围 技术选型:根据需求和特点选择合适的自动化测试框架或者工具(python+selenium+pytest+log+allure)
简历中技能点web(ui)自动化技能点书写: python+selenium+pytest+parametrices+Excel(csv)+pom+log+allure+(jenkins) python+selenium+pytest+kdt+Excel+log+allure+(jenkins)
web自动化设计模式(二选一)
pom模式:
页面对象模型; 以页面为主: 一个页面或者一个流程是一个页面类; 页面类中对应类属性(元素); 页面类中对应的方法(用例执行的步骤); 所有页面共用的属性或者方法可以定义在抽象类BasePage类中; 所有子类可以继承抽象父类BasePage;
kdt模式:
关键字驱动模式 以关键字为主: 不再进行页面划分,而是进行具体操作关键字来实现封装; 可以将所有的关键字封装到关键字类中; 需要使用的关键字都可以进行定义和调用;
搭建自动化测试的环境:测试环境,测试服务器,测试数据,测试的工具
前提:用例脚本不会在框架中直接封装设计模式,而是先是进行核心页面核心功能的冒烟测试用例脚本设计
用例脚本设计需要注意代码的耦合性: 有些具体功能实现并不跟用例脚本有密切联系 需要降低代码的耦合性 用例脚本代码 辅助用例脚本代码执行的具体某个功能
一般在项目当中会有一个独立的模块专门封装功能函数/类 当前项目封装的函数: 验证码处理 获取cookie信息 使用cookie信息 是否登录 读取数据 日志类 函数以及功能还有类封装所有需要完成的功能
封装的目的 更好的维护脚本和代码 增加可读性 代码脚本的耦合性降低 方便代码的集中管理
编写测试用例脚本:引入测试框架pytest:以及开始使用pom模式封装,kdt关键字封装(脚本核心要素:可重复性,可维护性,可扩展性等等)
自动化执行测试用例:需要让脚本自动化的去执行用例,收集测试的结果和日志信息(log,allure)
分析测试结果:对测试的结果进行分析,发现测试的缺陷和性能瓶颈 缺陷管理:需要将测试缺陷记录到缺陷管理中 测试报告:主要反馈一些测试的结果和缺陷的情况 持续集成:需要将自动化测试集成到持续系统中,实现自动化测试的持续化和自动化部署
4、自动化的相关技能点
web自动化: python+selenium+pytest+parametrices+Excel+pom(kdt)+log+allure+jenkins
接口自动化: python+requests+pytest+parametrices+yaml+log+allure+jenkins
app自动化: python+appium+pytest+parametrices+csv+log+allure+jenkins
5、解析项目包和模块
项目基于一下项目包和模块但是不仅限于
commons包(公共资源) driver.py用来获取不同类型以及处理容错率的驱动创建 pom.py封装页面类 kdt.py封装关键字类 utils.py封装功能函数或者类
data文件夹 进行数据驱动测试的文件Excel,csv,json 所有文件存放的地方
log文件夹 日志信息
report文件夹 缺陷报告内容记录和显示
script包 用例脚本设计(功能流程)
tests包 封装完成的用例执行模块 pom+pytest+log+allure....
conftest.py模块 用例前后置,fixture灵活调度 核心固定测试环境
pytest.ini配置文件 基本配置信息 用例名字 用例位置 用例执行方法 用例基本插件参数
kdt包 Excel用例文