玩法平台-评测任务-云效-任务组的测评




笔记来源于:任务
玩法平台-评测任务-云效-任务组
云效DevOps测试实践 - 如何集成MeterSphere实现自动化测试
1.
持续测试 - DevOps最后一公里
说起 DevOps,大部分人的第一反应或者说闯入脑海的就是CI/CD(Continuous Integration/Continuous Delivery,即持续集成和持续交付)。但是,要想构建能够支撑起数字化转型要求的软件研发能力,与之适配的软件测试能力必不可少。正如由“软件质量报道”公众号和MeterSphere项目组共同撰写的《持续测试白皮书》第一章中所说,“持续交付了催生持续测试,持续测试应该嵌入到持续交付中,作为流水线中的一环,让开发过程可随时且具有连续性的自动化测试流程”。从经典的持续交付莫比乌斯环中也可以理解出“持续测试应该作为一项测基础和持续的测试活动、贯穿于整个软件交付周期之中。”企业开展持续测试能够帮助企业尽快获得软件发布后业务风险的反馈。

we_ui_refresh
由中国信息通信研究院牵头撰写的全球首个 DevOps 标准,即《研发运营一体化(DevOps)能力成熟度模型》中第3部分--持续交付章节中也阐明了,测试管理作为持续交付7大能力域之一。

we_ui_refresh
参照《研发运营一体化(DevOps)能力成熟度模型》要求,软件行业先后引入了SCRUM敏捷研发模型、持续构建、持续部署、持续监控等一系列最佳实践。而不同于CI/CD工具集,比如GitLab或者GitHub成为代码库标准,Jenkins成为持续集成工具主流,而测试本身,在DevOps流程体系中并没有一个平台或者工具完成所有的测试类型,用户会采用不同的工具完成不同的测试类型。乃至同一种测试都采用了不同的工具,比如接口测试有采用PostMan、Jmeter、Pytest等。而不同的测试工具无法都很的嵌入到DevOps流程体系中,从而导致了测试速度,测试反馈等滞后问题。从而导致当下,相比于其他环节,测试领域无论从工具的集成、最佳实践等都已经成为企业落地敏捷及DevOps实施的最大瓶颈。
2.
阿里云效DevOps平台
阿里云效是云原生时代一站式BizDevOps平台。支持公共云、专有云和混合云多种部署形态。云效 DevOps 的 6 大优势:
●
DevOps工具链一步配齐,开箱即用
●
一套账号、数据体系,打通所有系统
●
简单易用,优秀实践经验模板化沉淀
●
深度集成阿里云产品,云上DevOps工具首选
●
多重企业级安全防控能力,安全可信
●
云效公共云产品,基础版,不限人数,免费使用(本次实践demo采用阿里云云效公有云版本)
云效 DevOps 提供项目协作、代码管理、持续交付流水线、云原生应用交付、在线IDE、制品仓库、测试管理、知识库 、效能洞察9大产品。

we_ui_refresh
3.
MeterSphere持续测试平台
MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、性能测试、 团队协作等功能,全面兼容 JMeter、Postman、Swagger 等开源、主流标准。具有四大功能模块:
●
测试管理 :远超 TestLink 的使用体验,覆盖从编写用例到生成测试报告的完整流程;
●
接口测试 :媲美 Postman 体验 ,接口管理、Mock、多协议支持、场景自动化,你想要的全都有。
●
性能测试 :兼容 JMeter,支持 Kubernetes 和云环境,轻松支持高并发、分布式的性能测试。
●
团队协作 :用户管理、租户管理、权限管理、资源管理,无论团队规模如何,总有适合的落地方式。

we_ui_refresh
4. 为什么需要云效与MeterSphere集成
基于云效DevOps平台介绍,云效DevOps平台集成需求管理、代码管理、流水线、制品仓库、应用交付管理、测试管理等。但是在实际的使用中,在测试功能域中云效只包含了面向开发人员的单元测试和测试用例管理(可以给用例标记不同的测试类型,比如接口自动化,但是无实际作用),如下图所示,这点对应一些应用交付测试是远远不够的。

we_ui_refresh
(测试计划中的测试用例)

we_ui_refresh
所以为了更好的在DevOps环节中引入自动化测试,需要引入测试平台,能够将测试作为一项服务提供,而不仅仅是测试工具的使用。对企业而言无论产出比和对整体测试人员使用的友好度(并不是所有测试人员都可以基于python写接口自动化)上,MeterSphere在业内有着不错的口碑。所以MeterSphere和云效进行有效的集成,可以打通云效DevOps中测试最后的一个环节,实现1+1>2的效果。
5. 云效与MeterSphere如何集成
本次实操Demo重点依赖云效的流水线,实操环境采用了GitHub代码库,阿里云云效流水线,阿里云个人镜像仓库,本地Jenkins环境,一台本地虚拟机(用于自动化部署),MeterSphere平台,MeterSphere平台的Jenkins插件。本次模拟场景如下:
5.1 MeterSphere部署
MeterSphere官网提供了一键部署脚本:curl -sSL https://GitHub.com/metersphere/metersphere/releases/latest/download/quick_start.sh | sh
5.2 MeterSphere Jenkins插件部署
1)
2)
在 Jenkins 的插件管理页面,上传并安装下载好的 hpi 插件包
3)
插件安装后,在指定的 Jenkins 构建任务中,添加「MeterSphere」类型的构建步骤

we_ui_refresh
4)
根据图示配置,填写认证信息并选择需要触发执行的测试计划(本文测试计划名称为MeterSphere-demo-testplan)
5.3 云效DevOps平台具体配置步骤
1)
开通阿里云云效产品使用

we_ui_refresh
2)
新建与配置流水
●
新建流水线

we_ui_refresh
●
选择空白模板的流水线

we_ui_refresh
●
添加代码源:流水线中添加流水线GitHub代码仓库源(提示需要GitHub授权),选择GitHub的命名空间、仓库和分支

we_ui_refresh
●
添加构建:选镜像构建并推送至阿里云镜像仓库个人版,选择镜像仓库(需要提前在阿里云区域中开通镜像仓库),填写dockerfile路径(在GitHub代码库中需要包含dockerfile文件,详见GitHub样例),配置企业微信通知(需要提前创建企业微信助手的webhook)

we_ui_refresh
●
docker部署:选择主机组(需要准备本地可以连接互联网一台主机,安装agent),编写部署脚本

we_ui_refresh
●
触发MeterSphere自动化测试:填写安装了MeterSphereJenkins插件的Jenkins Master信息,填写Job名称(本次实践名称为MeterSphere-demo-testplan)

we_ui_refresh
5.4 GitHub配置
●
GitHub示例项目

we_ui_refresh
●
查看云效流水线中的webhook

we_ui_refresh
●
GitHub代码库中配置webhook,Let me select individual events 选项中勾选Pull requests

we_ui_refresh

we_ui_refresh
6. 最终集成效果展示
编辑GitHub中index.heml中文件信息,然后commit changes提交。

we_ui_refresh
自动触发云效流水线,云效流水线中已经显示正在运行。

we_ui_refresh
点击流水线名称可以查看详细运行信息。

we_ui_refresh
可以查看每个步骤执行情况。

we_ui_refresh

we_ui_refresh

we_ui_refresh

we_ui_refresh

we_ui_refresh
打开自动化部署系统页面,信息已经更新为代码修改的内容。

we_ui_refresh
点击企业微信的MeterSphere报告详情连接或者登陆MeterSphere平台,可以查看具体的报告内容。

we_ui_refresh
7. 最后
结合云效和MeterSphere,企业可以快速补充 DevOps 流水线的最后一公里。当然此文章只是一个demo环境操作演示,并非正式的生产环境,供大家参考与思路参照。不同的企业可以结合自己的交付要求,将MeterSphere串入到交付流水线中。
上一篇
我的云效实践:2分钟自动化部署2048小游戏到ECS
初识云效
什么是「流水线」?
「流水线」,又名「Flow」,是一款企业级、自动化的研发交付流水线, 提供灵活易用的持续集成、持续验证、 持续发布功能,帮助企业高质量、高效率的交付业务。相比较自建的持续交付工具,使用 Flow 仅仅需要几步,就可以快速搭建 CICD 流程。
本篇文章我将通过云效+ECS自动化部署一个2048小游戏,来体验云效的基础功能。
2分钟自动化部署2048小游戏到ECS
体验地址:https://developer.aliyun.com/adc/scenario/exp/a0059b18672a491a9239a540c537e003
1.前往云效代码管理Codeup:https://codeup.aliyun.com?channel=yy_yc_331
点击“添加库”- “导入代码库”
2.选择“URL导入”,并填写如下地址:https://code.aliyun.com/flow-example/spring-boot-2048.git
3.导入成功
4.进入“云效流水线”,点击“新建流水线”,选择第一个2048小游戏的部署模板,点击“创建”
5.选择“Codeup”,按如图所示选择代码仓库和默认分支
单击添加。
6.点击“主机部署”,制品按如图所示选择,点击“新建主机组”
7.选择“免费体验主机”
8.按照指引创建免费体验主机,并填入相关信息
9.保存并运行
10.输入体验主机公网IP,单击运行
11.实验完成,手机扫描二维码,即可看到2048小游戏
总结:云效比较适合中小型企业和个人开发者,无法搭建自己的平台,借助云效就可以完成一站式开发,降低成本,还是很值得一用的。
下一篇
#云效对比开源Jenkins构建Devops体系的优势
##持续集成(CI)-Continuous Integration
CI(Continuous integration,中文意思是持续集成)是一种软件开发时间。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,部署,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
##持续交付(CD)-Continuous Delivery
是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。
持续交付(Continuous Delivery)是一系列的开发实践方法,用来确保让代码能够快速、安全的部署到产品环境中,它通过将每一次改动都提交到一个模拟产品环境中,使用严格的自动化测试,确保业务应用和服务能符合预期。因为使用完全的自动化过程来把每个变更自动的提交到测试环境中,所以当业务开发完成时,你有信心只需要按一次按钮就能将应用安全的部署到产品环境中。
##持续部署CD( Continuousdeployment )
CD( Continuousdeployment )持续部署则是在持续交付的基础上,把部署到生产环境的过程自动化。
##Devops
在传统的团队组织方式中,开发人员与运维人员之间是割裂开的,软件开发流程被分割为多个独立环节,分别由不同的人员执行。这使得软件开发过程中需要付出高昂的沟通成本,层层手动的流程将大量的时间耗费在了重复的劳动中。在 DevOps 的指导下,不同技能的人员处在同个团队中,为了一个共同的软件开发目标而工作。透过自动化“软件交付”和“架构变更”的流程, 来使得软件构建、测试、发布能够更加地高效、快速和可...
评论