博客

加速性能分析与趋势和开放API的数据

作者:

188金宝搏app苹果下载软件Tricentis员工

各种各样的贡献者

日期:2021年7月13日

这篇文章是关于如何建立系列的第三个性能工程实践,从自动化管道产生可操作的性能分析。

第1部分:连续使用詹金斯管道和Kubernetes负载测试

第2部分:3杀手反模式在连续性能测试

第3部分:加速性能分析与趋势和开放API的数据

主要从第1部分和第2部分:

  • 一旦性能测试自动化是可靠的,它产生一个关键纵向视图。
  • 基于开放api的性能数据改善人类和pipeline-based工作流。
  • 性能数据必须容易消耗和特定于域的。

分布式系统是很痛苦的

反馈的即时性在行为心理学中扮演着关键角色。在她1984年出版的书《别开枪的狗,凯伦·普赖尔论述如何应用价值的积极反馈宜早不宜迟。相反,延迟反馈是经常在改善无效的情况下,很容易有意外留下负面影响。

类似地,软件团队构建分188金宝搏官网登录app布式系统遭受“信号延迟”反馈回路复杂的行为的软件和基础设施部署。188金宝搏官网登录app通常非功能性(或者我现在所说的“整体”)需求被忽略是因为:

  • 迫切要求更高的速度
  • 成本和时间来创建和维护环境适合验证这些需求
  • 普遍缺乏专业知识

一个心理幽灵仍然喂养团队怀疑和理由忽视他们最终将面对什么:推迟疼痛。基于云的microservices例子——后期性能工程。离开性能标准的规划过程和运行大爆炸载荷测试只有最后的一个项目团队在一个受伤的世界离开。非平凡的cross-zone延迟等问题,配置超时和断路器配置,有效载荷膨胀由于nonoptimal查询,并定期知之甚少存储子系统离开开发/运营团队努力解决建筑问题。

向前带来的痛苦

我们的许多领域的经验,顾客遭受这些类型的痛苦的情况下内化的重要性使性能工程团队文化的一部分。通过专用的专业知识提供给产品组,减少批量大小(所以故障隔离较容易。在持续交付),或传统的单片的概念测试分解成活动匹配开发/发布周期之间的时钟速度,存在一个共同的主题:自动化经常可以自动执行和验证。

对于现代性能工程,目标是产生一个常规的信息相对于系统如何执行这意外当性能降低,这是识别和迅速解决。这通常意味着负载测试在不同的卷在多个环境中使用持续集成协调器像詹金斯,Gitlab或CircleCI。运行什么测试的选择取决于风险因素在被测系统(SUT),测试设计/执行时间需求,代码和环境配置更改的频率。

有时自动化性能测试并不简单,尤其是如果这是你的第一次。188金宝搏app苹果下载软件Tricentis NeoLoad适用于各种规模的组织和理智。尽管每个组织有不同的目标和欲望,快速反馈循环应用,常见的结果包括可观测性改进通过实时性能测试结果和历史趋势研究。金宝搏188官网网址

一次性能自动化可靠和容易注意到,团队感到更舒适性能结果扩张到自动化流程可行或不可行的决策进一步减少不必要的手动工作。有更加宏伟的自由如何系统执行在时间和性能标准是如何相遇在一个项目的投资组合可以帮助溶解上升周期较迟的疼痛,增强尽早并且经常性能验证的价值。

API的例子:纵向视图的性能

作为一个API团队发展项目代码添加端点,调整现有后端查询,并改变部署配置,低级non-production-like环境中的负载测试时提供早期预警指标性能不满足sla。关键数据点API的性能测试是:

  • 整体测试通过/失败
  • Request-per-second (RPS)
  • 吞吐量(Mbps)
  • SLA失败

看到下面的一个例子NeoLoad网页,显示夜间负载测试的结果,关键API端点和工作流提供了一个方便的视图的性能随着时间:

此外,这些测试结果具体的sla,进一步澄清什么是满足和低于预期。

重要的是,所有这些数据可以通过RESTful API与NeoLoad Web。安全、开放系统数据是至关重要的任何产品的功能,在现代景观。以外的信息透明度,开放api允许团队内优化他们的流程是如何工作的标准接口的安全网。

是否部署这个自己或使用我们的基于saas的托管版本,你可以聚合和性能测试数据整合到任何特定的细节你需要开始构建一个自动化过程可行或不可行的决策适合连续的管道。NeoLoad结果归结为一些常见的结构:

提高管道吞吐量与自动性能/不方便去

自动管道缺乏阶段最小可行的验证和验证检查不要告诉整个故事。他们看起来绿色但离开可靠的软件交付的关键细节处理远后在生产的时候几乎不可能追溯到因素。188金宝搏官网登录app

如果你不能适应一些管道,这是一个极好的机会来问,“为什么不合适?“不是所有都能被自动化,但没有任何借口不努力。什么是自动将最小化辛劳。如果证明非常困难,尝试一些方法,文档的过程中,尽可能自动化,回来后用新鲜的想法。当你开始性能测试到自动化流水线,您将学习:

  • 哪个区域的应用程序/服务有明显的和可重复的错误吗
  • 哪些测试是值得运行(提供价值)和那些不
  • 系统不必要的复杂,导致反模式和片状
  • 支持性环境(包括数据)不稳定/不可靠吗
  • 贡献者演示批判性思维与写作更多的代码

案例研究:Pipeline-based自动化为DevOps客户行/不行

与我们合作Panera Bread的性能和自动化团队建立一个自定义/闲人免进的过程在詹金斯管道与他们特定的需求,其中包括:

  • 一个人类可读的生产,archivable性能比较报告强调,百分比变化超出预定范围(+ / - 5或10%):
  • (即特定测试工作流事务。、登录、加入购物车、结帐等)。
  • 系统指标(JVM的垃圾收集计数、线程池大小等)。
  • 特定的API请求
  • 的输出列表违反基于上述约束的格式容易被詹金斯消耗品
  • JSON对比数据表明行/不行是否存在任何侵犯
  • 自定义范围和违反规则都写在节点。js(为了技能无处不在)
  • 过程模式,坚持特定项目测试结果作为未来工作运行的基线(直到一个新的基准,建立项目)

这项工作的目的是让产品团队轻松添加性能测试作为一个高层要求使用一个自动化的国旗,然后基于Groovy库/命名约定,定期运行现有的性能测试,并自动管理基线用于连续比较强调意想不到的性能变化频繁的CI构建。

通用代码比较报告Github。然而,它强调只有一个例子,你可以做什么与合适的企业性能测试平台,是透明的和具有可扩展性的建造。Panera以来也有维护和自动展期成功测试的自定义规则作为新基线在特定的条件下,我们提出了一个主要序列过程:

通过这个简单的机制,他们能够建立标准詹金斯共享库来简化物流在个人项目管道脚本。最终,他们卷起所有性能语义单个项目选择国旗。利用188金宝搏app苹果下载软件Tricentis NeoLoad测试套件在项目目录,这些管道跑各种负载测试基线相比(使用任何禁止入内的方差和违反停止部署过程,信号工程师调查)。

其他客户使用NeoLoad api的例子包括热图随时间通过/失败的项目投资组合,自定义趋势基于一组关键交易和跨系统,甚至简单的自助服务门户网站,以帮助开发团队看到关键模块是如何执行的,像这样:

减少与sla认知研究的性能数据

性能数据必须容易使用和特定于域的。更多和更多你需要看数据,图表,和图表,可能性越大你就会麻木的基本指标。许多团队从其他单片开关性能的产品188金宝搏官网app注册188金宝搏app苹果下载软件Tricentis NeoLoad听到了他们的开发人员,一个客观的PDF报告的负载测试结果负载测试工具他们不使用不帮助他们。挖掘统计到有意义的见解不应该产品团队把时间花在什么。

在一些组织中,原始测试结果继续管道通过“分析过程,“通常一套手动导出/导入步骤通过semi-intelligent电子表格要求图表和图形的复制/粘贴到最终的幻灯片(不易机器可读)。尽管有时这个过程的元素是必要的,尤其是当有一个反复出现的异常(主要是自动化过程),这样每次为每个新构建只是精神错乱。

更好的方法是将这个过程(如任何优秀的工程师),确定哪些部分是简单的自动化,哪些部分需要很长时间,这些阻塞完整的端到端流程的自动化。当你这样做时,你学习关键的上下文不同的项目,如何提取上下文,以及如何让人们知道那一刻表现在这种情况下偏离预期的标准。

性能测试的一个重要组成部分是建立sla,并激发他们到您的负载测试。每个环境可能有不同的差异,因此不同的sla,但是,NeoLoad很容易表达sla代码:

不同于功能测试,遭受偶尔性能异常值,NeoLoad sla可以配置为计算每个时间间隔内/测试,提供触发时间的灵活性。

一旦这些sla分层与其他元素,它从一个图形设计师或YAML-written(执行测试后),通过/失败,阈值数据可从NeoLoad api通过(/测试/ {testId} / sla /…)端点。

NeoLoad api是他们的另一个很酷的功能包括图形端点,您可以生成有意义的图像(即自动通知。、松弛)和自定义图的数据:

生产PNG输出…

您可以快速把曾经是一个复杂的分析过程变成更多的离散自动通知期间违反sla性能测试时产品团队。

《华盛顿邮报》最初是出版于2019年,是最近更新的2021年7月。

一定要检查我们的白皮书连续性能测试的实用指南在开始务实的建议和帮助。

作者:

188金宝搏app苹果下载软件Tricentis员工

各种各样的贡献者

日期:2021年7月13日
Baidu
map