改进CI管道中自动化性能测试的10条技巧(第1部分)
Devin hao Architect

看一看如何通过连续测试和SLA改善CI管道的性能。

image

这是创建更好的CI管道的方法的1和2。

在持续集成管道中正确进行测试是Web规模软件开发的关键部分。对于许多公司而言,这是一个挑战,尤其是在自动化性能测试方面。这不是因为缺乏努力。许多公司似乎无法实现其努力的全部价值。原因很多。一些测试工作只是在重新发明轮子。其他人则只是出于执行目的而无明显意图地随机进行。确保测试既适当又旨在满足业务需求是事后才想到的。

不必一定是以这种方式。

任何公司都可以在自动化CI管道中进行有用,高效的性能测试。所需要的只是那些有知识的人的一些有用的知识。为了扩大“了解者”的圈子,我们创建了十个技巧列表,以改善CI Pipelines中的性能测试。

1.根据产品的长期目标进行连续测试

2.区分SLA,SLO和SLI

3.保持测试规模小且目标明确

4.在整体之前测试段

5.自动化不易碎的东西

6.节省时间,使用烟雾测试

7.利用您的源代码管理管理系统

8.没有反馈循环的期望不是

9.已知的基础架构是可测试的基础架构

10.使用您的CI / CD管道,而不是反对

今天的帖子将重点介绍前两个技巧,而其余建议将在单独的文章中介绍。

1.根据产品的长期目标进行连续测试

如果你想快速识别什么可怕的事情是否在进行与贵公司的测试流程,请考虑以下情形。现在该发布产品了。开发团队中的每个人都以焦虑不安的状态坐在会议室的桌子旁,等待端到端测试完成,以便可以将代码推送发布。无论哪种方式,您都无法自拔。为什么?毕竟,如果测试顺利,代码将继续进行。没关系吧?错误。

发布的生存能力取决于单个引发焦虑的端到端测试的状态这一事实揭示了整个测试过程的重大缺陷。此类测试所承受的压力不应超过常规血液测试的压力。如果患者有定期体检,健康饮食和定期运动的病史,则血液检查应验证历史上的积极行为。但是,如果患者已经十年没有去看医生,只能依靠薯片和生啤酒的饮食生活,而且只能走到邮箱,那么简单的验血会改变您的生活。谁知道它可能揭示什么?

类比适用于IT流程。如果公司的总体开发实践是健康的,并且在软件开发生命周期的各个级别进行连续测试,则端到端测试应该只是另一个验证复选框。如果发现问题所在,则无需费力即可解决它。

当开发实践杂乱无章,而测试被拖到最后时,最后的端到端测试又怎会是一种焦虑的经历呢?谁知道代码中隐藏了多少技术债务,开发人员不再在公司工作留下了多少谜团。测试中有多少只不过是循环使用20%的代码库,而其余部分则保持不变?诸如此类的问题在开发环境中令人惊讶地普遍存在,在该环境中,长期产品目标尚不清楚,而测试事件则是偶然的。

当创造了所有人都可以充分理解长期产品目标的条件时,开发过程和所产生的代码质量也会提高(前提是在整个生命周期阶段都进行了连续测试)。基于产品的长期目标进行连续测试是明智且实用的,并有助于改善自动化性能测试。

2.区分SLA,SLO和SLI

当大多数公司考虑定义软件/软件服务的工作方式时,他们相信服务水平协议。定义明确的SLA是必不可少的。否则,就没有可靠的方法让公司作为服务提供商或消费者运营。从提供商的角度来看,缺少SLA意味着客户可以随时(并期望)要求任何东西。从消费者的角度来看,没有SLA会使技术人员处于等待数小时的危险之中,因为他们的公司的数字基础架构崩溃时,他们一直处于等待与关键任务支持人员联系的状态。

SLA是必需的,但它们只能捕获部分图片。还需要更多。服务水平目标(SLO)和服务水平指标(SLI)的添加提供了必要的附加信息,以确保提供者和消费者之间的伙伴关系满足所有人的需求。

SLA描述了提供者和消费者之间的承诺;其复杂性将根据各方的需求而变化。SLA将定义每个服务的职责和服务的可用性。该协议仅取决于其背后目标的定义以及确定服务级别的度量标准。这就是SLO和SLI变得重要的地方。

如果提前定义了SLO,则建立SLA会容易得多。理解消费者希望从代码/服务中获得什么,将提供必要的见解,以确认所提供的服务符合期望。定义明确的SLO将有助于制定对所有人都有意义的SLA。

为了使SLA有效地满足SLO中规定的目标,必须定义一套标准的,易于理解的度量标准。否则,公司冒着将苹果与橙子进行比较的风险。因此,SLI的价值。服务水平指示器提供有关如何根据SLA衡量运营绩效的详细信息。SLI越精确,就越好。

SLO / SLI允许您根据SLA构造进行假设。确定了操作的需求和条件以及测量方法。“我需要喝点东西”和“我渴了,需要8盎司水来满足我的渴求”之间的区别。

然后,基于定义明确的SLO的SLA,然后根据详细SLI的一组度量标准进行测量,这将有益于常规操作以及测试过程。根据SLI中明确定义的参数,满足SLA要求的测试与即席测试相比,提供了更高的准确性和更可靠的分析。

在SLA,SLO和SLI之间进行区分将大大有助于在软件所涉及的各方(开发人员,测试人员和用户之间)之间建立有意义,可靠的关系。

下周,在由十个技巧组成的三部分博客系列中的第二篇中,我们将深入探讨技巧3-6。