自动化测试方法
- 数据驱动
事先编写数据文件,测试脚本通过读取文件变量执行
适用于数据量很大的用例
-
关键字驱动
- 脚本和数据分离
- 测试描述和具体实现细节分离
- 界面元素名和测试内部对象名分离
主要关键字:被操作对象(item)、操作方法(operation)、值(value)。
即:item.operation(value)
-
领域驱动
使用领域模型建模
-
功能驱动
按照模块划分
-
指令驱动
基于数据驱动,只不过数据换成了指令
自动化测试弊端
- 无法完全替代手工测试
- 无法覆盖所有测试类型
- 成本高(开发周期长、需维护、代码能力)
- 缺乏普遍适用的框架
- 对测试人员要求较高
不适合自动化测试的场景
- 定制型项目
- 短期项目
- 业务逻辑复杂的项目
- 改动频繁、不稳定的项目
- 较少运行的测试
- 易用和美观等主观角度的测试
自动化测试适用性:
通常用来基于WEB的UI测试和接口测试,主要针对重复性质的功能测试类型,作为辅助手工测试的手段。
自动化测试思想
- 必须保证正常情况下(排除环境和代码问题),用例通过率100%,即自动化用例必须具备高容错性。
- 收益最大化:每次回归都不得不执行的用例,优先考虑自动化
- 确保环境一致性,但不要因此成为瓶颈
- 自动化广义类型:
- 单元测试unit
- 接口自动化service(后端接口)
- UI自动化(前后端稳定,测试端到端)
- shell脚本自动化(后端组件自身的基础核心功能)
- 数据准备自动化
- 编译、打包、部署自动化
- 性能测试自动化
- 资源监控报警自动化
- 其他重复性手工操作
- 使用自动化语言(java、python、shell),结合现有测试平台工具
- 关于变与不变
- 封装一切可能的可控的变化因素
- 为了稳定使尽一切手段
自动化测试实施步骤
- 准备工作-明确需求
- 框架搭建
- 代码管理
git、svn等
- 包管理
- 测试框架
- 数据库交互
- 用例管理
- 日志管理
- 配置管理
- 代码管理
- 分层解耦
通用工具类、配置类、数据库封装类、用例、测试数据
通用请求类、接口封装、测试代码集