Jmeter 压测 QPS

news2024/11/28 23:53:43

文章目录

    • 1、准备工作
      • 1.1 Jmeter的基本概念
      • 1.2 Jmeter的作用
      • 1.3.Windows下Jmeter下载安装
      • 1.4 Jmeter的目录结构
      • 1.5 启动
      • 1.6 设置中文
        • 1.6.1 设置调整
        • 1.6.2 配置文件调整(一劳永逸)
    • 2、Jmeter线程组基本操作
      • 2.1 线程组是什么
      • 2.2 线程组
        • 2.2.1 创建线程组
        • 2.2.2 设置线程组
      • 2.3 创建http请求
        • 2.3.1 指定请求域名,请求路径
        • 2.3.2 设置请求头信息
      • 2.4 设置对应的查看内容
    • 3、 测试方法概论
    • 4、结果树
    • 5、图形结果

1、准备工作

1.1 Jmeter的基本概念

Apache JMeter是Apache组织开发的基于Java的压力测试工具。

1.2 Jmeter的作用

  1. 接口测试
  2. 性能测试
  3. 压力测试
  4. 接口自动化测试
  5. 数据库测试
  6. JAVA程序测试

1.3.Windows下Jmeter下载安装

登录 http://jmeter.apache.org/download_jmeter.cgi ,根据自己平台,下载对应文件

在这里插入图片描述

1.4 Jmeter的目录结构

/bin 目录(常用文件介绍)
examples:目录下包含Jmeter使用实例
ApacheJMeter.jar:JMeter源码包
jmeter.bat:windows下启动文件
jmeter.sh:Linux下启动文件
jmeter.log:Jmeter运行日志文件
jmeter.properties:Jmeter配置文件
jmeter-server.bat:windows下启动负载生成器服务文件
jmeter-server:Linux下启动负载生成器文件
/docs目录——Jmeter帮助文档
/extras目录——提供了对Ant的支持文件,可也用于持续集成
/lib目录——存放Jmeter依赖的jar包,同时安装插件也放于此目录
/licenses目录——软件许可文件,不用管
/printable_docs目录——Jmeter用户手册

1.5 启动

在这里插入图片描述

1.6 设置中文

1.6.1 设置调整

在这里插入图片描述

1.6.2 配置文件调整(一劳永逸)

第二种方法就可以一劳永逸,设置一次后,后面每次打开jmeter都是中文。在jmeter安装路径bin目录下面找到jmeter.properties文件(也可以在bin目录下面直接搜索jmeter.properties),用编辑器打开

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最后,重新启动jmeter,页面就变成中文啦!

2、Jmeter线程组基本操作

2.1 线程组是什么

  • 进程: 一个正在执行的程序对应一个进程
  • 线程: 一个进程有多个执行线程
  • 线程组: 按照线程性质对线程分组
  • 三者关系: 一个进程有多个线程组,一个线程组有多个线程
  • 测试计划—线程组—线程组属性中的线程数
  • 并发执行:多个线程同时执行,特点:执行结束的顺序与开始的顺序不一致
  • 顺序执行:按照线程的启动顺序挨个执行
  • 默认情况下,线程组中的线程是并发执行
  • 每一个线程都要执行组内的http请求
  • 设置线程组顺序执行:勾选测试计划中的(独立运行每个线程组)
  • 线程组用来模拟用户的并发访问

2.2 线程组

2.2.1 创建线程组

在这里插入图片描述

  • 线程组主要包含三个参数:线程数、准备时长(Ramp-Up Period(in seconds))、循环次数。
  • 线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
  • 准备时长(秒):设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为10 ,那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。
  • 循环次数:每个线程发送请求的次数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
  • 调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)
  • 持续时间(秒):测试持续时间,会覆盖结束时间
  • 启动延迟(秒):测试延迟启动时间,会覆盖启动时间
  • 启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。
  • 结束时间:测试结束时间,持续时间会覆盖它。

2.2.2 设置线程组

在这里插入图片描述

2.3 创建http请求

在这里插入图片描述

2.3.1 指定请求域名,请求路径

在这里插入图片描述

  • 一个HTTP请求有着许多的配置参数,下面将详细介绍:
  • 名称:本属性用于标识一个取样器,建议使用一个有意义的名称。
  • 注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。
  • 服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址。
  • 端口号:目标服务器的端口号。
  • 方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
  • Content encoding :内容的编码方式,默认值为iso8859
  • 路径:目标URL路径(不包括服务器地址和端口)

2.3.2 设置请求头信息

在这里插入图片描述

2.4 设置对应的查看内容

在这里插入图片描述

3、 测试方法概论

首先定一个响应时间的目标,计算压测接口的平均响应时间,本测的压测接口平均响应时间为30ms,其次根据这个响应时间找到能满足的最大线程数与合适的测试时间。我认为聚合报告中的吞吐量就是QPS(每秒查询数)

我们可以通过 1000ms/30ms = 33 ,粗略计算出1秒内同一个线程可以循环调用该接口的次数大概为33次,那么我们可以先将线程的循环次数设置为33

逐步增加线程,直到满足响应时间的最大线程数

在这里插入图片描述

  • Sample:每个请求的序号
  • Start Time:每个请求开始时间
  • Thread Name:每个线程的名称
  • Label:Http请求名称
  • Sample Time:每个请求所花时间,单位毫秒
  • Status:请求状态,如果为勾则表示成功,如果为叉表示失败。
  • Bytes:请求的字节数
  • 样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数
  • 平均:每个线程请求的平均时间
  • 最新样本:表示服务器响应最后一个请求的时间
  • 偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。

我这里是5台服务器做的负载,最终测试的最好结果是7200线程,循环次数为42次,QPS为6383/sec。

12345
配置CPU: 8核
内存: 32GB
数据盘: 200GB
CPU: 8核
内存: 32GB
数据盘: 200GB
CPU: 4核
内存: 8GB
数据盘: 100GB
CPU: 4核
内存: 8GB
数据盘: 100GB
CPU: 4核
内存: 8GB
数据盘: 100GB

4、结果树

通过结果树,可以查看接口请求失败和成功各自的请求和响应情况,来帮助我们分析系统在高并发场景中的运行情况。

在这里插入图片描述
通过察看结果树,我们可以看到每个请求的结果,其中红色的是出错的请求,绿色的为通过。

  • Thread Name:线程组名称
  • Sample Start: 启动开始时间
  • Load time:加载时长
  • Latency:等待时长
  • Size in bytes:发送的数据总大小
  • Headers size in bytes:发送数据的其余部分大小
  • Sample Count:发送统计
  • Error Count:交互错误统计
  • Response code:返回码
  • Response message:返回信息
  • Response headers:返回的头部信息

5、图形结果

在这里插入图片描述
样本数目:总共发送到服务器的请求数。

最新样本:代表时间的数字,是服务器响应最后一个请求的时间。

吞吐量:服务器每分钟处理的请求数。

平均值:总运行时间除以发送到服务器的请求数。

中间值:有一半的服务器响应时间低于改值而另一半高于该值。

偏离:表示服务器响应时间变化、离散程度测量值的大小。

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

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

相关文章

原型part学习NeurIPS2019

当我们面临具有挑战性的图像分类任务时,我们希望通过分解part来解释推理。每一类别的更多原型证据有助于做出最终分类决策。作者提出一种深度网络架构:Prototypical Part网络即ProtoPNet。网络通过寻找原型part来解释图像,并基于原型part进行…

同步 Swagger URL问题, 用这个插件就可解决

这个开源的 API 管理工具叫 Postcat, 支持从 Swagger URL 增量同步 API 数据到 Postcat。 使用 进入 API 模块,鼠标移动到主按钮加号,下拉看到从 Swagger 同步 URL 的选项。 填写完配置点击立即同步即可同步 API 数据。 同步规则 新的数据覆盖旧的数据…

PHP语言调用api接口,电商平台商品详情接口(封装可高并发)

PHP是为Web而生的语言,它提供了一些强大的内置函数来处理HTTP请求和响应。PHP为开发人员提供了一些Web开发工具,包括HTML、CSS、JavaScript以及各种数据库的连接和互动。与其他Web开发工具相比,PHP可以更加高效地运转与发挥作用。 PHP表现出…

Matlab 非线性迭代法(3)阻尼牛顿法 L-M

高斯牛顿法详解_我只是一只自动小青蛙的博客-CSDN博客 一、思想 先看一下牛顿高斯迭代法的缺点: 1、在计算的过程中可能会出现奇异矩阵(不满秩),比如:J(k)​)TJ(k) 为病态矩阵的时候就不能得到正确的解,或…

如何提升性能测试效能

上周六应邀在天津devops峰会的质量内建专场做了一次分享,主题是《稳定性保障利器:全链路压测》。 其中关于全链路压测对质量内建的意义,我做了一个总结,如下图所示。本文基于下图做了展开描述,仅供参考。 如何理解性能…

从零开始Vue3+Element Plus后台管理系统(八)——模仿禅道做一个Vue3版本的高级查询组件

暗黑模式 使用 Vue3element Plus 简单模仿了禅道系统的高级搜索组件,说简单也有点复杂,还没有完全开发完,但是大体架子有了,剩下一些功能点继续coding。边开发边记录吧,因为这个相比之前的内容确实复杂一些&#xff0c…

Java的基操,基操(一)

🔥二进制🔥二进制和十进制的转化🔥注释🔥标识符🔥关键字/保留字🔥变量(variable) 🔥二进制 二进制,是计算技术中广泛采用的一种数制,由德国数理哲学大师莱布尼茨于 1679 …

Helm chart 常用命令以及原理和生产实践

问: 到哪里去搜索helm package? 答: artifacthub.io Helm 的实质就是搞一些模版,最终依据这些模版生成k8s的系列yaml文件(deployemnt,service,secret,map等等),从而在k8s上能够简单部署出完整应用。可以用helm template查看最终生成的k8s部署文件。 helm version…

MQTT客户端应用编程及接口分析

MQTT客户端应用编程及接口分析 MQTT协议简介 MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。 客户端服务端安装 1.安装 sudo apt-add-repository ppa:mosquitto-dev/mosquitto-…

SpringCloud_服务注册中心_Consul(八)

SpringCloud_服务注册中心_Consul(八) 分为五部分 Consul简介 安装并运行Consul 服务提供者 服务消费者 三个注册中心异同点 Consul简介 官网:https://developer.hashicorp.com/consul/docs/intro 是Go语言写的 Consul是一套开源的分布式服务发现和配置管理系统&am…

GB50312-2016标准中需要检测的参数(AEMFLUKE)含双绞线和光

很多同学经常搞不清GB50312-2016标准的规定测试参数,或者说和测试设备对不上号。特意从标准中摘抄出来,供大家参考。 ACR-F(Attenuation to Crosstalk Ratio at the Far-end) 衰减远端串音比 ACR-N(Attenuation to Crosstalk Ratio at the Near-end)衰…

用于申威Alpha指令集处理器CModel裸机(不带操作系统)的CoreMark性能测试程序源码编译流程

CoreMark是一个综合基准,用于测量嵌入式系统中使用的中央处理器(CPU)的性能。它是在2009由eembc的shay gal-on开发的,并且试图将其发展成为工业标准,取代过时的dehrystone基准。代码用C编写,包含以下算法:列表处理(增删…

如何在Colab中使用gpu资源(附使用MMdet推理示例)

如何在Colab中“白嫖”gpu资源(附使用MMdet推理示例) Google Colab简介 当今,深度学习已经成为许多人感兴趣的话题,Google Colab(全称为Google Colaboratory)是Google推出的一个强大的云端 notebook&…

《微服务实战》 第七章 Spring Cloud 之 GateWay

前言 API 网关是一个搭建在客户端和微服务之间的服务,我们可以在 API 网关中处理一些非业务功能的逻辑,例如权限验证、监控、缓存、请求路由等。 1、通过API网关访问服务 客户端通过 API 网关与微服务交互时,客户端只需要知道 API 网关地…

UWB智慧工厂人员定位系统源码,人员在岗监控、车辆实时轨迹监控源码

近年来人员定位系统在工业领域的发展势头迅猛,工业识别与定位成为促进制造业数字化的关键技术。通过实时定位可以判断所有的人、物、车的位置。实时定位系统要适用于复杂工业环境,单一技术是很难实现的,需要融合多种不同的定位技术&#xff0…

【hive】hive grouping sets和GROUPING__ID的用法

前言​ GROUPING SETS,GROUPING__ID,CUBE,ROLLUP 这几个分析函数通常用于OLAP中,不能累加,而且需要根据不同维度上钻和下钻的指标统计,比如,分小时、天、月的UV数。 grouping sets根据不同的维度组合进行聚合,等价于…

从事网络安全工作,这五大证书是加分项!

对我们而言,无论从事什么工作,考取相关证书都有非常重要的作用,它是我们找工作时的加分项,同时也是对我们技术水平的验证,那么从事网络安全工作可以考哪些证书?本篇文章为大家介绍一下。 1、CISP 国家注册信息安全专业…

vue3【父子组件间的传值--setup语法糖】

这篇文章主要讲解vue3语法糖中组件传值的用法、 一、父组件给子组件传值 父组件 <template><div classmain>我是父组件<Child :msg"parentMsg"></Child></div></template><script setup> import Child from ./child im…

idea热部署插件JRebel激活

JRebel可以实现在idea中热部署项目&#xff0c;修改后不用重启项目&#xff0c;让开发更丝滑。 JRebel需要激活才可以正常使用。 不想安装服务的可以用我个人部署的服务器注册&#xff0c;不保证稳定哦&#xff0c;有问题可以留言。 安装完插件直接看激活。 http://121.5.183.2…

亲水性Sulfo-Cyanine3 NHS ester水溶性CY3标记活性脂

Sulfo-Cy3是一种荧光染料&#xff0c;可用于生物成像和细胞标记等应用。Sulfo-Cy3是一种含有硫酸基的Cy3染料&#xff0c;具有高度的水溶性和稳定性。Sulfo-Cy3可以与NHS&#xff08;N-羟基琥珀酰亚胺&#xff09;结合&#xff0c;形成Sulfo-Cy3 NHS&#xff0c;这种结合物可以…