目标
设计、开发一套合适的自动化框架,一方面提升测试效率,节约人力成本,另一方面便于自动化迭代,进而缩短项目的整体迭代周期,加快进度
需求
- 测试数据的分离
- 测试用例集的选择(BVT/全量)
- 与CI的结合
- 快速成型,后期扩展
基本思路
采用RobotFramework框架框架简介
三大组件:测试组件、资源文件、测试库,各自分离,相互配合核心概念
关键字驱动
分为:高阶关键字、低阶关键字和技术关键字,可嵌套组合用例和文件
用例以文本形式存储,支持html、xml、tsv、纯文本等格式
一个文件就是一个TestSuit,可包含多个用例
TestSuit可嵌套用例文件结构
一个用例文件包含四部分内容:
- Settings:引用的类库、资源文件、变量文件等
- Variables: 定义测试用例中要使用的变量
- Test cases:使用测试关键字来完成测试用例
- Keywords:把现有关键字进行组合,生成更高一级的新关键字
实例
优点
- 成熟稳定,能够满足需求,见效快
- 丰富的类库,Selenium、requests、appium、database等,便于扩展,譬如进行GUI、移动端自动化等
- 变量文件和资源文件的使用,可以方便的实现测试数据和用例的分离
- 通过标签,可以方便的管理测试用例,进行BVT等测试
- 有Jenkins插件,可以通过Jenkins执行并展示结果
- 有RIDE工具,编写测试用例比较简单。后期可以让业务测试人员自己编写用例,一方面减轻测试开发的工作量,另一方面也有利于业务测试人员的水平提升
- 详细的log和report,
计划
- 将现有的各个模块,封装成自定义Lib,定义好常用功能:譬如登陆、查询、支付、通知等;
- LINK、通联、POS等外部要做成独立的mock server,自动化框架可以调用,其他外部系统也可以调用;
- 初期先通过简单的业务逻辑,进行底层库的开发,保证稳定性能和健壮性;
- 底层库封装好后,可以培训业务测试人员使用RIDE编写复杂用例,而测试开发更专注于框架的维护、底层Lib的封装和完善等;
问题
最好有一套独立的自动化环境(尝试下docker?业务是否适用?)
第三方类库的支持程度,比如页面控件等
- 参数边界值得处理。如何存储?