本文介绍: 压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试一个非常重要的步骤,下面我带大家使用一款压力测试工具JMeter。对于压测需要采取的策略是阶梯压测然后让他持续一段时间看看所测试的服务是否平滑且正常运行

背景

通过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服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。

三、准备工作

================================================================================
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 file
Check : 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]

四、创建测试

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、添加断言

在这里插入图片描述

4.6、添加察看结果

在这里插入图片描述

4.7、添加Summary Report

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

4.8、测试计划创建完成

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

五、执行测试计划

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

这里执行的命令为:

jmeter -n -t testplan/RedisLock.jmx -l testplan/result/result.txt -e -o testplan/webreport

在这里插入图片描述

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

总结

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

原文地址:https://blog.csdn.net/u011397981/article/details/129992968

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_32076.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注