1. 为什么要做web自动化
解放手工
1. 点点点
2. 自动化一个晚上就回归完了
3. 重复、繁琐、人工,而且会有遗漏
4. 回归旧功能,避免新功能的修改引起的历史bug
什么类型的项目适合自动化?
- 需求稳定,不会频繁变更
- 研发和测试周期长,需要频繁执行回归测试
- 需要在多种平台上重复运行相同测试的场景
- 被测软件的开发较为规范,能够保证系统的可测试性
项目中如何开展web自动化?
功能测试流程
- 分析需求/了解系统业务
- 测试计划(根据需求-估算时间)
- 编写测试用例
- 用例评审
- 执行用例-bug回归
- 测试结果反馈-生成测试报告
开展自动化的流程
分析需求,了解业务
- 确定做哪种类型的自动化,哪些模块功能纳入自动化,是否需要其他团队配合
- 业务的复杂度
- 项目状态/功能/核心业务/迭代周期
- web自动化、分析页面源码、定位难度
- 当前项目测试遇到的问题
选择实现自动化的方式
- 工具
- 代码框架
- 确定做自动化的团队
搭建框架/安装工具
编写自动化测试用例
- 用例筛选:哪些功能用例要转换为自动化
- 估算时间(根据业务复杂度)
- 元素定位/页面封装/测试数据
- 编写用例
- 编写优先级:核心用例/主流程-回归
用例评审
- 稳定性
- 调试
- 用例通过率
- 脚本bug
执行自动化用例
- 执行策略
- 自动化执行环境
- 集成测试环境
- 预发布环境
- 生成环境
测试报告
- 分析测试报告
- 记录发现的bug
- 分析自动化前后的回归的效率/节约时间
- 对比自动化前后历史功能的bug量
维护阶段
- 增加用例
- 优化脚本框架
- 提高稳定性
- 优化执行效率
- 修改用例,修改代码
项目实战需要注意的地方
- UI非常依赖页面,要确定每一个元素定位的稳定性,如果执行5遍没有问题就差不多
- 问题多种多样,代码越来越多,定位问题越来越复杂
- print(),断点调试去调试代码
- 要清楚出现的是什么样的问题,元素找不到,元素不能被点击等等
如何编写web自动化用例
-
输入(边界值)
-
前置条件
-
步骤逻辑
-
结果判断
2. web 自动化基础
js操作页面
获取页面标签
获取标签的方式
通常,通过JS操作HTML元素,可以使用内置对象document的方法来找到该标签。
- 通过id找到HTML元素(常用&#