《4-AREX:携程新一代开源自动化回归测试工具的设计与实现-携程-王海兵.pdf》由会员分享,可在线阅读,更多相关《4-AREX:携程新一代开源自动化回归测试工具的设计与实现-携程-王海兵.pdf(34页珍藏版)》请在三个皮匠报告上搜索。
1、AREX:携程新一代自动化回归测试工具的设计与实现携程 王海兵背景:研发过程的测试效能01探索:自动化回归测试的探索实践02体系:AREX技术实现与优化03展望:AREX的实施与展望04业务复杂,验证点的量级多(业务复杂度)构造数据复杂,工作量大(数据构造)变更影响范围未知,全量回归测试(回归测试)技改与业务需求变化,测试不知道(沟通成本)测试用例的数量多,复用难(维护成本)测试数据维护量大(环境稳定性)业务逻辑和用例管理,自动化用例管理(管理成本)背景-研发测试团队的效能困境研发测试团队面临的问题背景:研发过程的测试效能01探索:自动化回归测试的探索实践02体系:AREX技术实现与优化03展
2、望:AREX的实施与展望04探索:自动化回归测试的探索与实践引入录制回放测试测试数据构造平台优化测试环境通过记录生产环境的流量,在测试环境回放,解决用例设计问题,不负责测试数据和验证.通过SQL和访问应用接口,在测试环境构造数据,解决测试中的测试数据问题.定期同步生产版本,定期同步数据和配置(脱敏等).解决环境配置一致性和数据问题.125测试探索引入覆盖率平台数据MOCK平台关注功能测试覆盖率,自动化测试覆盖率关注新增代码行覆盖率,解决测试有效性和完整度度量.提供给开发Debug或者联调使用,功能测试第三方MOCK,自动化测试MOCK数据等,解决测试数据问题.其他探索 覆盖率平台衍生出精准测试
3、,测试用例优先级分类,单元测试代码生成,前端录制回放测试等43AUTO测试平台0UI可视化,支持界面配置,可编程的用例设计平台和执行平台,支持CICD.反响很好,成本很高人力,培训,工具开发维护,推广,运维,汇报 自动化测试是奢侈品开发测试痛点尚未有效解决探索:自动化回归测试的探索与实践探索与推广中遇到的问题1.不写测试用例不维护用例2.不要构造测试数据3.测试左移合并代码后即测试4.全自动化测试,减少人工干预5.测试用例可以自动生成6.要测试工程师关注深度场景测试7.质量要保证,要提升8.质量成本不要增加9.费电的可以,费人力成本的不要探索:自动化回归测试的探索与实践新的建设目标探索:自动化
4、回归测试的探索与实践-AREX生产环境流量和数据录制测试环境流量和数据回放测试断言转换为差异比对流量录制回放数据构造维护测试环境建设优化124数据MOCK平台3变更差异确认固化核心用例12探索:自动化回归测试的探索与实践-AREXAREX=生产环境流量数据记录测试环境流量数据回放新旧版本差异比对+AREX的组成与目标场景使用场景1.频繁大量造数据2.大量业务需要回归测试3.测试人力资源欠缺4.频繁发布频繁回归测试背景:研发过程的测试效能01探索:自动化回归测试的探索实践02体系:AREX技术实现与优化03展望:AREX的实施与展望04AREX 技术实现与优化开源测试工具 https:/ 技术实
5、现与优化AREX基础流程AREX RecordingAREX ReplayingAREX 技术实现与优化AREX基础原理AREX 技术实现与优化AREX AGENT技术栈1ByteBuddy+SPIAREX 技术实现与优化实现TRACING2ContextManagercurrentContext()内部依赖的调用currentContext(Boolean,caseId)回放和入口录制的调用TraceContextManagerAREX跟踪上下文的管理对象ArexThreadLocal读写Trace IDIDGenerator生成AREX-前缀Trace IDArexThreadLocalA
6、REX的存储Context的基础类,继承InheritableThreadLocal类.一个线程本地变量类,它是ThreadLocal类的一个子类。与ThreadLocal类不同的是,InheritableThreadLocal类允许子线程继承父线程中设置的值ForkJoinPool对ForkJoinPool 的任务单元ForkJoinTask进行了修饰,采用WeakCache做数据缓冲,可以保证任务生成和执行线程之间的 Trace 传递。AREX 技术实现与优化Java Executors修饰Runnable,Callable,代码修饰各种线程池,把Runnable,Callable替换掉.