

DevOps 的目标是实现跨组织、跨流程的协作。它同样适用于测试,对于为客户提供满足其功能及性能需求的软件至关重要。鉴于激烈的竞争形势,各种交易需要在规定的时间框架里按照设计好的流程执行,客户不会容忍任何存在于功能/性能两方面的缺陷。
开发及 DevOps 团队一直在设想某种“至臻完美”的应用程序,并基于此设定明确具体的业务目标与可衡量的性能指标。企业级性能工程为 DevOps 团队提供了一个大框架,用于在整个应用的生命周期(从定义、设计到生产、后期)中持续优化性能。下面,让我们更详细地研究企业级性能工程,同时回答这一问题——如何基于左移/右移两大测试方式,实现有效的 DevOps 协作流程。
01
什么是
企业级性能工程?
企业级性能工程是确保非功能要素满足要求的全流程,它旨在通过 DevOps 团队及各部门的协作,尽可能快地提供无缺陷的应用程序。因为它从一开始就考虑到了既定的性能指标,工程师也能尽早地发现潜在问题。
在逐渐缩短的开发周期、频繁的更新和不断变化的市场需求下,用户体验扮演着一种最重要的角色。为了应对这一趋势,开发团队需要在软件生命周期(SDLC)的每一阶段贯彻“以用户为中心”的质量标准,良好的性能工程能使 QA 工程师、测试和开发人员从最初的设计之中就建立起所有必要的性能指标。
持续测试,为 DevOps 提供了指标和重点。但它仅仅是性能工程中的一个要素。企业级性能工程规定了一系列积极、持续的测试“纪律”,包含以下四大主要内容:
确保性能是每个人的首要任务(包括开发、测试人员和性能工程师)
在 SDLC 中持续监测性能
将性能工程带入 CI/CD 流程以增加覆盖率与跨度
基于性能数据在各团队间进行协作
02
谁对
性能工程负责?
性能工程,是每个人的责任,而不仅仅是性能工程师。它应该融入整个 DevOps 流程中,而不是被纳入周期的最后环节,比如,你必须将用户体验和应用程序管理的性能要求贯彻 SDLC 全过程。
其次,性能工程是由数据驱动的,这意味着它需要通过集成至 DevOps 流程中的工具来获取数据,并帮助团队获得他们需要的全部性能指标,以满足业务目标。虽然有些性能工程是自动化的,但仍需要各种具备专业知识的人员一起协同实施。
03
将性能工程纳入开发早期
测试左移
DevOps 指尽可能加速从应用开发、部署到上线的周期,并强调确保应用程序要能满足客户的功能期望。在 DevOps 的传统方法论中,非功能要素要次于功能性要素。但是,左移测试要求将对非功能要素提前加入开发周期过程中。
针对测试过程中发现的错误,据 IBM 系统科学研究所估算,其修复成本是早期修复的 15倍。这是因为左移测试发生在应用程序代码相对简单的时候,错误更明显且更容易补救。此外,由于团队成员在共同讨论与修复错误,众人拾柴火焰高,集体可以为未来的发展设计更好的解决方案,并避免(而非补救)缺陷发生,结果显而易见,就是减少测试时间、成本并提升交付质量。
通过在 CI/CD 工作流中整合左移测试,开发团队可以实现单元测试和测试脚本的自动化。与其等待截止日期,左移测试更早一步地提供了开发人员所需的关键信息,以便在其向下游交付之前就完善代码。根据经验,正在开发中的代码可能会与已提交的代码产生意想不到的化学反应。你应该在开发早期就植入测试代码模块的交互互动,比如确保在模块传递信息时遵循预期规定。
你可以在任何时候将左移测试整合至敏捷 DevOps 周期中。比如当团队正在向 CI/CD 工作流添加新功能时测试单元性能,同样的,如果你正在扩大生产环境的类型,了解前后的性能变动是很有帮助的。性能工程过程可以在生命周期的早期就纠正错误,使 DevOps 团队从错误中学习,避免未来重蹈覆辙。
04
监控客户体验
测试右移
右移测试,指当程序或软件在实际生产环境中部署后持续执行测试,以检测已发布的软件在开发中错过的缺陷。此外,从生产中获取的数据有助于获取更真实的测试数据,减少风险和假设。
当企业将软件部署到各种环境——从多云到移动端,每一个环境都可能引入复杂的操作、安全风险和第三方应用程序等。由于技术的进步、安全补丁的增加和其他因素,它们无时不处于变化之中。而且在云端企业不能像在内部架构中那样对生产环境有完全控制力,这极有可能会影响性能质量。
右移测试的目的是持之以恒地确保软件的性能。它展示了软件在真实世界中的实际表现,并确保了应用的未来成果。在投入了大量资源进行更新后,你的客户不希望因为生产环境的变化而失控。对于 DevOps 而言,右移测试也有助于发现在开发早期没有预料到的问题。
05
合作实施
敏捷 & DevOps
在软件的世界中,从开发、部署到用户使用,环境一直在变化。这些变化可能来自额外的客制化功能,或者安全补丁、主机环境更新等。实施一个由持续测试及分析支持的性能工程项目,是赢在变化之前,并将风险对客户的影响降到最低的首要任务。左移/右移测试提供了企业级性能工程所需的全部数据。性能工程就是要分析所有这些数据,并基于数据在整个 DevOps 流程中助力工作协同,不断地促进软件性能的更新换代。
性能工程是每个人都关心的问题,同样的,我们也希望将它对内部其他职能的影响也降到最低,帮助整个 DevOps 团队尽可能地提高生产力——自动化、重用和集成是其中的三大支柱。
比如,在测试中耗时的一个要素是开发测试脚本。脚本是用来模拟用户与应用进行互动的,团队往往希望能尽量缩减它的开发时间,并将其塑造为可以重用的 IT 资产。在线编辑器是你所需要的,它能导航各种业务流程,帮助你加快测试开发——一旦捕捉到了操作的基本信息,团队成员就可以自由编辑以快速创建代表用户行为的各种脚本。你还可以大量地重用这些脚本,以模拟多种环境下的不同性能,并对性能数据进行收集和分析。不要忘了,这一高效率的脚本开发功能需要在集成开发环境(IDE)中可用,并可基于统一的测试平台开放共享。
同时,在开发环境中需要用到不同的工具,统一的性能工具集将大大节省时间与精力,它还可以在所有的 IDE、pro-tocols 和 CI/CD 环境内工作。要做到这一点,你需要能提供各种集成的单一工具,并且能与开源技术完全兼容。这是考虑到如果环境中有多个 CI/CD 平台(例如 Jenkins、Azure DevOps 和 TeamCity)仍然可以使用一个工具集。它将可以打破“工具孤岛”,消除团队协作的路障。
最后,自动化是让性能工程的效率更上层楼的重要方式。要实现这一目标,就需要一个集中、自动执行测试与分析结果的工具集。它将能减少重复工作,快速确定问题根原,避免将缺陷传递到下游,从而提升交付的效率与质量。
综上所述,为了你的企业级性能工程,你需要正确的工具与持续贯彻执行测试。这个工具需要将性能测试的所有工具集成至各种工作职能、工具、环境和生产环境,并提供分析的宏观综合视图。Micro Focus LoadRunner 工具套件与解决方案是一个不错的选择,它可以使你的团队基于统一平台开展高效率的协同,并对整个 SDLC 的性能负责。欲了解更多,敬请扫描下方二维码 ▼








