京东持续集成的质量之道成都研究院!吴友强、杨瑾!2015年7⽉月⺫⽬目录⼀一.京东软件质量控制⽅方案!⼆二.站在‘巨⼈人’的肩上!三.测试体系的价值!四.京东的质量⽣生态!!五.如何更好的敏捷通过⼀一整套基于应⽤用的研发⼯工具,做到从最初的代码管理,到持续集成、应⽤用检查分析、上线流程相关的管理,到上线后的运维⾃自动化⼯工具,包括监控、⽇日志等等,提⾼高研发⼈人效,提升应⽤用质量。应⽤用影响性分析!持续审查!持续反馈配置管理!⾃自动编译!⾃自动部署!⾃自动化测试!BUG管理持续集成检查分析代码管理代码⾃自动⽣生成!代码开发⼯工具!代码评审!代码共享流程管理统⼀一⼯工作平台!上线流程管理!应⽤用性能监控!业务数据监控!分布式调⽤用跟踪!数据智能分析监控及服务⽇日志采集搜索!⽇日志分析⼯工具!运维SLA分析!CMDB⾃自动化运维⼯工具PMP项⺫⽬目管理平台启动、规划、执⾏行、监控、收尾京东研发⼯工具⽣生态站在‘巨⼈人’的肩上➢如果测试是⼀一朵花花期有限,如何才能绽放的更灿烂测试⼯工具⽅方法论缺陷分析测试执⾏行…测试开发?➢帮助团队在有限的时间内,产出更⾼高质量的产品测试的价值i本是同根⽣生,相煎何太急✓制定测试环节标准!版本提测约定!测试环境维护!测试包与上线包⼀一致性!…✓缺陷分析反馈!SQA团队✓代码度量代码质量✓持续质量跟踪!持续集成!测试⼯工具!…京东的质量⽣生态编译部署测试验收线上监控代码静态检测单元测试UI接⼝口测试单元测试测试通过代码静态检测单元测试测试环境查看详情⽣生产环境查看详情京东质量相关⼯工作:!•⼀一次编译产出测试包与上线包!从源头保证版本的⼀一致性!!!!!•代码质量控制!!•全⽅方位的⾃自动化测试体系保证!提测冒烟效率!!•全⾃自动上线流程杜绝⼈人⼯工犯错!!•⽣生产环境应⽤用7*24H监控!京东测试环境CI实现编译打包代码检测部署⾃自动化测试MATRIXMAVENANT…⾃自动部署系统!Shell脚本Sonar+TQ接⼝口测试!UI⾃自动化!兼容性⾃自动化!…京东测试环境CI拆解-Jenkins看板看板实现:Jenkins+Build-monitor-plugin.hpi拆解-代码度量!TotalQuality项⺫⽬目实践!三个⽉月代码度量实现:Sonar+TQplugin总体架构质量设计质量测试质量代码质量Before71.30%97.56%96.65%3.37%87.61%After72.25%98.62%96.84%5.79%87.67%京东测试环境CI拆解-接⼝口测试HTTPJMQJSFWebService多种接⼝口类型SAFREST京东⾃自动化测试⼯工具拆解-测试平台MATRIX在线编辑SuperMan(可视化编辑)MAVENANTShell!●任意形态的脚本!!!●简洁清晰的交互!!!●智能稳定的调度!!!●刚健迅猛的执⾏行⾃自动化...⽤用户层离线编辑调试运⾏行报表分析调度层任务管理机器管理并发控制排队控制执⾏行层启停任务状态更新⽇日志进展报告解析京东测试环境CI拆解-测试平台MATRIX调度MySQLserveruserMatrixPluginJenkins计算与调度中⼼心...AgentPoolLocalDebugERPERP认证DebugcasePluginSuperXPath京东⾃自动化测试⼯工具拆解-基础关键字基础关键字:!●有基础关键字87个,涉及界⾯面操作和数据库封装,满⾜足⽇日常冒烟测试操作京东⾃自动化测试⼯工具拆解-⾃自定义关键字!⾃自定义关键字!●⽤用户可以利⽤用现有的关键字创建可重⽤用的的⾃自定义关键字;!●⽀支持传递参数;!●⾃自定义关键字⾃自⾝身还可以嵌套⾃自定义关键字;!●⾃自定义关键字内声明的变量,⽣生命周期只在该⾃自定义关键字范围内;京东⾃自动化测试⼯工具拆解-变量变量!在⼤大多数地⽅方可以被⽤用来当做测试数据;!最常⻅见的是,在测试⽤用例⾥里⾯面它们被⽤用作⾃自定义关键字的形参,以及⽤用作基础关键字的参数。!!Superman本⾝身有两种类型的变量:标量和列表!并且他们都有⾃自⼰己的语法,分别是:${标量}和@{列表}!Superman变量根据⽣生命周期划分⼜又有两种类型:全局变量和局部变量京东⾃自动化测试⼯工具拆解-数据管理数据管理:!⽤用于同⼀一逻辑,多组数据的测试京东⾃自动化测试⼯工具拆解-执⾏行机执⾏行机就是具备有本地调试以及执⾏行测试任务能⼒力的⼀一台PC。!!Matrix提供了⼀一键安装的环境安装程序,安装执⾏行机环境⼗十分⽅方便!参考:!京东⾃自动化测试⼯工具拆解-本地Debug⼀一旦安装了环境安装程序,那么也就具有调试⽤用例调试⽤用例的能⼒力!!检查本地环境:!在命令⾏行窗⼝口中,输⼊入superman然后回⻋车,如果如下图所⽰示则表明安装成功。!!!!!通过命令⾏行在本地调试指定⽤用例:!只需要知道⽤用例ID(在界⾯面上可以看到)就可以在本机运⾏行该⽤用例了;!在命令⾏行窗⼝口中,调试命令为superman,后⾯面跟⽤用例ID参数;如果要指定浏览器(默认为IE),则在⽤用例ID后再加上第⼀一个参数,浏览器类型,⺫⽬目前⽀支持的浏览器类型有:ie、firefox、chrome京东⾃自动化测试⼯工具拆解-⾃自动化任务配置界⾯面京东⾃自动化测试⼯工具拆解-执⾏行结果与⽇日志详情京东⾃自动化测试⼯工具主要流程12保持登录状态(chrome)常⽤用说明如何操作:在运⾏行中输⼊入!如何验证:登录后,再次通过运⾏行打开指定路径的chrome并访问之前记住的url,即是登录状态!关键点:勾上⾃自动登录⾃自动化测试绕过验证码⼩小⽅方法京东⽣生产环境CI实现统!⼀一⾝身份认证统⼀一应⽤用管理⼯工具下载代码评审持续集成代码检查⾃自动构建部署系统开发环境测!试测试环境Matrix!测试平台⾃自动部署上!线!管!理发布⽣生产环境⽇日志监控统⼀一⽇日志平台统⼀一监控平台预发环境包!管!理统⼀一⼯工作平台统⼀一⼯工作平台代码分享云存储研发测试运维研发研发如何更好的敏捷选择习惯的⼯工具⼯工具制定可⾏行的规则规则从习惯到⽂文化坚持敏捷,是⼀一个团队的⽂文化敏捷,不是⼀一个⼈人的事我们正在做的关于未来70%靠⼈人30%靠机器20%靠⼈人80%靠机器谢谢!谢谢