- 下午邀请了去哪儿网的测试同学来公司分享
- 介绍了去哪儿网的测试环境3.0版本
- 1.0是固定环境(实体)
- 2.0是noah平台(测试云平台)
- 3.0是软路由平台
- 这里面的代际变更和功能点这里不多做介绍
- 我想总结和对比的是测试环境治理时的数据库部分
测试环境的数据库的不同阶段需求
- 1.业务量小的时候,一套测试环境就可以了(<10人研发:test)
- 2.继续发展,需要把测试环境和开发环境分离出来(10-30人研发:test,dev)
- 3.业务继续壮大,研发人员开始出现金个分组,需要多套测试环境(30-100人研发团队:test1,test2,dev)
- 4.业务继续壮大,研发人员开始出现金个分组,需要多套测试环境(100-500人研发团队:test1,test2,test3…,dev,preprod)
- 5.业务继续壮大,研发人员分事业部,需要云环境(500+研发团队:测试云环境)
多套测试环境的数据结构同步
- 这里要分两种情况来区别处理
- 如果是测试云环境,需要有个基准环境出来,过程中有大量的自动化运维参与
- 如果是独立部署的测试环境,需要手动同步
测试云环境
- 以生产库为最终标准
- 定义一个基准环境,基准环境的数据库结构会实时跟线上同步
- 生产环境的上线将会自动应用到基准环境
- 其他环境的数据结构会和基准环境对齐
- 在一个固定的时间点,自动或手动的强制和基准环境对齐
- 允许非基准环境下的数据库结构和基准环境不一致
- 非基准环境造的数据和变更会随着环境一起销毁
- 非基准环境可以随时销毁,重新从基准环境拉一套出来
- 基准环境的数据维护是件很重要的事
独立部署的测试环境
- 在非云状态的固定的独立部署的一套或多套测试环境
- 基准环境就是生产环境
- 数据库表结构会和生产环境对齐
- 每个固定的时间点所有测试环境都会和生产环境对比表结构和其他对象
- 发送出来异常报告
- 是否修复需要测试或研发人员自行决定是否对齐
- SQL上线时可以选择多环境上线,一段脚本在多个环境同时执行
- 参见:数据库多环境SQL上线。
造数据问题
- 测试环境的数据谁来造?
- 字典类的基础数据从线上同步(允许定时同步)
- 客户,订单类数据尽可能的由测试人员随机生成
- 部分数据允许按一定规则从线上同步回来(需要脱敏)
- 测试环境的数据也会有完整的防误删和备份策略