选择正确的工具
选择一个 CI 友好的工具,可以轻松地比较版本并使用 Git 存储库管理器检测差异。Apache JMeter非常适合负载测试,测试存储为 XML。
出于 CI 目的,使用基于代码或简单文本的东西;这使得比较结果和检测差异变得更加容易。
考虑测试级别
负载模拟是端到端的,模拟浏览器执行的操作(用户交互)。这些测试并不容易维护,因为它们对这些 HTTP 交互中的变化很敏感(在处理基于 Web 的系统时)。对于 CI,更好的策略是自动化 API 层,模拟REST调用。
这些测试的准备和维护更简单、成本更低,但与进行负载模拟相比,可以更快地从中获取有价值的信息。同样,这不能替代负载模拟;这是一个补充。
构建正确的测试基础架构
与任何负载测试一样,您的基础设施应该专门用于该测试;否则,结果将无法重现,并且更难检测误报。测试基础设施与生产中的基础设施越相似,结果就越准确。
但是,如果没有用于连续负载测试的此类测试基础架构。实际上,在缩小规模的基础设施上运行测试可能会更好。这样做,将不需要那么多机器来生成接近断点的负载。
降低频率和时间
更早、更频繁地测试重要的事情。无法测试所有内容,因为创建和维护的成本很高。关键是优先考虑并减少测试数量。从整个测试组中,选择关键的测试并将它们放在不同的阶段,在管道的早期,并为每个构建运行该测试。然后让完整的回归测试套件每天运行一次。
创建加载场景
连续运行哪些性能测试?在谈论负载模拟时,必须考虑如何使用系统并尝试与之匹配。在这种情况下,通过考虑将如何根据用户交互使用 API 来做类似的事情。
另一种方法是尝试达到接近测试基础设施断点的固定负载。然后根据从初始执行中获得的结果定义。使用这种方法,可以确定CI哪个更改会在发生后立即导致降级。