性能测试基础知识jmeter使用

news2024/12/26 22:21:25

   博客主页:花果山~程序猿-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.coloradmin.cn/o/2254240.html

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

相关文章

如何通过 Windows 自带的启动管理功能优化电脑启动程序

在日常使用电脑的过程中,您可能注意到开机后某些程序会自动运行。这些程序被称为“自启动”或“启动项”,它们可以在系统启动时自动加载并开始运行,有时甚至在后台默默工作。虽然一些启动项可能是必要的(如杀毒软件)&a…

基于PSO粒子群优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频&#xff09…

STM32 Jlink Flash读写固件数据

目录 一、从单片机读数据 1.创建工程XX.jflash,已经有的工程不需要创建直接打开 2.创建完成,连接jlink 3.读取整个芯片的数据 4.读取完成后保存数据 5.选择保存的数据格式,以及位置,读数据完成 二、写固件数据到单片机 1.创建工程XX.j…

Scrapy解析JSON响应v

在 Scrapy 中解析 JSON 响应非常常见,特别是当目标网站的 API 返回 JSON 数据时。Scrapy 提供了一些工具和方法来轻松处理 JSON 响应。 1、问题背景 Scrapy中如何解析JSON响应? 有一只爬虫(点击查看源代码),它可以完美地完成常规的HTML页面…

波动理论、传输线和S参数网络

波动理论、传输线和S参数网络 传输线 求解传输线方程 对于传输线模型,我们通常用 R L G C RLGC RLGC 来表示: 其中 R R R 可以表示导体损耗,由于电子流经非理想导体而产生的能量损耗。 G G G 表示介质损耗,由于非理想电介质…

鸿蒙开发——使用ArkTs处理XML文本

1、概 述 XML(可扩展标记语言)是一种用于描述数据的标记语言,旨在提供一种通用的方式来传输和存储数据,特别是Web应用程序中经常使用的数据。XML并不预定义标记。因此,XML更加灵活,并且可以适用于广泛的应…

微信小程序介绍-以及写项目流程(重要)

前言:本篇文章介绍微信小程序以及项目介绍: 文章介绍:介绍了微信小程序常用的指令、组件、api。tips:最好按照官方文档来进行学习,大致可以我的目录来学习,对于写项目是没有问题的 微信小程序官方文档https…

嵌入式蓝桥杯学习5 定时中断实现按键

Cubemx配置 打开cubemx。 前面的配置与前文一样,这里主要配置基本定时器的定时功能。 1.在Timer中点击TIM6,勾选activated。配置Parameter Settings中的预分频器(PSC)和计数器(auto-reload Register) 补…

特别分享!SIM卡接口功能及其电路设计相关注意事项

SIM卡接口功能及其电路设计相关注意事项对电子工程师来说非常重要。SIM卡接口用于连接SIM卡并读取SIM卡信息,以便在注册4G网络时进行鉴权身份验证,是4G通信系统的必要功能。 一、SIM卡接口功能描述 Air700ECQ/Air700EAQ/Air700EMQ系列模组支持1路USIM接…

OpenGL ES详解——文字渲染

目录 一、文字渲染 二、经典文字渲染:位图字体 1.概念 2.优缺点 三、现代文字渲染:FreeType 1.着色器 2.渲染一行文字 四、关于未来 一、文字渲染 当你在图形计算领域冒险到了一定阶段以后你可能会想使用OpenGL来绘制文字。然而,可能…

devops-Dockerfile+Jenkinsfile方式部署Java前后端应用

文章目录 概述部署前端Vue应用一、环境准备1、Dockerfile2、.dockerignore3、nginx.conf4、Jenkinsfile 二、Jenkins部署1、新建任务2、流水线3、Build Now 构建 & 访问 Springboot后端应用1. 准备工作2. 创建项目结构3. 编写 Dockerfile后端 Dockerfile (backend/Dockerfi…

VTK编程指南<三>:基于VTK入门程序解析来理解VTK基础知识

1、VTK入门程序 下面是一个完整的Vtk入门程序&#xff0c;我们基于这个程序来对VTK的基本知识进行一个初步了解。 #include <iostream>#include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL2);// VTK was built with vtkRenderingOpenGL2 VTK_MODULE_INI…

十二、消息队列-MQ

文章目录 前言一、MQ介绍1. 背景2. 解决思路3. 解决方案 二、应用场景三、常见的MQ产品四、MQ选型总结五、相关知识1. AMQP2. JMS 五、如何设计实现一个消息队列1. 设计消息队列的思路2. 实现队列基本功能1. RPC通信协议2. 高可用3. 服务端承载消息堆积的能力4. 存储子系统的选…

新手如何做好一份技术文档

对于新手来说&#xff0c;编写技术文档可能是一项挑战&#xff0c;但这也是一个提升自己技术写作能力的绝佳机会。技术文档不仅仅是代码的补充说明&#xff0c;它更是团队协作和项目成功的基石。本文将为你提供一些实用的指导和建议&#xff0c;帮助你编写出一份高质量的技术文…

如何设置PPT以“只读方式”打开?3种简单方法!

在PPT中设置文件为“只读”模式&#xff0c;可以防止自己意外修改&#xff0c;也可以防止他人对文件内容进行修改&#xff0c;确保文件的安全性。根据需求不同&#xff0c;PPT可以设置3种不同的”只读方式“&#xff0c;一起来看看吧&#xff01; 方式1&#xff1a;设置文件为只…

DICOM医学影象应用篇——多平面重建(MPR)在DICOM医学影像中的应用详解

目录 MPR(多平面重建)概述 基本原理 具体实现 代码详解 总结 MPR(多平面重建)概述 多平面重建&#xff08;MPR, Multi-Planar Reconstruction&#xff09;是一项用于从三维医学影像数据集中生成不同平面的二维切片的技术。通常应用于CT或MRI数据集&#xff0c;MPR可以帮助医…

Vue前端开发-多级路由配置

在Vue 路由数组中&#xff0c;允许配置多级的路由对象结构&#xff0c;可以是二级、三级或者更多级别&#xff0c;最大级别原则上没有限制&#xff0c;但通常最大的是三或四级&#xff0c;这种路由结构&#xff0c;称之为多级路由。 例如&#xff1a;一级路由地址/list&#x…

【二分查找】力扣 875. 爱吃香蕉的珂珂

一、题目 二、思路 速度 k&#xff08;单位&#xff1a;根/小时&#xff09;是存在一个取值范围的。 速度越大肯定在规定的时间之内一定会吃完全部的香蕉&#xff0c;但也是可以确定出一个上界的。由于只要保证一小时之内&#xff0c;可以吃完香蕉数目最多的那一堆的香蕉&…

C语言——指针基础

1 指针基础 怎么获得变量地址 1 如何产生一个指针变量——>类型* 标识符;int* p1;char* p2;double* p3;//不同类型的基本指针占用内存是一样的都是4个字节&#xff08;32位&#xff09;/8个字节&#xff08;64位&#xff09;&#xff0c;都是存的地址2 数组名是数组首地址…

Leetcode day1.两数相加(2) 2.整数反转(7)

注意点&#xff1a;1.链表会出现其中一个已经为空&#xff0c;另一个缺还是有数据 2.相加时会出现进位操作 解法一、 利用队列的性质&#xff08;基础不好 第一时间想到的&#xff09; 很像队列的性质&#xff0c;先进先出&#xff0c;逐步计算。但是最后要换成链表样式。 …