我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【压测】通过Jemeter进行压力测试(超详细)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【压测】通过Jemeter进行压力测试(超详细)

背景

通过SpringCloudGateway整合Nacos进行负载均衡和动态路由选择。由于Nacos的服务发现有一定的延迟性,所以在服务突然挂机的时候,QPS较大的情况下,还是会有部分的请求进入到这个服务。为了解决这个问题,改写了一点点nacos基于ribbon的负载选择,通过筛选最近响应时间较短的服务进行路由选择。网关是一个项目的命脉,所以便需要进行压测。
在这里插入图片描述

一、前言

压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤,下面我带大家来使用一款压力测试工具JMeter。

二、关于JMeter

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

  • 官网:Apache JMeter - Download Apache JMeter
  • 这里我选用了 4.0 版本的二进制包:http://mirror.bit.edu.cn/apache//jmeter/binaries/apache-jmeter-4.0.zip

三、准备工作

  • 因为JMeter是使用JAVA写的,所以使用JMeter之前,先安装JAVA环境,本文就不讲安装JAVA环境了。主要就是安装JDK。

  • 解压下载的二进制包,进入bin目录,双击jmeter.bat启动程序。
    启动之后会有两个窗口,一个cmd窗口,一个JMeter的 GUI。前面不要忽略CMD窗口的提示信息:
    在这里插入图片描述

  • 启动后会看到JMeter界面,如下:
    在这里插入图片描述

  • 注意看CMD窗口的提示信息:

================================================================================Don't use GUI mode for load testing !, only for Test creation and Test debugging.For load testing, use NON GUI Mode:   jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]& increase Java Heap to meet your test requirements:   Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch fileCheck : https://jmeter.apache.org/usermanual/best-practices.html================================================================================
  • 上面的意思就是:不要使用GUI运行压力测试,GUI仅用于压力测试的创建和调试;执行压力测试请不要使用GUI。使用下面的命令来执行测试:
 jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
  • 并且修改JMeter批处理文件的环境变量:HEAP=“-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m”;这里根据你们的配置灵活设置
  • 更改语言为中文
    官方默认为我们提供了简体中文。通过 【Options】->【Choose Language】变更为简体中文

四、创建测试

4.1、创建线程组

在“测试计划”上右键 【添加】–>【Threads(Users)】–>【线程组】
在这里插入图片描述

设置线程数和循环次数。我这里设置线程数为500,循环一次
在这里插入图片描述

4.2、配置元件

在这里插入图片描述

配置我们需要进行测试的程序协议、地址和端口
在这里插入图片描述

注意:当所有的接口测试的访问域名和端口都一样时,可以使用该元件,一旦服务器地址变更,只需要修改请求默认值即可

4.3、构造HTTP请求

在“线程组”右键 【添加-】->【samlper】–>【HTTP 请求】设置我们需要测试的API的请求路径和数据。我这里是用的json
在这里插入图片描述

4.4、添加HTTP请求头

在我们刚刚创建的线程组上右键 【添加】–>【配置元件】–>【HTTP信息头管理器】。
因为我要传输的数据为json,所以设置一个 Content-Type:application/json
在这里插入图片描述

4.5、添加断言

  • 在我们刚刚创建的线程组上右键 【添加】–>【断言】–>【响应断言】。

  • 根据响应的数据来判断请求是否正常。我在这里只判断的响应代码是否为200。还可以配置错误信息

在这里插入图片描述

4.6、添加察看结果树

  • 在我们刚刚创建的线程组上右键 【添加】–>【监听器】–>【察看结果树】。

  • 直接添加,然后点击运行按钮就可以看到结果了。

在这里插入图片描述

4.7、添加Summary Report

  • 在我们刚刚创建的线程组上右键 【添加】–>【监听器】–>【Summary Report】。

  • 直接添加,然后点击运行按钮就可以看到结果了。
    在这里插入图片描述

为了不引起不必要的争论,隐藏了TPS。此数据不具备任何价值,仅仅为文章演示。

4.8、测试计划创建完成

记得点保存,这时候会生成一个pem的文件

五、执行测试计划

前面我们说过,执行测试计划不能用GUI,需要用命令行来执行。
在这里插入图片描述

我这里执行的命令为:

jmeter -n -t testplan/RedisLock.jmx -l testplan/result/result.txt -e -o testplan/webreport
  • testplan/RedisLock.jmx 为测试计划文件路径
  • testplan/result/result.txt 为测试结果文件路径
  • testplan/webreport 为web报告保存路径。
  • Web报告如下:

在这里插入图片描述

线程数量和循环次数将会影响最终的测试报告,如果服务器资源有限,注意采用阶梯测试。我下载的5.5版本的jemeter没有阶梯测试的插件,选择5.4.1的有,这里需要注意一下。

总结

对于压测,需要采取的策略是阶梯压测,然后让他持续一段时间,看看所测试的服务是否平滑且正常运行。

来源地址:https://blog.csdn.net/u011397981/article/details/129992968

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【压测】通过Jemeter进行压力测试(超详细)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

【压测】通过Jemeter进行压力测试(超详细)

文章目录 背景一、前言二、关于JMeter三、准备工作四、创建测试4.1、创建线程组4.2、配置元件4.3、构造HTTP请求4.4、添加HTTP请求头4.5、添加断言4.6、添加察看结果树4.7、添加Summary Report4.
2023-08-16

Linux怎么进行压力测试

这篇文章主要介绍“Linux怎么进行压力测试”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux怎么进行压力测试”文章能帮助大家解决问题。软件压力测试是一种基本的质量保证行为,它是每个重要软件测
2023-06-27

Android Monkey压力测试详细介绍

Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上。 Monkey会发送伪随机的用户事件流,适合对app做压力测试 阅读目录环境搭建什么是MonkeyMonkey
2022-06-06

怎么对Linux系统进行压力测试

这篇文章将为大家详细讲解有关怎么对Linux系统进行压力测试,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。为什么你会想给你的 Linux 系统施加压力呢?因为有时你可能想知道当一个系统由于大量运行的进程、
2023-06-15

Java如何使用jmeter进行压力测试

本篇内容介绍了“Java如何使用jmeter进行压力测试”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!jmeter测试计划配置:运行bin目
2023-06-20

如何通过Apache Bench实现web压力测试

本篇内容主要讲解“如何通过Apache Bench实现web压力测试”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何通过Apache Bench实现web压力测试”吧!一、Apache Ben
2023-06-03

Ubuntu中怎么使用ApacheBench进行压力测试

本文小编为大家详细介绍“Ubuntu中怎么使用ApacheBench进行压力测试”,内容详细,步骤清晰,细节处理妥当,希望这篇“Ubuntu中怎么使用ApacheBench进行压力测试”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
2023-06-27

Linux下如何使用JMeter进行压力测试

这篇文章主要为大家展示了“Linux下如何使用JMeter进行压力测试”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何使用JMeter进行压力测试”这篇文章吧。JMeter是Apa
2023-06-27

JMeter如何对MySQL数据库进行压力测试

这篇文章将为大家详细讲解有关JMeter如何对MySQL数据库进行压力测试,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、安装并配置 JMeter下载官网下载,下载二进制的这个 zip配置环境变量然后解
2023-06-28

如何进行阿里云服务器压力测试

1.选择合适的压力测试工具在进行阿里云服务器压力测试之前,首先需要选择一款合适的压力测试工具。常见的压力测试工具包括ApacheJMeter、LoadRunner、Gatling等。根据自己的需求和技术背景选择一款适合的工具。2.设置测试环境在进行压力测试之前,需要搭建一个与实际生产环境相似的测试环境。这包括配置好服务
2023-10-27

使用ab工具对服务器进行API压力测试

目录1 系统吞吐量的简单介绍2 测试方法2.1 客户端测试工具2.1.1 GET方法2.1.2 POST方法2.1.3 测试结果解读2.2服务器端检测方法3 实际测试3.1 shell脚本3.2 C++提取程序:使用了libxl.h4 测试
2022-06-04

怎样进行mysql sysbench1.0.3 安装以及系统压力测试

今天就跟大家聊聊有关怎样进行mysql sysbench1.0.3 安装以及系统压力测试,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。针对系统和数据库压测是项目上线前必做的一项,这
2023-06-06

APP压力稳定性测试中如何进行Monkey入门实战

APP压力稳定性测试中如何进行Monkey入门实战,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Monkey测试简介在android手机上做自动化测试,monkey比cts
2023-06-05

Linux系统中如何使用FIO对硬盘进行压力测试

这篇文章主要介绍Linux系统中如何使用FIO对硬盘进行压力测试,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!FIO是测试IOPS的非常好的工具,用来对磁盘进行压力测试和验证。磁盘IO是检查磁盘性能的重要指标,可以按
2023-06-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录