2023年软件测试工具总结 —— 性能测试工具

news2024/9/25 13:17:51

软件性能测试的目标是识别应用程序中的所有性能瓶颈。一个软件系统的性能不仅取决于系统本身的设计和编码,而且取决于系统所依赖的运行环境。系统的运行环境会依赖于一些关键因素,例如:系统架构、硬件配置、网络带宽、配套的软件如数据库和中间件等、以及外部的负载大小。

系统性能的改善是测试、调整、再测试、再调整……的一个持续改进的过程,即性能调优,根据性能测试的结果对软件的设计,代码,系统的配置进行调整。

性能测试的类型

性能测试主要包含6种类型,如下表所示。

类型说明
负载测试确定软件在给定时间内随着工作负载增加的运行方式,工作负载可以是并发用户、事务数、软件行为等。在被测系统上不断增加压力,直到性能指标(如响应时间)超过预期指标或者某种资源使用已经达到饱和状态。可以找到系统的处理极限,为系统调优提供数据。
压力测试测量超出正常工作参数、更高的流量负载(更多用户、事务等)下的软件稳定性,即系统在一定饱和状态下,例如CPU、内存、磁盘空间等硬件资源饱和的情况下,系统能够处理的会话能力,以及系统是否会出现错误。
稳定性测试评估软件在一个固定的常规工作负载下的长期性能。换句话说,它决定了软件能够承受恒定的工作负载多长时间以提供长期的可持续性。在测试期间,测试团队监控KPI,如内存泄漏、内存使用、内存不足等。稳定性测试还分析长时间使用后的响应时间和吞吐量,以观察这些指标是否一致。
尖峰测试尖峰测试是一种压力测试,它测量软件在显著的、突然的工作负载增加(如用户并发数量)情况下的性能。软件是否能够反复快速地处理突然增加的工作负载。
容量测试测试软件在处理大量数据时的效率,用于检查数据丢失、系统响应时间、数据存储可靠性等。
可伸缩性测试测量软件在处理不断增加的工作量方面的有效性。可以通过在监视软件性能的同时逐渐添加数据量或用户来执行可伸缩性测试。

如今,随着DevOps的发展,性能测试已经上升为软件系统全生命周期性能工程。本文从五个方面介绍性能测试的工具和解决方案:客户端性能测试、服务端性能测试、分布式系统的应用性能监控、分布式系统的全链路压测。

  1. Google Lighthouse
  2. PerfDog
  3. Monkey
  4. Monekyrunner
  5. mobileperf
  6. Pyroscope
  7. MemoryLeakDetector
  8. JMeter
  9. LoadRunner
  10. Webload
  11. Gatling
  12. k6
  13. Vegata
  14. Locust
  15. Skywalking
  16. Pinpoint

客户端性能测试工具

1)Google Lighthouse

Lighthouse 是 Google 开发的一款分析 Web 应用和页面性能的开源工具。Lighthouse分析Web应用程序和Web页面,收集关于开发人员最佳实践的现代性能指标和见解,让开发人员根据生成的评估页面,来进行网站优化和完善,提高用户体验。Lighthouse是直接集成到chrome开发者工具中的,位于‘Audits’面板下。

2) PerfDog

PerfDog 性能狗是移动全平台 iOS\Android 性能测试工具平台,快速定位分析性能问题,提升 APP 应用及游戏性能和品质,手机无需 ROOT/越狱,手机硬件、游戏及应用无需做任何更改,极简化即插即用。

官网地址:

https://wetest.qq.com/product/perfdog

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

3) Monkey

Monkey 是 Android SDK 提供的一个命令行工具,使用简单、方便地运行在任何版本的 Android 模拟器和实体设备上。Monkey 会发送伪随机的用户事件流,适合对 app 做压力测试。

4) Monkeyrunner

MonkeyRunner工具提供了多个API,通过monkeyrunner API 可以写一个Python的程序来模拟操作控制Android APP,测试其稳定性并通过截屏可以方便地记录出现的问题。

5) mobileperf

天猫团队开源的PC Android性能稳定性测试工具,可以收集Android性能数据: cpu 内存 流畅度fps logcat日志 流量 进程线程数 进程启动日志,mobileperf也支持原生monkey test。下载地址:https://github.com/alibaba/mobileperf

6) Pyroscope

Pyroscope是一个开源的连续分析平台。能够帮你发现代码中的性能问题和瓶颈、CPU利用率高的原因。并且帮你了解应用程序的调用树,提供丰富的图表和调用树展示。官网地址:https://pyroscope.io

7) MemoryLeakDetector

MemoryLeakDetector是由西瓜视频android团队开发的本地内存泄漏监视工具,它具有访问简单,监视范围广,性能优良和稳定性好的优点。它被广泛用于ByteDance的主要应用程序的本机内存泄漏管理中。

官网地址:https://github.com/bytedance/memory-leak-detector

服务端性能测试工具

8) JMeter

JMeter 是 Apache 组织开发的基于 Java 的压力测试工具。用于对软件做压力测试,它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域。它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器等等。

JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

官网地址:https://jmeter.apache.org/

9) LoadRunner

LoadRunner 是一种预测系统行为和性能的负载测试工具。通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。

官网地址:

https://www.microfocus.com/zh-cn/portfolio/performance-engineering/overview

10) WebLOAD

WebLOAD是一款针对Web应用程序的企业级负载和性能测试工具,提供性能、完整性和可伸缩性测试等功能,能够同时模拟数千个用户,因此您可以测试重流量负载,并报告应用程序中的弱点、约束和性能瓶颈。使用WebLOAD进行网站负载测试、连续测试、云负载测试等。该工具可以从云端或本地机器生成负载,并提供一个集成开发环境(IDE),用于可视化地记录、编辑和调试测试脚本。官网地址:https://www.radview.com/

11) Gatling

Gatling 是一款基于 Scala 开发的高性能服务器性能测试开源工具,同时也是一款功能强大的负载测试工具,开箱即用。Gatling主要用于测量基于HTTP的服务器,比如Web应用程序,RESTful服务等。Gatling是针对任何 HTTP 服务器进行负载测试的首选工具。

官网地址:https://gatling.io/

12) k6

k6是高性能的负载测试工具,也是一种高性能工具,旨在在预生产和QA环境中以高负载运行测试,可使用JavaScript编写脚本。它是一个以开发人员为中心(当然,测试人员亦可以使用,因为真的很方便),免费和开源的负载测试工具,旨在使性能测试具有生产力和令人愉悦的体验,可最大程度地减少系统资源的消耗。

官网地址:https://k6.io/

13) Vegata

Vegeta 是一个用Go语言编写的多功能的 HTTP 负载测试工具,提供命令行工具和一个开发包。

官网地址:

https://github.com/tsenart/vegeta

14) Locust

Locust是使用Python开发的支持分布式的一款开源压力测试工具,可以通过写python脚本的方式来对web接口进行负载测试。Locust在单台机器上能够支持几千并发用户访问,并且由于其对分布式运行的支持,理论上来说,Locust能在使用较少压力机的前提下支持极高并发数的测试。

官网地址:https://locust.io/

分布式系统的性能监控工具

在微服务架构的分布式系统中,当客户端发起一个请求时,往往会调用多个服务,涉及多个中间件,加上系统又分布在多台服务器上,因此,当系统出现性能瓶颈时,故障诊断就变得非常复杂。分布式系统的应用性能监控(APM)工具通过服务调用链追踪分析来定位链路上的性能瓶颈。

在线性能监控是指借助监控工具,监控系统性能的实际数据,因为是真实数据,比研发环境中通过工具产生负载得到的测试结果更客观,更有分析价值。

15) SkyWalking

SkyWalking是一款国内开源的优秀的APM工具,提供了一个分布式系统的直观的观测平台,用于从服务和云原生基础设施收集、处理及可视化数据,通过监控、告警、可视化和分布式追踪等功能为微服务、分布式,以及容器化的系统架构提供了可观测性(observability)。它可以观测横跨不同云的分布式系统,而且从SkyWalking 6 开始支持下一代的分布式架构Service Mesh。

官网地址:http://skywalking.apache.org/

16)Pinpoint

Pinpoint是一个用于大规模分布式系统的APM(应用程序性能管理)工具,用Java/PHP编写。Pinpoint提供了一个解决方案,帮助分析系统的总体结构,以及通过跟踪分布式应用程序中的事务,分析系统中的组件如何相互连接,用于大型分布式系统的全链路监控,可以获取不同服务之间,服务与数据库,以及服务内部的方法的调用关系,还可以监控方法调用时长、可用率和内存等。

下载地址:

https://pinpoint-apm.github.io/pinpoint/

分布式系统的全链路压测平台

全链路压测是指模拟真实业务场景中的海量用户请求和数据访问生产环境,对整个业务链路进行全方位的、真实的压力测试,提前找到分布式系统的性能瓶颈点并持续调优的实践。目前企业大多采用的是基于开源工具Gatling、JMeter 搭建压测集群进行全链路压测。同时,国内也有商用的全链路压测解决方案,如Perfma全链路压测解决方案、京东ForceBot平台、美团的 Quake、高德的 TestPG、字节跳动的Rhino、阿里妈妈的MagicOTP和性能测试平台ACP,以及阿里的AMAZON、PTS和JVM-SANDBOX平台。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

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

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

相关文章

java多线程卖电影票的三种实现方式

java多线程卖电影票的三种实现方式 一、需求描述二、实现方式1、继承Thread类的方式2、实现Runnable接口的方式3、使用Lock锁的方式 一、需求描述 某电影院目前正在上映国产大片,共有1000张票,而它有2个窗口卖票,请设计一个程序模拟该电影院…

12.3 实现模拟鼠标录制回放

本节将向读者介绍如何使用键盘鼠标操控模拟技术,键盘鼠标操控模拟技术是一种非常实用的技术,可以自动化执行一些重复性的任务,提高工作效率,在Windows系统下,通过使用各种键盘鼠标控制函数实现动态捕捉和模拟特定功能的…

Ubuntu22.04.3安装教程

虚拟机系列文章 VMware Workstation Player 17 免费下载安装教程 VMware Workstation 17 Pro 免费下载安装教程 windows server 2012安装教程 Ubuntu22.04.3安装教程 FTP服务器搭建 Ubuntu22.04.3安装教程 虚拟机系列文章前言Ubuntu22.04.3安装(图文) 前…

【C++心愿便利店】No.7---C++之运算符重载

文章目录 前言一、运算符重载的引用二、运算符重载三、赋值运算符重载四、日期类的实现五、const成员六、取地址及const取地址操作符重载 前言 👧个人主页:小沈YO. 😚小编介绍:欢迎来到我的乱七八糟小星球🌝 &#x1f…

onlyoffice历史版本功能实现

一:开启客户端配置 如果不开启,回调请求里面的history和changeUrl是空 二:客户端主要实现2个回调函数 1.实现onRequestHistory事件,该事件会在ui点击查看历史的时候发起,用于展示历史列表 关键在于获取到history的内容&#xff…

Vscode进行远程开发

之前用的是pycharm,但是同事说pycharm太重了,连接远程服务器的时候给远程服务器的压力比较大,有时候远程服务器可能都扛不住,所以换成了vscode。 参考博客 手把手教你配置VS Code远程开发工具,工作效率提升N倍 - 知…

【自动驾驶】PETR/PETRv2/StreamPETR论文分析

1.PETR PETR网络结构如下,主要包括image-backbone, 3D Coordinates Generator, 3D Position Encoder, transformer Decoder 1.1 Images Backbone 采用resnet 或者 vovNet,下面的x表示concatenate 1.2 3D Coordinates Generator 坐标生成跟lss类似,假…

从零开始的SRC挖掘

前言 每一次成功的渗透,都有一个非常完备的信息搜集。 大师傅讲的好呀:信息搜集的广度决定了攻击的广度,知识面的广度决定了攻击的深度。 点击此处即可领取282G网络安全学习资料 信息搜集 信息搜集可以从多个领域来看: 公司…

springboot vue 部署至Rocky(Centos)并自启,本文部署是若依应用

概述 1、安装nohup(后台进程运行java) 2、安装中文字体(防止中文乱码) 3、安装chrony(保证分布式部署时间的一致性) 5、安装mysql数据,迁移目录,并授权自启动; 6、安…

基于JavaSpring的学生宿舍管理系统

点击以下链接获取源码: https://download.csdn.net/download/qq_64505944/88407844

Bootstrap网格系统的原理

Bootstrap 提供了一套响应式、移动设备优先的流式网格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。 Bootstrap 网格系统(Grid System)的工作原理 网格系统通过一系列包含内容的行和…

HRM人力资源管理系统源码

HRM人力资源管理系统源码 运行环境:PHP8.1或以上 MYSQL5.7或以上 php扩展要求 fileinfo imagemagick 功能介绍: 综合仪表板 它通过其综合仪表板提供了员工总数、工单和帐户余额的概览。 您可以轻松访问组织中的缺席者以及详细的公告和预定会议列…

阿里云域名免费配置HTTPS

阿里云域名配置HTTPS - 知乎

零基础也能学会!Linux下安装RStudio工具及实现远程访问的详细指南

前言 RStudio Server 使你能够在 Linux 服务器上运行你所熟悉和喜爱的 RStudio IDE,并通过 Web 浏览器进行访问,从而将 RStudio IDE 的强大功能和工作效率带到基于服务器的集中式环境中。 下面介绍在Linux docker中安装RStudio Server并结合cpolar内网…

JuiceFS 目录配额功能设计详解

JuiceFS 在最近 v1.1 版本中加入了社区中呼声已久的目录配额功能。已发布的命令支持为目录设置配额、获取目录配额信息、列出所有目录配额等。完整的详细信息,请查阅文档。 在设计此功能时,对于它的统计准确性,实效性以及对性能的影响&#…

工业交换机的“自适应”是什么意思?

工业交换机诸多性能指标中,我们常常看见有“自适应”这个指标。它到底是什么意思呢? 自适应也叫自动匹配、自协商,以太网技术发展到100M速率以后,出现了一个如何与原10M以太网设备兼容的问题,自协商技术就是为了解决这…

python中一些代码提速技巧

目录 用set而非list进行查找用dict而非两个list进行匹配查找优先使用for循环而不是while循环循环代替递归用缓存机制加速递归函数用numba加速Python函数使用collections.Counter加速计数使用collections.ChainMap加速字典合并使用map代替推导式进行加速使用filter代替推导式进行…

nacos2.0.2漏洞分析及解决方法

绕过鉴权情况 1. userAgentAuthWhite 设置为true,官方没有还没有解析为啥可以通过设置userAgent可以绕过鉴权 实验一 只要把请求header:User-Agent设置为:Nacos-Server,即可绕过鉴权 实验二 只要把请求header:User…

SpringBoot原理解析篇(一):parent 版本管理

SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来 简化 Spring 应用的初始搭建以及开发过程。 Spring 程序缺点:依赖设置繁琐、配置繁琐 SpringBoot 程序优点:起步依赖(简化依赖配置)、自动配置&#x…

查看当前目录下文件所占用内存 du -sh

1. du -sh 查看当前目录下文件所占用内存 2.查看当前文件夹下,每个文件所占用内存 du -ah --max-depth1/