如何使用左移方法优化性能测试

开发周期早期阶段的性能测试(左移方法)可以让产品提供更好的性能和更高的投资回报率。查看如何使用左移方法优化性能测试。

每一次冲刺都至关重要,并且做出的决策速度快如闪电。为了促进快速反馈过程,测试团队必须在很短的时间内端到端地彻底验证其应用程序。为了最大限度地发挥这一努力,测试团队可以现代化他们的测试方法,以便在软件测试的最早阶段获得最佳的投资回报。

Parasoft 产品免费试用icon-default.png?t=N7T8https://www.evget.com/consult/parasoft/#Aps_contact

什么是左移性能测试?

性能测试左移意味着开发人员和测试人员能够在开发周期的早期阶段进行性能测试。传统上,性能测试是在开发周期结束时执行的任务,因为它需要一组专门的工具和技能,即由经过培训的性能测试工程师在专用环境中使用昂贵的硬件。相反,左移性能测试策略允许测试人员在开发单个组件时对其进行较小的临时性能测试。

为了实现这一目标,团队需要在实现功能时开始创建性能测试以及单元和功能测试,并将这些性能测试配置为自动运行并以提醒您性能下降的方式进行报告。为了自动执行测试,性能测试执行必须作为 CI/CD 流程的一部分紧密集成,其中每次代码签入后,性能测试以及功能和单元测试都在本地环境中执行。

此过程使组织能够了解添加到其应用程序总体性能中的新组件的微妙影响,并最终能够在交付生命周期中更早地发现与性能相关的缺陷。从公司文化的角度来看,左移性能测试还意味着让开发人员更多地参与其中。在大多数情况下,开发团队可以在发现性能下降的一天内进行优化增强,而不是等到整个应用程序构建完成。

组织必须采取哪些措施才能实现左移绩效?
  1. 首先也是最重要的,您需要完善的组织支持。将质量视为一个过程而不是一种反应对于将性能测试转移到整个企业至关重要。此过程中的关键参与者是产品经理,因为性能测试和相关的开发时间是以实施成本为代价的,这可能会减慢开发周期。PM 团队必须了解为什么要进行此过程,并了解其价值在于减少热修复和性能优化。
  2. 接下来,除了应用程序级别之外,在组件级别定义 SLA可以实现早期反馈,并帮助开发人员了解代码修改对他们正在开发的各个组件的影响。这种精细的性能测试使利益相关者更容易了解热点发生的位置。
  3. 将尽可能多的测试实践从以 UI 为中心的测试迁移到自动化测试(例如 API 和数据库测试)非常重要。这些类型的测试实践除了更具可维护性和可扩展性之外,还可以立即在性能测试中利用,可以查明性能问题的根本原因,并且对变化具有很强的弹性。
  4. 最后,组织必须将性能测试集成到构建过程中,以便在代码签入时执行基本的冒烟测试性能测试,并且每晚运行全套性能测试。为此,您需要考虑硬件。自动化性能测试确实比功能测试需要更多的计算资源,因此开发团队需要为此做好准备。审查现有的性能基础设施是否适合左移方法或需要修改(即云代理)也将是过渡到性能测试自动化的关键考虑因素之一。
左移性能中的开发人员和测试人员角色

开发人员拥有其应用程序的性能。开发人员必须使用微服务、REST/SOAP API 和模块化设计架构创建可供性能测试的应用程序,以便可以在开发各个部分时对其进行负载测试。

测试人员可以将他们的测试用例与应用程序中的关键工作流程对齐,以便可以在性能测试过程中利用它们。专注于应用程序的 API 层可以使其更能适应变化且易于管理。两个团队都会使用超出应用程序 SLA 范围的报告来根据最近的代码签入来识别问题区域,从而帮助他们确定哪些组件需要优化。

如何集成工具来实现左移性能?

为左移性能测试过程选择正确的工具很重要,但不如在自动化工作流程中一起使用它们那么重要。早期的性能测试通常发生在个人的口袋中,其中精明的测试人员和开发人员使用各种开源和商业可用的工具来设计技术,但这最终会被忽视,因为它没有集成为整个自动化过程的一部分。

相反,测试人员应该使用专门的商业工具,使他们能够以自动化的方式创建性能测试。开发人员可以使用类似的工具来优化他们的工作或创建低级脚本来驱动自动化和负载。那么你需要什么工具呢?

以下工具简化了维护,可以集中管理,并提供易于使用的 UI 来理解结果。

功能测试工具

功能测试应该已经成为持续测试策略的一部分。您为功能测试自动化选择的工具应重点关注应用程序的 API 层(以简化测试用例执行操作和维护)以及 UI 层(以进行端到端和用户体验测试)。功能测试工具用于创建基线(重用)执行路径,无论是在 UI 级别还是在 API 级别。这些执行路径与用户故事相匹配,因此性能测试的结果与受影响的用户故事之间存在相关性。

性能测试工具

具体来说,您需要一个可以使用功能测试工件并在负载下运行它们的性能测试工具。这些工具应该具有各种负载控制参数,例如虚拟用户数量或一段时间内的交易数量。然后,这些工具应向集中仪表板报告以汇总结果。

服务虚拟化工具

服务虚拟化工具解决了左移性能测试早期阶段单体应用程序缺失的组件。在早期性能测试中您将面临的主要挑战之一是缺乏并行开发工作或第三方组件的支持基础设施。通过建立这些依赖系统的基线并在虚拟服务中对其进行建模,您可以创建与生产类似的应用程序基线条件,并在测试期间重点关注各个组件的性能。

持续集成工具

当左移性能测试是一个自动化过程时,效果最好。如果部署自动化,“性能测试”仅意味着对自动化性能测试的审查/维护,从长远来看,由于该过程是自动化的而不是手动的,因此可以减少执行测试的时间。

通过将性能测试策略与持续测试策略相结合,并与 Jenkins、Bamboo、Microsoft VSTS 等工具集成,您可以创建完全自动化的流程。您的 CI 工具应该使您能够将性能测试作为代码签入的功能来执行,以便可以在夜间运行一致的性能测试。

此外,您的 CI 工具应与您的报告和分析仪表板集成,并自动发布结果,以便您可以快速了解趋势数据。

用于汇总结果的集中仪表板

说到报告和分析仪表板,集中式仪表板非常重要,因为它使用户能够通过按项目、组件、API 等显示趋势信息来了解组件性能测试的增量影响。

您的集中式仪表板应该提供自动化性能测试、定义将性能测试转化为通过/失败指标的 SLA 以及查看历史趋势的能力。此外,报告仪表板应提供将性能测试与其初始需求联系起来的详细信息,以便企业可以正确确定出现的问题的优先级,以及高级别的通过/失败视图,同时提供每个小细节,以便您检测到故障后可以确定故障原因。

除了经理和测试人员之外,左移方法还将开发人员添加为仪表板用户,因此仪表板必须具有开发人员正在寻找的低级详细信息,以有效调查和确定 SLA 失败或历史趋势的原因。

概括

消费者对不断的热补丁和性能优化更新感到厌倦。他们渴望新的特性和功能。由于性能测试传统上是在周期结束时进行的,因此它不可避免地会影响交付期限,因此人们会从负面的角度来看待它。通过联合性能测试流程并使敏捷团队能够通过迭代方法左移测试,可以及早发现问题。这不仅确保了可以轻松评估所制定的技术决策的性能下降情况,而且通过优化每个区域并专注于性能,最终提供整体性能更高的产品。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/623728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS逆向实战案例1——某房地产url动态生成

说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除 作者:zhu6201976 一、 反爬分析 url:aHR0cHM6Ly9uZXdob3VzZS4wNTU3ZmRjLmNvbQ 该站点项目url通过点击JS生成,project_id与生成后…

mysql清空并重置自动递增初始值

需求:当上新项目时,测试环境数据库导出来的表id字段一般都有很大的初始递增值了,需要重置一下 先上代码: -- 查看当前自动递增值 SHOW CREATE TABLE table_name; -- 重建自动递增索引(可选) ALTER TABLE t…

Spring - 如何控制多个 AOP 切面执行顺序?

众所周知,Spring 声明式事务是基于 AOP 实现的,那么,如果我们在同一个方法自定义多个 AOP,我们如何指定他们的执行顺序呢? 三种解决方案 1、通过实现 org.springframework.core.Ordered 接口 Component Aspect S…

Vue-13、Vue绑定css样式

1、绑定css样式字符串写法&#xff0c;适用于&#xff1a;样式的类名不确定 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>绑定css样式</title><!--引入vue--><script type"tex…

上海市委网信办技术沙龙|美创科技分享数据流动下的安全应对

为有效提升上海市党政机关和重点单位的技术能力与水平&#xff0c;1月11日&#xff0c;上海市委网信办组织开展以“数据安全治理与合规流动经验分享”为主题的第三十二期网络安全技术沙龙。全市26家党政机关和重点单位相关网络安全技术人员参加此次活动。 美创科技作为上海市委…

关于git删除仓库中原本应该忽略的文件的研究

开门见山&#xff0c;先抛出一个结论&#xff1a; 任何被提交到远程仓库中的数据&#xff0c;都不能被彻底删除&#xff0c;只要提交上去了&#xff0c;就会永远留存。 任何被提交到远程仓库中的数据&#xff0c;都不能被彻底删除&#xff0c;只要提交上去了&#xff0c;就会…

三、04 nginx负载均衡

目录 简介1、准备三台主机且都安装了ngix2、先配置第一个服务主机配置文件nginx.conf制作页面写入页面内容检测语法&重启nginx查看第一个服务器再用同样样的方法 搭建第一个web 服务即可可以使用scp 直接复制 第一个web 服务器的文件配置文件第二个页面的 html 代码 配置代…

分别取出一个时间序列中的年份,月份和日期

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 只留下时间序列中 各行元素的年、月或日 结果的数据类型是序列 Series.dt.year Series.dt.month Series.dt.day [太阳]选择题 以下关于代码输出结果的说法中正确的是? import pandas as pd ts…

“超人练习法”系列09:耶克斯–多德森定律

01 你现有水平和学习风格 搞明白自己是个大事&#xff0c;搞不明白就糊涂一辈子。 首先&#xff0c;要弄清楚自己现在是个啥水平&#xff0c;有啥技能可以拿出来的&#xff0c;然后再定个目标&#xff0c;知道自己想往哪方面努力。 你擅长的学习方式是啥呢&#xff1f;是那种…

第十五届蓝桥杯单片机组备赛——独立键盘矩阵键盘

文章目录 一、按键原理二、独立键盘&矩阵键盘2.1 独立按键2.2 矩阵键盘 一、按键原理 原理很简单&#xff0c;当我们没有按下SW2时&#xff0c;由于上拉电阻得作用&#xff0c;使得输入引脚得信号为高电平&#xff0c;当按下按键后&#xff0c;引脚直接接地&#xff0c;输入…

虹科分享 | PCAN工具:强大的CAN通讯解决方案,你了解多少?

导读&#xff1a;在当今的汽车和工业自动化领域&#xff0c;可靠的通讯系统至关重要&#xff0c;PCAN工具为这些应用提供了强大的支持。本文将介绍PCAN工具的功能、应用和优势&#xff0c;以帮助您根据实际需求选择合适的工具和配件。 PCAN 网络允许 PCAN 应用程序&#xff08…

redis原理(二)数据结构

redis可以存储键与5种不同数据结构类型之间的映射&#xff1a; String类型的底层实现只有一种数据结构&#xff0c;也就是动态字符串。而List、Hash、Set、ZSet都由两种底层数据结构实现。通常我们把这四种类型称为集合类型&#xff0c;它们的特点是一个键对应了一个集合的数据…

【MATLAB】【数字信号处理】产生系统的单位冲激响应h(t)与H(z)零极点分布

一、实验目的与要求 产生h(t) 与H(z) 零极点分布 二、实验仪器 微机&#xff0c;仿真软件MATLAB 2022a 三、实验内容与测试结果 1.已知描述连续系统的微分方程为y(t)5y(t)6y(t)2x(t)8x(t) &#xff0c;计算系统的单位冲激响应h(t) 程序如下&#xff1a; clear all; ts0;…

JavaScript采集各大电商平台关于预制菜酸菜鱼销售量

因为我喜欢吃酸菜鱼&#xff0c;但是自己弄又弄不来&#xff0c;想从网上找找看看&#xff0c;但是种类多&#xff0c;自己逐个选择又太浪费时间。索性利用自己专业爬虫知识&#xff0c;一边检验我最近代码水平&#xff0c;另一方面还能选择到满意的年货。过去写个各大平台预制…

centos7 arm服务器编译安装gcc 8.2

前言 当前电脑的gcc版本为4.8.5&#xff0c;但是在编译其他依赖包的时候&#xff0c;出现各种奇怪的问题&#xff0c;会莫名其妙的中断编译。本地文章讲解如何自编译安装gcc&#xff0c;替换系统自带的gcc。 环境准备 gcc 需要 8.2&#xff1a;下载地址 开始编译 1、解压gcc…

医疗器械网络安全风险评定CVSS打分

为了完成医疗器械软件的网络安全风险评定相关文档&#xff0c;需要进行CVSS评分&#xff0c;这个评分对于第一次做的人来说感觉还是有些迷惑的&#xff0c;查了一些资料&#xff0c;留作参考。 CVSS 指的是 Common Vulnerability Scoring System&#xff0c;即通用漏洞评分系统…

QLExpress和Groovy对比

原理 Groovy groovy基于JVM运行。 编译时&#xff1a;将源文件编译成class文件后&#xff0c;用java的classLoader加载&#xff1b;运行时&#xff1a;直接用groovy classLoader加载 QLExpress QLExpress将文本解析成AST&#xff0c;用java对象表达后执行。 特点 Groo…

C++命名空间的using声明

在前边的C讲解中&#xff0c;使用输入输出流cin和cout前要加std::&#xff0c;每次前边都要加就会很麻烦。解决这个问题&#xff0c;我们就要了解一下命名空间和using声明。  命名空间会限定作用域具体格式及使用参照C入门讲解命名空间&#xff0c;上边的cin和cout就是声明在s…

大屏项目:react中实现3d效果的环形图包括指引线

参考链接3d环形图 3d效果的环形图 项目需求实现方式指引线&#xff08;线的样式字体颜色&#xff09; 项目需求 需要在大屏上实现一个3d的环形图&#xff0c;并且自带指引线&#xff0c;指引线的颜色和每段数据的颜色一样&#xff0c;文本内容变成白色&#xff0c;数字内容变…

最值得推荐的10个免费PDF转Word的方法

PDF转Word是一项很常见的操作&#xff0c;将PDF文件转换为Word文档可以方便我们对文件进行编辑和修改&#xff0c;而且Word格式也更加好打印。 最值得推荐的10个免费PDF转Word的方法 PDF 文件格式在很多场合都被广泛使用&#xff0c;但有时候我们需要修改 PDF 文件内容并保存&…