《郑伟-容器化技术在OPPO测试环境治理中的应用.pdf》由会员分享,可在线阅读,更多相关《郑伟-容器化技术在OPPO测试环境治理中的应用.pdf(27页珍藏版)》请在三个皮匠报告上搜索。
1、容器化技术在OPPO测试环境治理中的应用主讲人:郑伟领域驱动设计启发下的AI视觉分析引擎构建主讲人:戴 昊演讲嘉宾介绍郑伟 OPPO高级后端工程师14年开发与架构经验,在OPPO从事业务架构设计、服务治理、工具和平台建设在框架开发,平台开发,应用架构设计上有丰富的实践经验。目录CONTENTS测试实施痛点1234寻找合适的测试方法方案落地细节目前成果测试实施痛点1测试实施痛点单元单元测试测试所依赖中间件复杂多样被测试应用往往依赖非常多的中间件,在测试过程中mock掉全部中间件依赖成本极高,需要对每种中间件进行内存化运行或者个性化mock。外部系统依赖多,协议繁杂外部系统依赖较多,接入协议包含h
2、ttp、dubbo、mq等,目前各个业务使用mock框架的选型、mock过程各式各样,新人接手需要研究各种不同的mock框架,学习成本高,工作量大。数据准备和清理花费时间多由于共用环境,对于测试数据的准备、清理所花费的开发时间非常多用例编写难度依赖系统的可测性不具备高可扩展的系统往往难以mock测试实施痛点所依赖服务无法真正隔离被测试应用往往依赖非常多的三方或者二方应用,这些应用都是公用的环境,同时提供给多套自动化环境甚至普通测试环境使用,多个环境产生的数据相互影响。中心化配置数据无法隔离现在很多系统都使用了配置中心,虽然一些配置中心提供了多环境能力,但是无法很好地与测试用例执行的生命周期相匹
3、配,譬如测试用例执行完后,对配置环境的销毁就难以处理。自动化测试自动化测试寻找合适的测试方法2分层测试与贯穿测试 测试粒度足够小,方便定位问题 执行速度快 mock成本高 关注主要业务路径,开发效率高 mock一次,层层可用ControllerServiceDaoUnitTestUnitTestUnitTestControllerServiceDaoUnitTest分层隔离测试,每层都mock贯穿测试,只从入口开始分层测试与贯穿测试针对不同的业务场景采用不同的测试策略 算法、框架类型产品采用分层隔离测试 业务型系统采用贯穿测试 算法、框架类型产品 业务型系统ControllerServiceD
4、aoUnitTestUnitTestUnitTestControllerServiceDaoUnitTest分层隔离测试,每层都mock贯穿测试,只从入口开始兼容不可测系统老系统、不可测、毫无老系统、不可测、毫无扩展性、摆烂扩展性、摆烂我想做单测兼容不可测系统老系统、不可测、毫无老系统、不可测、毫无扩展性、摆烂扩展性、摆烂我想做单测兼容不可测系统-对PUA行为say no方案收敛 贯穿性的测试方式 兼容不可测系统 屏蔽复杂依赖环境 数据环境隔离 尽量不需要mock 容器化解决环境依赖问题声明式解决数据构造问题方案落地细节3整体方案拉起应用进行贯穿测试Before Spring startBef
5、ore AllBefore EachAfter EachAfter AllSpring Shutdown解析配置触发启动器拉起配置的容器、初始化数据host、port注入环境变量加载springmysql解析类注解读取数据定义xmldb unit数据准备解析方法注解读取数据定义xmldb unit数据准备db unitdb unit关闭启动器创建容器初始化suit级别数据初始化case级别数据初始化全局数据清理数据清理数据销毁容器应用生命周期Docker Hostcontainer MYSQLcontainer MYSQLcontainer MYSQLcontainer MYSQLcontai
6、ner MYSQLdocker host liststartup加载配置文件和doker host1、startup配置文件2.1、选择dockerhost2.2、加载配置文件3、启动依赖中间件4、初始化数据Envs5、host&portspring application context6、拉起应用7、替换占位符8、执行测试用例test casescase init datarun casecase clear datanext case加载配置文件和doker hostall case done10、销毁所有容器落地细节1:rocketMq All in One问题域:在容器化rocket