性能测试基础知识jmeter使用

   博客主页:花果山~程序猿-CSDN博客

文章分栏:测试_花果山~程序猿的博客-CSDN博客

关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长!

在这里插入图片描述

目录

性能指标

1. 并发数 (Concurrency)

2. 吞吐量 (Throughput) / QPS (Queries Per Second)

3. 响应时间 (Response Time)

指标之间的关系

性能测试分类

基准测试

并发测试

负载测试

压力测试

jmeter安装

配件之间的优先级

网页请求默认值

JSON提取器 

登录配置元件

形成测试报告


嗨!收到一张超美的图,愿你每天都能顺心!

性能指标概念

1. 并发数 (Concurrency)

定义:并发数指的是在同一时刻向系统发起请求的用户或线程的数量。换句话说,它表示的是系统在某一瞬间正在处理的请求数量。

重要性:高并发数意味着系统需要同时处理更多的请求,这对服务器资源(如CPU、内存)提出了更高的要求。测试时设置合理的并发数可以帮助模拟真实的用户负载情况,评估系统在压力下的表现。

2. 吞吐量 (Throughput) / QPS (Queries Per Second)

定义:
- 吞吐量:是指单位时间内系统能够处理的工作量,通常以每秒完成的请求数来衡量
- QPS(每秒查询次数):是吞吐量的一种具体表现形式,特指每秒钟内系统处理的HTTP请求或其他类型的操作数量

重要性:吞吐量是衡量系统性能的关键指标之一。一个高性能的应用程序应该能够在高并发的情况下保持较高的吞吐量。通过监控和优化吞吐量,可以确保系统在面对大量请求时依然能快速响应。

注意:吞吐量不仅取决于系统的处理能力,还受到网络带宽、数据库访问速度等多种因素的影响。

3. 响应时间 (Response Time)

定义:响应时间是从客户端发送请求到接收到完整响应之间的时间间隔。它可以分为几个阶段:
- DNS解析时间
- 建立TCP连接的时间
- SSL握手时间(如果是HTTPS)
- 发送请求时间和接收响应时间

重要性:响应时间直接影响用户的体验。较短的响应时间意味着更好的用户体验;而过长的响应时间可能会导致用户流失。因此,在性能测试中,我们需要特别关注平均响应时间、最大响应时间以及90%响应时间等统计值。

指标之间的关系

- 并发数与吞吐量:一般来说,随着并发数的增加,吞吐量也会相应提高,但超过一定阈值后,由于资源耗尽或瓶颈问题,吞吐量可能会开始下降。
- 吞吐量与响应时间:当吞吐量增加时,如果系统资源足够且没有达到瓶颈,响应时间可能保持稳定甚至缩短。然而,一旦超过了系统的承载极限,响应时间往往会急剧增加。
- 并发数与响应时间:在低并发情况下,响应时间通常较短;但是,随着并发数的增长,如果没有足够的资源支持,响应时间会逐渐变长。

性能测试分类

基准测试

定义:基准测试是指在系统或应用的特定配置下,通过执行一系列标准的操作来测量其性能,并记录下这些操作的结果作为参考点(即“基准”)。这些结果通常包括响应时间、吞吐量等关键性能指标。

我的理解是:在做(代码修改,软件更新后),可以通过重新运行相同的测试来比较新的性能数据与原始基准,以确定改进效果。

并发测试

定义:并发测试旨在验证系统在多个用户同时访问的情况下是否能够正确处理请求,以及这种情况下系统的性能表现如何。

理解:它关注的是在并发状态下,系统能否保持一致性和准确性,即使是在高并发条件下。

负载测试

定义:负载测试是指向系统施加逐渐增加的工作负载,直到达到预期的最大容量为止。目的是观察系统在正常工作负载及超出常规范围时的行为,包括响应速度、资源利用率等方面。

理解:从目的角度出发:

  • 确定最大承载能力:找出系统在不降低服务质量的前提下所能承受的最大用户数量或交易量
  • 预测扩展需求:基于测试结果预估未来业务增长所需的额外资源或架构调整

压力测试

定义:压力测试是将系统置于极端条件之下,例如非常高的并发用户数、长时间持续运行或者资源极度匮乏的状态,以检验系统在这种环境下是否仍然稳定可靠,并且能够在恢复正常状态后继续正常运作。

理解目的:

  • 发现极限和恢复点:识别出导致系统崩溃或严重性能下降的具体阈值;同时确认系统从故障中恢复的能力。
  • 确保容错性:验证系统设计中的容错机制(熔断,功能降级)是否有效,在面对意外情况时能否保护数据完整性和用户体验。

jmeter安装

看这位童鞋 

Jmeter安装教程【5.5】【Windows】jmeter详细安装配置教程,装不好你打我-CSDN博客

配件之间的优先级

首先咱讲一下优先级,学过编程的知道变量的作用域 ,这里的也是如此,在最外层就是全局变量,一旦设置,全局受用;这里多用来存放url,或者特殊参数头的存放点;并支持覆盖.

网页请求默认值

我的理解是,在未来面对数以百记得的网页请求页,我们需要设置基本默认信息,这里就使用到网页请求默认值。

JSON提取器 

关于cookie值获取,这里就是告诉咱,如何从结果中保存一个数据到外部作用域中,这里就用到了JSON提取器,提取结果储存到一个全局变量中。

登录配置元件

CSV提交信息,场景1:多账号登录,登录信息从csv文件中获取

cookie管理器,比自己保存到全局,然后再调用变量更方便,cookie管理器会自动提取cookie,并作用于未来线程

插件使用 

从官网上下载jmeter-plugins-manager.jar放到jmeter/lib下,重启jmeter,

点击插件即可下载插件

形成测试报告

进入cmd,存放.jmx的目录中,方便操作,输入代码:

jmeter -n -t /path/to/testplan.jmx -l /path/to/resultsfile.jtl -e -o /path/to/outputfolder

输入代码后,他会启动jmeter进行实时测试,中间需要等待其测试完毕,即可得到最新的测试报告。 

  • -n:以非GUI模式运行JMeter。
  • -t:指定要运行的测试计划文件路径。
  • -l :  生成日志文件地址
  • -e : 生成html测试报告
  • -o : 存放html文件的地址

结语

本小节就到这里了,感谢小伙伴的浏览,如果有什么建议,欢迎在评论区评论,如果给小伙伴带来一些收获,请动动你发财的小手点个免费的赞,你的点赞和关注永远是博主创作的动力源泉。

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

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

相关文章

AWS创建ec2实例并连接成功

aws创建ec2实例并连接 aws创建ec2并连接 1.ec2创建前准备 首先创建一个VPC隔离云资源并且有公有子网 2.创建EC2实例 1.启动新实例或者创建实例 2.创建实例名 3.选择AMI使用linux(HVM) 4.选择实例类型 5.创建密钥对下载到本地并填入密钥对名称 6.选择自己创建的VPC和公有子网…

Flutter提示错误:无效的源发行版17

错误描述 Flutter从3.10.1 升级到3.19.4,在3.10.1的时候一切运行正常,但是当我将Flutter版本升级到3.19.4后,出现了下方的错误 FAILURE: Build failed with an exception.* What went wrong: Execution failed for task :device_info_plus:…

Android ConstraintLayout 约束布局的使用手册

目录 前言 一、ConstraintLayout基本介绍 二、ConstraintLayout使用步骤 1、引入库 2、基本使用,实现按钮居中。相对于父布局的约束。 3、A Button 居中展示,B Button展示在A Button正下方(距离A 46dp)。相对于兄弟控件的约束…

2025年申报建筑工程副高职称需要准备什么材料呢?

2025年湖北职称评审可以开始准备了,千万不要等到明临时报名开始才想起来准备哟,都是要提前的。 职称分为五个级别:技术员、初级职称、中级职称、副高职称、高级职称 我们最常见评审的就是中级职称和副高职称评审了,今天一起来看下…

“原批教育家”原批之星鲁健的杰作——原批俱乐部

伟大的原批教育家——原批之星,名为鲁健,是一位在南京邮电大学智能科学与技术专业中崭露头角的杰出人物。他不仅以其卓越的黑客技术和对网络正义的执着而闻名,更是“远古四神”之一,以其对原批之力的深刻理解和不同见解&#xff0…

底层逻辑之:欧拉-拉格朗日方程(Euler-Lagrange equations)变分法(Calculus of Variations)的核心思想

0前言: 0.1 17世纪的泛函(Functional)分析与变分法(Calculus of Variations) 在17世纪,数学家们开始遇到一些需要处理函数集合的问题,这些问题涉及到函数的极值、曲线的长度、曲面的面积等。这…

大数据实验E5HBase:安装配置,shell 命令和Java API使用

实验目的 熟悉HBase操作常用的shell 命令和Java API使用; 实验要求 掌握HBase的基本操作命令和函数接口的使用; 实验平台 操作系统:Linux(建议Ubuntu16.04或者CentOS 7 以上);Hadoop版本:3…

微信小程序3-显标记信息和弹框

感谢阅读,初学小白,有错指正。 一、实现功能: 在地图上添加标记点后,标记点是可以携带以下基础信息的,如标题、id、经纬度等。但是对于开发来说,这些信息还不足够,而且还要做到点击标记点时&a…

一个有意思pytorch的简单应用小实验

通过一个简单的脚本,来学习pytorch的基本应用,比如:前向传播、反向传播、学习率以及预测、模型的基本原理和套路。 得到结果。。。保存模型。。。输入参数。。。预测。。。像不像?。。。像多少?。。。 设计目标&#x…

SpringBoot 分层解耦

从没有分层思想到传统 Web 分层,再到 Spring Boot 分层架构 1. 没有分层思想 在最初的项目开发中,很多开发者并没有明确的分层思想,所有逻辑都堆砌在一个类或一个方法中。这样的开发方式通常会导致以下问题: 代码混乱&#xff1…

2024 数学建模国一经验分享

2024 数学建模国一经验分享 背景:武汉某211,专业:计算机科学 心血来潮,就从学习和组队两个方面指点下后来者,帮新人避坑吧 2024年我在数学建模比赛中获得了国一(教练说论文的分数是湖北省B组第一&#xff0…

Linux 35.6 + JetPack v5.1.4之RTP实时视频Python框架

Linux 35.6 JetPack v5.1.4之RTP实时视频Python框架 1. 源由2. 思路3. 方法论3.1 扩展思考 - 慎谋而后定3.2 扩展思考 - 拒绝拖延或犹豫3.3 扩展思考 - 哲学思考3.4 逻辑实操 - 方法论 4 准备5. 分析5.1 gst-launch-1.05.1.1 xvimagesink5.1.2 nv3dsink5.1.3 nv3dsink sync05…

渤海证券基于互联网环境的漏洞主动防护方案探索与实践

来源:中国金融电脑 作者:渤海证券股份有限公司信息技术总部 刘洋 伴随互联网业务的蓬勃发展,证券行业成为黑客进行网络攻击的重要目标之一,网络攻击的形式也变得愈发多样且复杂。网络攻击如同悬于行业之上的达摩克利斯之剑&…

隐私安全大考,Facebook 如何应对?

随着数字时代的到来和全球互联网用户的快速增长,隐私安全问题已上升为网络世界的重要议题。社交媒体巨头Facebook因其庞大的用户群体和大量的数据处理活动,成为隐私问题的聚焦点。面对隐私安全的大考,Facebook采取了一系列策略来应对这些挑战…

04 创建一个属于爬虫的主虚拟环境

文章目录 回顾conda常用指令创建一个爬虫虚拟主环境Win R 调出终端查看当前conda的虚拟环境创建 spider_base 的虚拟环境安装完成查看环境是否存在 为 pycharm 配置创建的爬虫主虚拟环境选一个盘符来存储之后学习所写的爬虫文件用 pycharm 打开创建的文件夹pycharm 配置解释器…

旅游管理系统的设计与实现

文末获取源码和万字论文,制作不易,感谢点赞支持。 毕 业 设 计(论 文) 题目:旅游管理系统的设计与实现 摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候&#…

QT 中 sqlite 数据库使用

一、前提 --pro文件添加sql模块QT core gui sql二、使用 说明 --用于与数据库建立连接QSqlDatabase--执行各种sql语句QSqlQuery--提供数据库特定的错误信息QSqlError查看qt支持的驱动 QStringList list QSqlDatabase::drivers();qDebug()<<list;连接 sqlite3 数据库 …

HENU祖传课堂测试第三弹:Java的文件输入输出

题目&#xff1a;设定文件file1内容&#xff1a;年级,班级&#xff0c;学号&#xff0c;姓名分为四行。 读取文件file1中的内容&#xff0c;若其字符<3个将其转入file2,如若是字符&#xff1e;3个转入file3 代码如下 import java.io.*; import java.nio.file.*; import j…

React Native 速度提升 550%

React Native 爱好者们!🌟 您准备好听一些激动人心的消息了吗?React Native 刚刚发布了其最大的更新之一:一种全新的架构,彻底改变了我们构建移动应用程序的方式。如果您想知道这对您的项目和开发体验意味着什么,请继续关注!我们正在深入探讨这个改变游戏规则的事物;您…

Qt中的 tableView 设置 二进制 十六进制 序号表头

二 进制序号 因为QTableView的垂直表头并不支持使用委托来自定义。 相反&#xff0c;可以通过将自定义的QWidget作为QHeaderView的标签来实现这一目标。 代码&#xff1a; #include <QApplication> #include <QMainWindow> #include <QVBoxLayout> #include …