持续测试的兴起:写在MeterSphere开源项目GitHub Star数量突破1000之际

发布于 2020年08月04日

6月15日,FIT2CLOUD飞致云在GitHub上正式发布了MeterSphere项目,这是一个开源的一站式持续测试平台项目。这是FIT2CLOUD在测试领域的首次尝试,在项目发布后,我们收到了社区非常积极的响应。

尤其是在7月的最后一周,MeterSphere项目在代码托管平台GitHub上的Star数量和下载数量持续创出新高,连续多日登上GitHub趋势榜。7月31日,MeterSphere项目的GitHub Star数量突破了1000个。

MeterSphere项目GitHub Star数量增长趋势

我们也在思考,一款开源的持续测试平台为何能在短时间内从开源社区获得如此积极的反馈。我们将这些思路整理成这篇文章,与大家共同探讨。由于时间有限(原本计划在8月底成文,没想到项目发展远远超出了我们的预期),思考和行文难免仓促,如有不够深入或者不够准确的地方,希望大家多多指正和沟通。

背景:数字业务的爆发和DevOps的广泛采纳

过去几年间,企业的数字化转型成为IT领域中不同角色都在共同关注的热点。在中国市场,由于互联网应用领域的深度发展以及极其惨烈的市场竞争,企业的数字化转型现在不仅是很多企业谋发展的关键支点,同时也正在成为企业生存的根基。在这种情况下,无论是企业在营销端的高效获客、产品端的研发制造,还是运营端的业务支撑,都在迅速地向数字化演变。

数字业务的爆发,必然会导致企业对软件研发的强烈需求。更有一种声音认为,在21世纪所有企业都会成为一家软件企业。

但是,回顾软件发展的历程,毫不夸张地说,软件研发对于很多企业来说是一场高风险的投入,面临着非常多的不确定因素和较高的失败率。所以,过去的几十年,整个软件行业都在寻找降低软件生产风险和提升软件生产效率的有效方法,这种现实的需求驱动了DevOps的广泛采纳。

DevOps在整个软件生产流程中的每个环节都引入“持续”的理念,包括如“持续开发”、“持续集成”、“持续测试”、“持续部署”,以及“持续监控”等一系列具体实践。

DevOps与持续测试

所谓“持续”理念,就是把软件生产流程中的每个环节都实现“反复、高效地做”,从而让每个环节的反馈效率得以提升,让完整的迭代流程尽快走完。为了达到“持续”的效果,DevOps要求软件生产的每个阶段尽可能地提升自动化能力,并且鼓励实现不同环节之间的高效衔接与沟通。

缘由:持续测试成为DevOps领域的关注热点

作为在测试领域落地DevOps实践的载体,持续测试可以理解成为自动化测试的一种运行过程。一方面,持续测试高度依赖自动化测试的能力落地;另外一方面,持续测试还强调自动化测试能力在整个DevOps软件生产流水线的融入,实现测试左移和右移。

总结来说,持续测试在DevOps实践中的定位如下图所示:

持续测试在企业DevOps实践中的定位

目前,持续测试成为DevOps领域的关注热点。这主要是因为,相比于软件生产流程的其他阶段,测试已经在很多企业和领域成为落地DevOps方法论的事实瓶颈和关键限制。这具体体现在以下几个方面:

■ 测试阶段几乎是把人力浪费在重复过程中最多的环节。由于软件质量管理的需要,测试阶段有很多需要回归和重复验证的工作。而持续测试的理念又加重了这种重复工作在整个工作中占比。基于这个原因,“如何在这些环节释放人力,提升自动化能力”成为DevOps方法论能够完整落地的关键;

■ 测试工具平台发展的滞后是一个不争的事实。相比代码管理、持续构建、持续部署等其他环节,测试工具的发展是明显滞后的。传统软件测试平台尽管有比较好的测试管理及整合功能,但它们普遍在提供现代化软件测试的自动化工具能力方面表现不佳,对于微服务化接口测试、互联网化压力测试,以及新型技术栈适配上都还不尽如意。

正因为如此,开源社区出现了像JMeter、Postman这样的明星测试工具。但是,大家使用后会发现,这些新兴项目基本都定位在解决单点测试能力的问题上,尚未承担起持续测试落地的任务。

正是基于这些观察和思考,我们有了构建一站式持续测试平台的想法。我们希望这个平台能够帮助企业解决持续测试在企业环境落地所面临的现实问题,从而在整体上提升企业内测试团队的运营效率。

具体来说,我们希望从以下几个方面来构建这个一站式的持续测试平台:

■ 整合当前最普遍使用的自动化测试能力工具。如前所述,持续测试是自动化测试一种运行过程。自动化能力永远是持续测试的基础。相比之下,市面上常见的测试管理平台(例如TestLink、JIRA等)目前仅停留在测试流程的跟踪和管理,普遍缺少对于自动化测试能力的对接。没有这一环节支持,很难提升自动化测试在整个测试工作中的占比,也就很难达成持续测试的初衷。

■ 实现测试团队内部活动的全生命周期线上化管理。除了整合各种自动化测试能力工具外,同样需要提供完整的测试流程跟踪能力,并且实现测试设计、测试计划、测试执行和测试报告等不同阶段工作的关联和整合,从而实现测试团队内部活动的全面线上化管理,增强测试团队内人员的沟通协调效率。

■ 协作测试能力的外溢,帮助落地测试左移和测试右移。如前所述,持续测试除了强调测试团队内部的协调外,还希望能够支持跨阶段的协作。具体表现为测试左移和测试右移两个方面。

所谓测试左移是指将测试手段向DevOps流水线的左侧阶段蔓延,从而达到利用测试手段更早地获取软件需求、开发阶段设计及质量反馈。与之类似,测试右移也是通过将测试手段向业务系统运营阶段延伸来尽快地获取软件在满足业务目标能力上的反馈。

落地:MeterSphere一站式开源持续测试平台

正是基于以上的观察和思考,我们产生了构建MeterSphere一站式的开源持续测试平台的想法。在成功运营了JumpServer和KubeOperator这两个开源项目之后,我们对开源软件的模式有了更加深入的理解。而开源也正在深刻地影响着测试软件市场。

Gartner预测,到2023年,DevOps的创新将会驱动75%的企业采用开源框架和工具来落地持续测试。

MeteSphere项目遵循GPL v2开源许可协议,涵盖了测试跟踪、接口测试、性能测试、团队协作等功能,兼容JMeter等开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,加速高质量的软件交付。

MeterSphere 开源持续测试平台的特性包括:

■ 全生命周期支持:覆盖用例管理、测试计划到测试执行、测试报告分析的不同阶段,提供从手动功能测试生成接口测试、从接口测试生成性能测试的一站式功能支持。比方说,MeterSphere支持测试用例与自动化测试场景的关联,并且能够通过对自动化测试场景的测试结果跟踪来反馈相关测试用例的执行结果;

■ 自动化&扩展性:支持接口和性能的自动化测试,可以充分利用云的弹性实现超大规模的性能测试。在自动化测试方面,MeterSphere成功地降低了自动化测试工具的使用门槛,尽可能地隐藏掉相关的工具使用细节。MeterSphere可以帮助用户完整地管理性能测试的发压端环境管理工作,集成基于传统主机、Kubernetes集群或者云环境的发压端,帮助客户解决分布式压力发生调度等细节问题。此外,对于各种自动化测试工具的测试结果分析和可视化也同样大幅度降低了自动化工具采纳的门槛;

■ 持续测试:能够与持续集成工具无缝集成,支撑企业实现测试左移。持续测试强调在测试阶段能够很好地融合到DevOps流水线之中,所以和DevOps流水线其他阶段的整合也是MeterSphere的重要特质。目前,MeterSphere平台已经支持与持续构建工具Jenkins、常见需求及Bug管理工具JIRA的对接;

■ 团队协作:可支持不同规模的测试团队,从小到几个人的测试团队,到数百人的测试中心均可基于MeterSphere实现团队协作。MeterSphere支持常见用户源的对接,提供“组织-工作空间-项目”三级管理体制,支持完善的基于角色的权限管理机制等。这些机制保证平台有能力将测试能力和手段有效应用于公司内的测试左移和测试右移场景。

以上特性让MeterSphere不同于其他测试领域的工具和平台,相信这也是它能够在开源社区受到广泛欢迎的关键所在。社区内不少JMeter的客户都在积极尝试使用MeterSphere,以升级其对于性能及压力测试的管理。

相比JMeter,MeterSphere在以下五个方面实现了功能增强:

有了JMeter,为什么还需要MeterSphere?

展望:不忘MeterSphere的初心

MeterSphere v1.0版本发布至今已经有6周的时间了。在此期间,我们快速发布了v1.0和v1.1两个版本,并且穿插发布了多个缺陷修复的小版本。

我们短期将专注于已发布功能的完善与增强,即现有接口测试、性能测试和测试跟踪上的功能增强和用户体验完善。未来,我们会依据社区反馈加入UI自动化测试、Mock服务、安全测试等新功能模块,向着“打造一款真正意义上的一站式开源持续测试平台”的目标不懈努力。

MeterSphere在企业DevOps实践中的定位

伴随着企业数字业务的快速发展,整个软件行业的人员和市场规模会继续快速膨胀。在这种情况下,快速提升整个行业的运行效率会带来巨大的社会效应和市场价值。

MeterSphere解决了当前企业面临的一个通用问题——如何帮助企业内的测试团队更好地适应软件生产流程DevOps化的这个潮流。任何有意进行软件生产流程现代化转型的企业都有机会从MeterSphere这个项目中获益。

开源模式已经被软件行业实践证明是当前最为高效的软件分发途径。我们希望能够复用我们基于JumpServer堡垒机、KubeOperator容器平台等开源项目的运营经验,实现MeterSphere在测试市场的快速普及,帮助更多的中国企业提升其测试团队的运营效率。

MeterSphere项目的旅程刚刚开始。我们在这个项目上还有很多事情需要去做,无论是产品自身的迭代、开源社区的运营,以及持续测试理念的推广普及。我们将在MeterSphere项目上进行长期、持续的投入,保证其能得到快速发展。

无论如何,我们都不会忘记我们创建MeterSphere项目的初心,这就是做出一款好的工具和平台,帮助企业中不同规模的测试团队去落地持续测试的理念,最终的目标是提升测试行业的运行效率。

如果说云计算已经成为中国未来经济的新型基础设施,那么在其上的软件生产过程就将成为中国未来经济的“新厂房”。MeterSphere致力于改进这个“新厂房”的质量管理品质和效率,让从这里生产出来的每个产品和服务都能够给中国数字经济带来最好的品质,为用户传递更多的业务价值。