




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微服务及DEVOPS杨鹏2020年02月微服务及DEVOPSPART01微服务介绍PART02
持续集成持续构建PART03Devops介绍PART01PART02PART03”微”即是小由一系列小服务组成独立运行每个服务运行于自己的独立进程业务建模围绕着业务功能进行建模独立部署每个服务独立部署5分散式管理最低限度的集中管理微服务更小更强更快微服务简介”微”即是小由一系列小服务组成独立运行每个服务运行于自己的独单体服务架构用户模块……订单模块产品模块财务模块……公共模块优点:缺点:可用性低,宕机全死服务器要求高项目臃肿,代码量飙升,耦合性过大系统架构、业务架构简单,容易理解集中部署,运维容易单体服务架构用户模块……订单模块产品模块财务模块……公共模块微服务架构用户订单财务产品邮件……配置优点:缺点:业务架构复杂拆分粒度难以界定部署维护困难高可用硬件配置低水平扩展业务简单快速响应耦合性低支持异构业务内聚分布式微服务架构用户订单财务产品邮件……配置优点:缺点:业务架构复单体架构的访问用户模块……订单模块产品模块财务模块……公共模块单体架构的访问用户模块……订单模块产品模块财务模块……公共模微服务架构的访问订单财务产品邮件……10.0.0.6:800110.0.0.1:800210.0.0.2:800310.0.0.3:800410.0.0.4:800510.0.0.5:8006访问关系复杂用户1模块用户2用户n10.0.0.7:800210.0.0.8:8002每个服务足够内聚,足够小,代码容易理解、开发效率提高服务之间可以独立部署,微服务架构让持续部署成为可能;每个服务可以各自进行x扩展和z扩展,而且,每个服务可以根据自己的需要部署到合适的硬件服务器上;容易扩大开发团队,可以针对每个服务(service)组件开发团队;提高容错性(faultisolation),一个服务的内存泄露并不会让整个系统瘫痪;系统不会被长期限制在某个技术栈上。1、同一功能的微服务部署多个,怎么访问配置?配置管理;2、服务是否正常,怎么监控?即:服务的注册和发现;3、怎么判断服务压力,压力大时怎么进行熔断?服务容错;4、多态服务器的服务,怎么进行负载均衡;负载均衡,服务网关;微服务架构的访问订单财务产品邮件……:800Springcloud与SpringBoot的关系Springboot是Spring的一套快速配置脚手架,可以基于springboot快速开发单个微服务,SpringCloud是一个基于SpringBoot实现的云应用开发工具;Springboot专注于快速、方便集成的单个个体,SpringCloud是关注全局的服务治理框架;springboot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,SpringCloud很大的一部分是基于Springboot来实现Springcloud与SpringBoot的关系SprSpringCloud组件一SpringCloudConfig配置管理开发工具包,可以让你把配置放到远程服务器,目前支持本地存储、Git以及Subversion。SpringCloudBus事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与SpringCloudConfig联合实现热部署。
NetflixHystrix容错管理工具,旨在通过控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。SpringCloudforCloudFoundry通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台。SpringCloudNetflix针对多种Netflix组件提供的开发工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。NetflixEureka云端负载均衡,一个基于REST的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移。NetflixZuul边缘服务工具,是提供动态路由,监控,弹性,安全等的边缘服务。
NetflixArchaius配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。SpringCloud组件一SpringCloudCSpringCloud组件二经验总结246531SpringCloudDataFlow:大数据操作工具,通过命令行方式操作数据流。SpringCloudSecurity:安全工具包,为你的应用程序添加安全控制,主要是指OAuth2。SpringCloudConsul:封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。SpringCloudZookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服务注册和发现。SpringCloudStream:数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。SpringCloudCLI:基于SpringBootCLI,可以让你以命令行方式快速建立云组件。7SpringCloudSleuth:日志收集工具包,封装了Dapper,Zipkin和HTrace操作。SpringCloud组件二经验总结246531Spri服务发现NetflixEureka客服端负载均衡NetflixRibbon断路器NetflixHystrix服务网关NetflixZuul分布式配置SpringCloudConfigSpringCloud分布式开发五大神兽服务发现NetflixEureka客服端负载均衡NetflEureka服务注册123Register:服务注册当Eureka客户端向EurekaServer注册时,它提供自身的元数据,比如IP地址、端口,运行状况指示符URL,主页等。Renew:服务续约
Eureka客户会每隔30秒发送一次心跳来续约。通过续约来告知EurekaServer该Eureka客户仍然存在,没有出现问题。正常情况下,如果EurekaServer在90秒没有收到Eureka客户的续约,它会将实例从其注册表中删除。
FetchRegistries:获取注册列表信息Eureka客户端从服务器获取注册表信息,并将其缓存在本地。客户端会使用该信息查找其他服务,从而进行远程调用。该注册列表信息定期(每30秒钟)更新一次。每次返回注册列表信息可能与Eureka客户端的缓存信息不同,Eureka客户端自动处理。Cancel:服务下线Eureka客户端在程序关闭时向Eureka服务器发送取消请求。发送请求后,该客户端实例信息将从服务器的实例注册表中删除。该下线请求不会自动完成,它需要调用以下内容:
DiscoveryManager.getInstance().shutdownComponent();5Eviction服务剔除在默认的情况下,当Eureka客户端连续90秒没有向Eureka服务器发送服务续约,即心跳,Eureka服务器会将该服务实例从服务注册列表删除,即服务剔除。Eureka的高级架构图Eureka服务注册123Register:服务注册当EurRibbon负载均衡123Ribbon的工作
第一步有限选择EurekaServer,它优先选择在同一个Zone且负载较少的Server,
第二步在根据用户指定的策略,在从Server取到的服务注册列表中选择一个地址。其中Ribbon提供了多重策略,例如轮询roundrobin、随机Random、根据相应时间加权等。负载均衡策略
简单轮询负载均衡加权响应时间负载均衡区域感知轮询负载均衡随机负载均衡Ribbon中还包括以下功能:易于与服务发现组件(比如Netflix的Eureka)集成使用Archaius完成运行时配置使用JMX暴露运维指标,使用Servo发布多种可插拔的序列化选择Ribbon架构图EurekaServer服务消费者服务提供者1服务提供者2服务提供者3Ribbon注册注册注册注册可用服务列表负载均衡请求Ribbon负载均衡123Ribbon的工作
第一步有限选择Hystrix熔断器123服务雪崩效应形成的原因
服务提供者不可用重试加大流量服务调用者不可用Hystrix的设计原则包括:
资源隔离熔断器命令模式熔断器的概念熔断器即断路器,断路器(CricuitBreaker)是一种能够在远程服务不可用时自动熔断(打开开关),并在远程服务恢复时自动恢复(闭合开关)的设施,SpringCloud通过Netflix的Hystrix组件提供断路器、资源隔离与自我修复功能。
Hystrix架构图Hystrix熔断器123服务雪崩效应形成的原因服务提供者不ZUUL网关123验证与安全保障
识别面向各类资源的验证要求并拒绝那些与要求不符的请求。审查与监控在边缘位置追踪有意义数据及统计结果,从而为我们带来准确的生产状态结论。动态路由以动态方式根据需要将请求路由至不同后端集群处。ZUUL架构图4压力测试逐渐增加指向集群的负载流量,从而计算性能水平。5负载分配为每一种负载类型分配对应容量,并弃用超出限定值的请求。6静态响应处理在边缘位置直接建立部分响应,从而避免其流入内部集群。7多区域弹性跨越AWS区域进行请求路由,旨在实现ELB使用多样化并保证边缘位置与使用者尽可能接近。ZUUL网关123验证与安全保障
识别面向各类资源的验证要求SpringCloudConfig配置中心SpringCloudConfig架构图SpringCloudConfig提供基于以下3个维度的配置管理:应用这个比较好理解,每个配置都是属于某一个应用的环境每个配置都是区分环境的,如dev,test,uat,prod等版本这个可能是一般的配置中心所缺乏的,就是对同一份配置的不同版本管理SpringCloudConfig提供版本的支持,也就是说对于一个应用的不同部署实例,可以从服务端获取到不同版本的配置,这对于一些特殊场景如:灰度发布,A/B测试等提供了很好的支持SpringCloudConfig配置中心Spring
产出于spring大家族,spring在企业级开发框架中无人能敌,来头很大,可以保证后续的更新、完善。比如dubbo现在就差不多死了有springBoot这个独立干将可以省很多事,大大小小的活springboot都搞的挺不错。作为一个微服务治理的大家伙,考虑的很全面,几乎服务治理的方方面面都考虑到了,方便开发开箱即用。SpringCloud活跃度很高,教程很丰富,遇到问题很容易找到解决方案轻轻松松几行代码就完成了熔断、均衡负责、服务中心的各种平台功能SpringCloud的优势SpringCloud的优势PART01微服务介绍PART02
持续集成持续构建PART03Devops介绍PART01PART02PART031、微服务一般一个功能2-3天开发完毕,微服务的应用改动部署后,并且频繁的改动,测试的工作量很大,测试人员压力较大;2、微服务的应用很多,很多运维环境需要搭建,运维人员部署1000台/10w台机器,监控1000台/10w台机器,难度加大;3、其他问题;微服务带来的测试、集成、构建、部署问题DEVOPS我的代码是好的,要么是你们部署的姿势不对,要么就是你们的基础架构有问题基础设施肯定是好的,一定是你们代码的问题1、微服务一般一个功能2-3天开发完毕,微服务的应用改动部署微服务带来的测试、集成、构建、部署问题微服务带来的测试、集成、构建、部署问题TDD(测试驱动开发)TDD得原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD得基本思路就是通过测试来推动整个开发得进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。优点:在任意一个开发节点都可以拿出一个可以使用,含少量bug并具一定功能的产品。缺点:增加代码量。测试代码是系统代码的两倍或更多。FDD(特征驱动开发)敏捷测试的方法TDD(测试驱动开发)TDD得原理是在开发功能代码之前,先编CI/CD全过程管理CI/CD全过程管理容器Container镜像images仓库Repositories执行构建分发Docker的镜像类似虚拟机的模板,但是更轻量例如:一个镜像可以包含一个完整的Linux操作系统环境,里面仅安装了Tomcat或用户需要的其它应用程序镜像可以用来创建容器等同于从模板中创建虚拟机容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。JAVA项目如何通过Docker实现持续部署(只需简单四步),全程无需运维人员参与即:1、开发人员通过gitpush上传代码2、经Git和Jenkins配合3、自动完成程序部署4、发布存放镜像的集合。仓库会包含不同软件的不同版本的镜像,通过<仓库吗>:<标签>存储。分层存储不同软件的镜像。容器管理技术Docker三大核心概念Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的
Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。即:隔离空间。一次执行,处处运行容器镜像仓库执行构建分发Docker的镜像类似虚拟机的模板基于容器构筑具备完全一致性的开发测试环境Docker开发环境Docker功能测试环境Docker集成测试环境Docker生产环境开发构建部署发布镜像仓库代码库变更时手动或自动触发代码构建代码构建自动形成开发环境自动形成测试环境自动部署到生产环境测试集成我们项目最初的系统配置管理工作是由架构师来做的,主要需要做如下这些事: a) 部署运行项目组开发需要用到公共的服务组件、例如zookeeper注册中心、Docker Registry镜像仓库、数据库等; b) 为子项目编写在git上打分支的脚本,便于测试发版的时候打分支;c) 编写各类型应用发布部署成镜像的Dockerfile; d) 制作或者在网上找到现成的开发所需环境的Docker镜像,并且Push到项目开发使用的私有镜像库中; e) 编写Shell脚本实现将子项目打包成Docker镜像,并且Push到镜像仓库中。 f) 在Jenkins上配置自动编译或者部署任务,实现持续集成和部署基于容器构筑具备完全一致性的开发测试环境DockerDock容器管理平台整体架构容器管理平台整体架构开发运维集群流程变化开发运维集群流程变化容器编排工具的一些关键能力概括如下:集群管理:将虚拟机和物理机器的集群管理为一台大型机器。这些机器在资源能力方面可能有些差异,但大体上都是以Linux作为操作系统的机器。这些虚拟集群可以建立在云上、本地或两者的混合。部署:能处理有大量机器的应用程序和容器的自动部署。支持多个版本的应用程序容器,并且还支持跨越大量集群机器的滚动升级。这些工具还能够处理故障回滚。可伸缩性:支持应用实例的自动和手动伸缩,以性能优化为主要目标。健康:它管理集群、节点和应用程序的健康。可以从集群中移除异常的机器和应用程序实例。基础结构抽象化:开发人员不必担心机器、容量等问题。完全是容器编排工具来决定如何调度和运行应用程序。这些工具也抽象化机器的细节、能力、使用和位置。对于应用程序所有者来说,它们相当于一个容量几乎无限的大型机器。资源优化:这些工具以有效的方式在一组可用机器上分配容器工作负载,从而降低成本,通过从简单的到复杂的算法可有效地提高利用率。资源分配:基于应用程序开发人员设置的资源可用性和约束来分配服务器。资源分配将基于约束、规则、端口要求、应用依赖性、健康等等。服务可用性:确保服务在集群中正常运行。在机器故障的情况下,容器编排会自动通过在集群中的其他机器上重新启动这些服务来处理故障。敏捷性:敏捷性工具能够快速分配工作负载到可用资源,或者在资源需求发生变化时跨机器移动工作量。此外,可以根据业务临界性、业务优先级等来设置约束重新调整资源。隔离:一些工具提供了资源隔离。因此,即使应用程序不是容器化的,也可以实现资源隔离。什么容器编排工具容器编排工具的一些关键能力概括如下:什么容器编排工具容器的编排管理工具K8S2017年docker官方宣布支持K8s;现在国内大多数公司都可使用k8s进行传统IT服务转换,以实现高效管理等;harbor镜像仓库是由VMware开源的一款企业级镜像仓库,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制等诸多功能。容器的编排管理工具K8S2017年docker官方宣布支持KK8s集群搭建K8s集群K8s-存储K8s-网络镜像仓库业务部署负载均衡弹性伸缩灰度发布打包二进制包+dockerfileK8s集群搭建K8s集群K8s-存储K8s-网络镜像仓库业务LB负载均衡CD/云平台灰度发布典型流程:可部分更新服务,并选择更新的实例数如果更新成功,更新会暂停可将部分流量引导至新实例,进行测试如果测试通过,可继续更新剩余实例如果测试失败,可将服务回滚至旧版本在任何阶段如果更新发生错误,可将服务回滚到旧版本真正的灰度发布需要实现应用容器化、数据库分布化以及负载均衡的无状态切换灰度发布与容器化(基于K8s或Mesos)LB负载均衡CD/云平台灰度发布典型流程:真正的灰度发布需要DevOps与云平台的关系DevOps与云平台的关系DevOps在大Paas规划中的定位DevOps是大Paas平台规划中的核心组成部分,有了DevOps能力才使快速交付、热修复和灰度发布成为可能SaaSPaaSIaaS通用fu’wuX86服务器DockerVMPower网络\存储…网络\存储基础设施业务能力渠道中心客户中心营销中心产品中心客服中心资源中心订单中心支付中心开通中心合作伙伴计费中心结算中心账务中心信用中心账单中心策略中心IDE开发工具开发需求BUG管理版本管理发布管理开发流水线企业内部应用CRMECSESOP……对外能力提供数据共享电信接口社会服务……IPSDocker引擎多租户管理资源管理组件超市集群管理系统管理服务管理软件资产管理业务服务技术服务COMFRAMECSFDADBLog4XAmberAICache关系数据库AMBER规则引擎负载均衡负载均衡MSGFS弹性计算服务大数据服务规则中心统一事件中心日志处理框架二维码权限管理框架消息处理中心资源调度与编排应用生命周期管理技术能力服务与管理仓库技术组件统一异常处理灰度发布热修复平台调用连分析日志分析配置管理审批管理系统配置Paas平台门户运营方OP使用方OP提供方OPDevOpsCloudDevOps在大Paas规划中的定位DevOps是大PaasPART01微服务介绍PART02持续集成持续构建PART03Devops介绍PART01PART02PART03传统软件开发模式传统软件开发模式移动互联网时代的特征就是快,产品的决策快、推出快、迭代快、变革快,快能抓住机遇、掌握主动。生态变化产品应用变化渠道变化商业模式变化客户行为变化快DevOps开发运维QA阶段要求开发业务架构:多中心、能力开放技术架构:SOA、微服务、技术组件标准化/服务化QA持续集成自动化测试运维快速发布、滚动升级、灰度发布、弹性伸缩开发、测试、生成环境的标准化案例分析:支撑系统有2000多万行代码,代码构建一次需要40多分钟;由于各个应用之间错综复杂,在集中提交代码模式下构建发布失败率超过20%;一次产品发布需要2周以上的时间流程方法工具互联网业务的变化移动互联网时代的特征就是快,产品的决策快、推出快、迭代快、变需求提出需求分析功能设计代码开发测试验证发布上线运维监控1-2个月长周期交付无法及时响应需求变化需求从提出到上线反馈时间长1-2周短周期交付快速响应需求变化自动化测试保证质量瀑布式开发敏捷开发瀑布式开发和敏捷开发需求提出需求分析功能设计代码开发测试验证发布上线运维监控1-业务人员开发测试人员运维人员最终用户想法市场计划和需求开发和测试发布和部署反馈和优化持续业务计划和需求分析协作式开发持续测试持续监控持续发布和部署DevOps精益和敏捷原理持续改进、持续反馈、持续优化DevOps理念业务人员开发运维人员最终用户想法市场计划和需求开发和测试发基本原则项目不停、需求不断持续迭代、持续交付Devops的基本定义基本原则项目不停、需求不断持续迭代、持续交付Devops的基敏捷开发CI/CD自动化测试代码扫描工具成果展示建立融合型的敏捷开发团队业务POMaster团队运维提供业务需求及相关素材、负责需求澄清说明及验收确认需求转化拆分为用户故事、面向团队代表客户进行需求跟踪协助团队完成迭代任务、排除团队面临的障碍、确保团队遵守敏捷开发规则根据需求实现迭代承诺并交付、完成迭代开发中的各项工程实践任务在团队实现需求时提出运维建议并在迭代评审时进行确认迭代启动会迭代计划会每日立会迭代评审迭代回顾迭代开始前3天进行,评估分析可以进入迭代的需求范围,后续进行需求分析,时长1小时迭代开始前1天进行,根据完成分析的需求进行迭代任务拆分,估算任务工作量,时长1小时迭代中每天早上9点40分准时开始,团队成员讲述任务完成情况,时长15分钟迭代结束后进行迭代评审,演示并验证交付的需求,展示单元测试和自动化测试结果,时长1小时迭代评审后进行迭代回顾,总结迭代中的经验教训,确定下迭代的改进内容,时长30分钟敏捷团队与会议敏捷宣言的价值观(四大宣言)个体和交互 重于 过程和工具 工作的软件 重于 详尽的文档 客户合作 重于 合同谈判 响应变化 重于 遵循计划三种角色五大会议敏捷开发CI/CD自动化测试代码扫描工具成果展示建立融合型的敏捷的进度管理看板每日工作围绕用户故事展开什么是用户故事描述高级的功能代表一小部分终端用户功能是合作书写的结果是对未来的承诺,是“更为详细的”语言包含书面文字、口头叙述、图片等包含了用户故事的验收标准的边界
用户故事和看板的使用例子:叙述:作为一个…手机银行的用户我想要…查看我的账户信息所以…我可以了解我的账户活动情况验收标准:给定……我已经登录系统当……我选择在我的手机银行账户查看账户信息时然后……我能根据所选择的账户(账户名称、投资理财方案、外汇购买等)查看账户细节为什么使用看板?看板促进流动的概念,以持续为客户/最终用户提供价值通过可视化工作流程,我们可以为每个人都看到任务,活动和瓶颈正在进行中的工作(WIP)确保我们专注于提高质量,增加对任务的关注,并确保我们停止启动并开始整理主要原则:可视化工作限制正在进行的工作管理流程明确制定流程政策实施反馈回路协同改进,实验演变敏捷的进度管理看板每日工作围绕用户故事展开什么是用户故事用户Sonar效果:1)阻断级违规:405->202)严重级违规:
2307->22913)代码变更行数:
190->360+敏捷开发CI/CD自动化测试成果展示DevOps实施落地–代码扫描工具代码扫描工具Sonar效果:敏捷开发CI/CD自动化测试成果展示DevOCI/CD整体流程开发活动、测试活动、生产交付活动通过CI/CD系统串联自动化并全领域覆盖Agile-敏捷活动CI-持续集成CD-持续交付设计开发需求软件构建(代码&SQL)代码扫描单元测试Junit应用部署(测试环境)自动化测试(接口&UI)集成测试版本交付应用部署(准生产环境)验收测试应用部署(生产环境)系统运营敏捷开发CI/CD自动化测试成果展示流程节点可定制DevOps实施落地-CI/CD整体流程图代码扫描工具CI/CD整体流程开发活动、测试活动、生产交付活动通过CI/多业务环境的处理按交付领域不同的环境进行分领域多维度的统一管理开发环境测试环境准生产环境生产环境分领域集成预处理软件构建部署发布在线测试多维度敏捷开发CI/CD自动化测试成果展示代码扫描工具DevOps实施落地-CI/CD按环境管理多业务环境的处理按交付领域不同的环境进行分领域多维度的统一管开发人员直观视角开发人员提交代码时,CI根据任务单号自动捕获、自动编译、自动测试环境部署需求单提交测试分支构建版本生成部署版本生成测试环境部署交付分支构建版本生成准生产环境部署生产环境部署交付使用敏捷开发CI/CD自动化测试成果展示CI/CD任务单提交变更流程代码扫描工具开发人员直观视角开发人员提交代码时,CI根据任务单号自动捕获其他对接系统用户HA/LVS安全认证APIGateway消息中心消息总线消息路由探测微服务性能测试微服务任务调度微服务仿真微服务7*24小时业务监控UI及接口自动化测试对压力性能测试进行管理代码审查微服务对源码进行编码审查安全扫描微服务对系统进行安全扫描Web服务器集群测试过程管理数据存储测试案例管理测试任务管理缺陷管理服务注册服务发现共享缓存日志管理配置管理测试计划管理运维管理自动化测试微服务测试流程管控数据存储Iaas(测试资源管理)可持续集成敏捷开发CI/CD自动化测试成果展示DevOps实施落地–自动测试平台(ATP)代码扫描工具其他对接系统用户HA/LVS安全认证APIGateway消原理接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。目的测试接口的正确性和稳定性(持续集成是接口测试的核心)。1)LoadRunner:一款商业性能测试工具,用来做接口测试,很好很强大
2)Jmeter:一款开源的性能测试工具,操作简单,方便,既有jdbcrequest操作数据库数据,也有httprequest和soaprequest应对测试3)poster:火狐浏览器自带接口测试工具,插件中安装即可,界面简单明了,容易上手。4)postman:谷歌浏览器的扩展工具,谷歌商店中选中安装,界面同poster差别不大,界面简洁
5)SoapUI:开源测试工具,通过soap/http来检查、调用、实现WebService的功能/负载/符合性测试;该工具既可作为一个单独的接口测试工具使用,也可利用插件集成到Eclipse,maven2.X,Netbeans和intellij中使用。敏捷开发CI/CD自动化测试成果展示代码扫描工具DevOps实施落地–接口自动化测试工具介绍原理接口测试的原理是通过测试程序模拟客户端向服务器发送请求报自动化测试工具有很多,如QTP,Selenium,RFT,MonkeyTest,Jmeter等。五花八门,有开源的也有商业的,但主流的测试工具还是QTP和Selenium,由于Selenium的开源和强大的浏览器兼容性和跨平台性,正在被越来越多的人使用;Selenium测试直接在浏览器中运行,就像真实用户所做的一样。Selenium测试可以在Windows、Linux和Macintosh上的InternetExplorer、Mozilla和Firefox中运行。其他测试工具都不能覆盖如此多的平台。使用Selenium和在浏览器中运行测试还有很多其他好处。通过编写模仿用户操作的Selenium测试脚本,可以从终端用户的角度来测试应用程序。通过在不同浏览器中运行测试,更容易发现浏览器的不兼容性。Selenium的核心,也称browserbot,是用JavaScript编写的。这使得测试脚本可以在受支持的浏览器中运行。browserbot负责执行从测试脚本接收到的命令,测试脚本或者是用HTML的表布局编写的,或者是使用一种受支持的编程语言编写的。编程语言可以实现复杂的逻辑,从而实现一些较复杂的测试任务。技术预研需求分析编写方案与计划搭建测试框架脚本,用例,数据编写脚本调试DevOps实施落地–UI自动化测试工具:Selenium另外开发了快速验证channel、commission、app-web-console等多平台发布状态的冒烟测试案例,用于日常发布环境验证。UI自动化测试计划已经可以从持续集成(CI)调用同步开展CRM和BOSS侧UI自动化测试工作敏捷开发CI/CD自动化测试成果展示代码扫描工具自动化测试工具有很多,如QTP,Selenium,RFT,M代码编译频率编译时长部署时长编译问题处理测试环境部署频率SQL合并&执行自动化测试持续集成(编译、部署、接口&UI自动化)实施前1次/天20分钟30分钟人工分析&口头协调1次/天人工收集执行无各环节人工触发实施后大于5次4分钟7分钟自动定位&自动邮件>=4次/天自动收集执行应用部署后自动触发约23分钟流程自动化过程可视化反馈及时化测试常态化解放人力促进协同增强沟通保证质量问题及早发现结果持续可见过程自动提效持续集成部署综合效率提升超过300%,8月份共编译92次,部署48次敏捷开发CI/CD自动化测试成果展示DevOps实施成果展示–CI/CD过程提效代码扫描工具代码编译编译时长部署时长编译问题测试环境部署频率SQL合并&团队进行需求分解快速完成并行任务迭代交付完整需求团队合作取代单打独斗知识技能团队共享团队能力和士气快速提升通过站会、评审、讨论、任务完成奖励等方式提高团队熟悉程度和信任成员之间自动产生了提前完成任务的比较心理新技术手段的引入,带来了成员新的学习热情以团队合作取代单打独斗的工作方式,团队内形成了良好的知识分享和技能提升的氛围,大家可以积极领取任务并保质完成,在迭代结束时可以看到完成的成果,士气得到了很好的提升。敏捷开发CI/CD自动化测试成果展示代码扫描工具DevOps实施成果展示–团队能力提升团队进行需求分解快速完成并行任务迭代交付完整需求团队合作取代DevOps体系全景图整体流程BACKLOG用户需求用户故事用户故事用户需求用户故事用户故事用户需求用户故事用户故事开发任务测试任务设计任务单元测试验证测试开发任务开发任务BACKLOG障碍问题计划会议:PO主持创建Sprintbacklog评审会议:PO主持验收用户故事回顾会议:只有团队成员参与好的、待改进、如何改进看板+每日例会:可视化流程鼓励团队沟通产品backlog:条目化用户故事优先级排序按用户故事组织开发和交付SprintBacklog:经任务分解和估算的用户故事经设计的测试用例可以迭代完成的周期持续集成:自动化随需的软件构建、静态代码扫描、单元测试、部署任务领取编码&单元测试测试用例&自动化测试脚本集成测试环境准生产环境生产环境开发分支测试分支交付(生产)分支持续集成版本发布集成自动化测试UAT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科室一级护理质控的意义
- 希沃课件播放指南
- 小长假收心教育主题班会
- 新形势下医院思想文化工作研究
- 套管培训大纲
- 绿色出行倡导者司机雇佣合同范本
- 财务顾问保密协议及企业财务诊断与改善合同
- 白酒品牌授权生产及销售合作协议
- 工业园区厂房拆除及搬迁补偿合同
- 城市公交车辆特许经营权承包合同
- 胶粘剂原始记录表
- DB33-T1064-2021《铝合金建筑外窗应用技术规程》
- 发行企业债法律尽职调查之访谈问题清单模版
- QData数据库一体机方案介绍
- 化工仓储管理系统方案
- 2021-2022学年贵州省黔东南州高一下学期期末文化水平测试数学试题【含答案】
- (精心整理)初三数学几何的动点问题专题练习及答案
- 高血压脑出血外科治疗临床路径
- 核电工程施工隐患排查专项培训课件
- Q_SLB0402-2005 产品钢印及标记移植
- 劳动者个人职业健康监护档案(样板)
评论
0/150
提交评论