简介:作者简介王鑫 中国移动支撑系统运维专家江苏移动 IT 维护室经理田国良江苏移动运维工程师在敏捷开发与敏捷运维一体化的时代,如何提高双方的协同能力?基于Devops思路,江苏移动通过探索与自研自动化测试与探测框架 ...


作者简介王鑫 中国移动支撑系统运维专家江苏移动 IT 维护室经理田国良江苏移动运维工程师 在敏捷开发与敏捷运维一体化的时代,如何提高双方的协同能力?基于Devops思路,江苏移动通过探索与自研自动化测试与探测框架,打通开发、测试和生产运维的边界,全流程闭环管理,构建了监测一体化平台,最大限度实现开发、测试与生产运维数据的共享与复用。采用业务、数据、目标分离的思路,基于业务逻辑相同,输入数据不同,实现开发、测试、生产运维阶段应用的全生命监测管理。在开发测试阶段,提升交付能力;在生产运维阶段可全面复用测试资产,实现7*24小时关键业务的持续监控。核心组件技术选型Web自动化测试工具选型对主流开源web自动化测试工具从成本、易用性、扩展性维度,运用价值工程法进行对比选型,且参考互联网公司的使用案例。 确定评估较优且适合自身需求的Selenium开源web自动化测试工具,其录制功能快捷方便、二次开发扩展性强、支持跨浏览器,并集成JUnit、Feed4JUnit、Java注解特性等工具。自研改造支持DDT和KDT测试,实现了测试数据和脚本的分离,解决了协同问题的同时最大限度的复用测试资产。接口监测工具选型从接口业务的全覆盖、安全性、扩展性要求,以及支持业务的强关联性考虑,现有的商业和开源接口工具无法满足全部要求,确定通过自研改造接口自动化监试工具,提供统一的用例编写和执行方式,使用动态标签根据业务系统架构组织关系进行模块划分(渐进式)展示,支持私有协议的封装、注入配置方式,多步骤编排,正则表达式关联,实现接口的数据交换及监测。其次,监测一体化平台采用集成已有的压力测试工具Jmeter实现统一调度。实现了开发、测试、生产环境的监控数据汇聚,集中性能诊断和根源问题定位。解决方案介绍随着敏捷开发模式大规模应用、微服务改造进程的推进以及自身业务快速迭代的发展。在这种趋势下如何确保业务系统高质量持续交付成为主要焦点。按照职能我们将PAAS层环境主要分开发域、测试域、生产域,并结合DevOps理念,自研基于关键字驱动(KDT)自动化测试框架,整合三域的测试资产、监控数据,构建监测一体化平台。通过开发、测试和运维流程的闭环管理,最大限度实现三域资源的共享和复用,达到敏捷模式下的应用上线“低成本、高质量、快速交付”。 图1-监测一体化平台功能架构图- 开发测试阶段,采用自动化测试工具做全面的回归测试。开发和测试人员可快速开发测试关键字,然后让业务分析师和领域专家使用关键字定义复杂的业务流程,从而实现更有效的测试协作。同时测试阶段可以根据生产运维阶段的主动监控和被动监控的性能指标数据形成测试方案,使设计的测试案例更贴近生产环境,借助监控工具可以在测试阶段实现根源问题定位,提升bug定位和修复效率。
- 生产运维阶段,生产环境可以复用开发、测试阶段的测试脚本并对生产业务系统进行持续监控,对生产运维是一个很好的补充。通过测试脚本在生产环境发现的业务问题也可以在测试环境上进行复现。在生产运维阶段将监控数据进行预处理,可以为测试阶段提供数据依据,使开发测试阶段的测试更有效,尽早的发现潜在问题。
- 开发测试与生产运维流程闭环管理,通过一体化监测平台实现资源和数据的互通互享。生产运维阶段的故障案例在用例库中自动创建测试用例,不断的完善用测试阶段的用例库。生产阶段的性能指标数据能够为测试阶段的性能测试提供参考,自动创建压力测试模型;生产环境的故障也可跨域在测试环境模拟重现并进行根源定位;测试阶段的测试资产也可直接在生产上使用,完善监控体系,从而实现开发、测试、运维全流程闭环管理。
 图2 –闭环管理流程生产实践流程架构监测一体化平台在架构设计上采用分布式、去中心化和模块化设计,主要包括三个部分:Agent、Collector、Console,分别完成请求模拟/数据采集,模型定义/执行调度/数据转换/流程编排/用例变更,数据展现和系统管理等功能。 图3-流程架构图自动化监测结合CRM系统业务场景按照web业务(个人家庭、集团、物联网等)、接口业务(网厅、掌厅、短厅等)进行分类。重点实现Web业务、接口业务自动化监测,很大程度上可提升开发、测试、运维阶段的自动化能力。自研关键字驱动自动化测试架构,将测试用例分成测试步骤、测试对象、执行动作和测试数据,以Excel表格进行维护,并建立统一的测试用例集,提高可重用性。基于分布式Agent通过仿终端的方式模拟前端真实用户实际业务操作,实现跨网段的监测,提高测试用例的准确性。同时将测试环境的测试结果和生产环境的监控结果上报服务器,并通过Dashboard统一展现。 图4-web自动化监测建立统一的接口测试集,采用将环境独立封装,在各个测试用例中灵活调用,增强脚本的可维护性,基于环境变量可快速的在测试环境和生产环境中切换。并通生产中心、地市维度等标签,将测试执行和测试结果加以区分。如下显示接口集的归类和接口业务监测总览图可视化展示13地市集群维度的TOP 500查询接口业务的健康状态。 图5-接口测试集 图6-接口业务监测监测一体化平台打通了测试与运维监控的边界,解决了业务快速迭代所带来的挑战,同时保证业务功能持续得到回归和验证。通过自动化的工具与流程管理,有效连接了开发、测试、运维环节,推进产品质量的持续改进。 点击阅读原文,了解 GOPS 2019 · 深圳站更多精彩 本文仅代表作者个人观点,不代表巅云官方发声,对观点有疑义请先联系作者本人进行修改,若内容非法请联系平台管理员,邮箱2522407257@qq.com。更多相关资讯,请到巅云www.yx10011.com学习互联网营销技术请到巅云建站www.yx10011.com。 |