Apache JMeter压测工具

news2025/1/8 19:42:59

1.工具介绍

是什么

   JMeter是一个软件,使负载测试或业绩为导向的业务(功能)测试不同的协议或技术。 Apache软件基金会的Stefano Mazzocchi JMeter的最初的开发。他写道:它主要对 Apache JServ(现在称为如Apache Tomcat项目)的性能进行测试。Apache后来重新设计JMeter 增强的图形用户界面和添加功能测试能力。这是一个具有图形界面,使用Swing 图形API 的 Java 桌面应用程序,因此可以运行在任何环境/工作站接受一个Java 虚拟机,例如:在Windows,Linux,MAC等。

做什么

    Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

哪里下载(安装需要本地先安装JDK环境)

下载地址:http://jmeter.apache.org/download_jmeter.cgi

2.工具使用

http://www.jmeter.com.cn/2800.html

3.使用案例

     Jmeter线程组默认包含三种:线程组、setUp线程组、tearDown线程组。线程组之间的执行顺序为:setUp线程组->线程组→tearDown线程组。多数情况都是选用线程组,setUp线程组用于做一些脚本的前置准备,比如:跨线程组设计时,需要先登录,需要连接数据库等操作;tearDown线程组用于做一些脚本执行完后回收资源的操作;如:执行完脚本后需要注销测试数据,关闭数据库连接等操作。

在这里插入图片描述

线程属性:

线程数:配置几个就代表有几个虚拟用户

Ramp-Up 时间(秒):表示从第一个虚拟用户开始生成直到最后一个虚拟用户开始生成的时间,加入配置了5个虚拟用户,Ramp-Up 设置成10s,那么jmeter会每隔2s生成1个虚拟用户,这个选项主要的作用是控制并发的强度,不让虚拟用户在同一时间产生从而对系统造成多大的复杂,Ramp-Up设置成0,那么所有用户将会同时立即产生
循环数:要么是N次,要么是永远
调度器:就是定时执行的设置方式。我们可以设置在未来的某个时间开始执行也可以设置多少秒后开始执行。

登录接口http请求配置在这里插入图片描述####提取登录返回data数据中的token(使用正则方式):在这里插入图片描述提取登录返回data数据中的token(使用JSON提取器方式):在这里插入图片描述调试上面提取token是否正常获取到token值,通过调试取样器查看在这里插入图片描述

查询运营商基础信息,请求头设置上一步登录获取到的token值(在同一个线程组内)在这里插入图片描述查询运营商基础信息,请求头设置其他线程组登录获取到的token值(在不同的线程组内)
在这里插入图片描述
先将获取到的token设置成全局变量,注意:BeanShell后置处理程序必须要在JSON方式提取token值下面(可拖动移动顺序)
在这里插入图片描述
其他线程组设置token值
在这里插入图片描述

4.压测指标

平均值:响应时间的平均用时,单位是毫秒。比如这里的平均响应时间是6361毫秒
中位数:响应时间的中位数,单位是毫秒。
90%百分位:90%的响应时间小于该数值,单位是毫秒。这里有90%的响应时间小于12840毫秒
95%百分位:含义和90%类似
99%百分位:含义和90%类似
最小值:本轮测试最小响应时间,单位是毫秒。
最大值:本轮测试最大响应时间,单位是毫秒。
异常%:本轮测试出现异常的请求比例。
吞吐量:可以理解为QPS,即是我们测试的接口处理请求的能力。比如这里是平均每秒可以处理40.2次请求
接收KB/Sec:响应数据的接收速率
发送KB/Sec:请求数据的发送速率

RT:执行一个请求从开始到最后收到响应数据所花费的总体时间

QPS:代表每秒能响应的查询次数(查询:用户发出的请求到服务器做到响应成功的次数)QPS=并发数/RT 或者 并发数=QPS*RT

TPS:代表每秒处理的事务数,一个事务是指一个客户机向服务器发起请求,然后服务器做出反应的过程,客户机发起请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

一个系统,如果每天 80% 的访问集中在 20% 的时间里,这 20% 时间就叫做峰值时间。

公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器
1、每天300w PV 的在单台机器上,这台机器需要多少QPS?
( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)

2、如果一台机器的QPS是58,需要几台机器来支持?
139 / 58 = 3

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

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

相关文章

项目管理工具dhtmlxGantt入门教程(一):如何安装dhtmlxGantt

您可以使用 NuGet 、 Bower 或 npm 包管理器将 dhtmlxGantt 包安装到您的项目中,也可以从 CDN 中包含必要的 JS/CSS 文件。 DhtmlxGantt正版试用下载(qun:764148812)https://www.evget.com/product/4213/download NuGet 安装 dhtmlxGantt …

C++使用gRPC实例

什么是gRPC RPC 即远程过程调用协议(Remote Procedure Call Protocol),可以让我们像调用本地对象一样发起 远程调用。RPC 凭借其强大的治理功能,成为解决分布式系统通信问题的一大利器。 gRPC是一个现代的、高性能、开源的和语言…

Python数据分析实战-实现一维列表(数组)和多维列表(数组)的相互转化(附源码和实现效果)

前面我介绍了可视化的一些方法以及机器学习在预测方面的应用,分为分类问题(预测值是离散型)和回归问题(预测值是连续型)(具体见之前的文章)。 从本期开始,我将做一个数据分析类实战…

[附源码]计算机毕业设计springboot校园疫情管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

文件的上传与下载

文章目录一、 实验目的:二、实验要求:三、实验内容:1、单文件上传2、多文件上传3、上传文件的大小限定4、实现文件的下载功能,并解决下载乱码问题一、 实验目的: 掌握Servlet的HttpServletRequest对文件上传的支持&am…

内存管理---分页机制

目录 物理内存管理带来的问题 直接映射 一级页表 二级页表 参考: (C语言内存七)分页机制究竟是如何实现的? - Smah - 博客园 物理内存管理带来的问题 比如4GB的flash, 如果应用程序可直接访问物理内存,那么可能一个…

云小课|基于华为云WAF的日志运维分析,构筑设备安全的城墙

阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。 摘要:云日志服务用于收集来自主机和云服务的日志数据&#x…

windows安装docker版青龙面板

1.下载docker Docker Desktop 官方下载地址: windows docker 2 管理员运行PowerShell,执行下面的命令(Hyper-V 和容器特性) Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All3.运行第一步下载好的exe 双击下载的 Docker fo…

springboot基于vue.js的掌上博客系统的设计与实现毕业设计源码063131

Springboot掌上博客系统的设计与实现 摘 要 掌上博客系统是当今网络的热点,博客技术的出现使得每个人可以零成本、零维护地创建自己的网络媒体,Blog站点所形成的网状结构促成了不同于以往社区的Blog文化,Blog技术缔造了“博客”文化。 本文课…

恶补了 Python 装饰器的八种写法,你随便问~

对于每一个学习 Python 的同学,想必对 符号一定不陌生了,正如你所知, 符号是装饰器的语法糖,符号后面的函数就是我们本文的主角:装饰器。 装饰器放在一个函数开始定义的地方,它就像一顶帽子一样戴在这个…

Java---File详解

目录 一、File的概述 二、File的创建 三、File的常见成员方法 1:判断和获取 2:创建和删除 (1)createNewFile() (2)mkdir() (3)delete() 3&#xff1a…

高新技术企业认定条件

主要是评估企业的以下几个条件: 一是企业成立满一年以上,并且符合高企八大领域; 二是拥有核心自主知识产权,并且近一年高新产品的收入啊,需要占总收入的60%以上; 三是科技人员占当年职工总数的比例不低于…

mybatis学习:四、关联查询、缓存

7. 关联查询 7.1 准备工作: 数据库表: #订单表: create table tb_order (id INT AUTO_INCREMENT PRIMARY KEY,userid INT,createtime DATETIME,state VARCHAR(20) ) ENGINEInnoDB AUTO_INCREMENT1;#订单详情表 CREATE TABLE tb_orderdetail(…

[附源码]Python计算机毕业设计SSM酒店式公寓服务系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

[LeetCode 1769]移动所有球到每个盒子所需的最小操作数

题目描述 题目链接:[LeetCode 1769]移动所有球到每个盒子所需的最小操作数 有 n 个盒子。给你一个长度为 n 的二进制字符串 boxes ,其中 boxes[i] 的值为 ‘0’ 表示第 i 个盒子是 空 的,而 boxes[i] 的值为 ‘1’ 表示盒子里有 一个 小球。…

Gradle简单配置

写在前面:一开始配置gradle的时候,最好不要把他maven仓库配置在一起,前段时间配置公司项目身心俱疲。大部分公司里面用gradle都是配置的自己的仓库地址,所以有的东西就不要和网上的配置保持一致了,比如说这个仓库地址。…

网站都变成灰色了,它是怎么实现的?

大家好,我是二哥呀。 想必大家都感受到了,很多网站、APP 在昨天都变灰了。 先来感受一下变灰后的效果。 这种灰色的效果怎么实现的呢?如何做到图片、文字、按钮都变灰的效果呢? 方案 1,换一套灰色的 UI,…

Github限时开源24小时,Alibaba架构师内部最新发布SpringCloud开发手册

前言 微服务是SOA之后越来越流行的体系结构模式之一! 如果您关注行业趋势,就会发现,如今商业机构不再像几年前那样,开发大型应用程序,来管理端到端之间的业务功能,而是选择快速灵活的微服务。 ​ 通过微服务&#x…

Unity 之 后处理实现界面灰度效果(PostProcessing实现 | Shader实现)

Unity 之 后处理实现界面灰度效果前言一,Post Processing1.1 设置组件1.2 代码控制二,Shader材质实现2.1 原理API2.2 编写Shader2.3 编写代码2.4 实现效果效果展示前言 在Unity中实现后处理效果有两种方式:一种是通过使用Unity官方提供的Pos…

H3C AC三层组网架构,AP自动上线自动固化

核心交换机: [HX]dis cu [HX]dis current-configuration version 7.1.075, Alpha 7571 sysname HX irf mac-address persistent timer irf auto-update enable undo irf link-delay irf member 1 priority 1 dhcp enable lldp global enable system-working-mode standard xbar…