首页 > 系统相关 >使用spring boot压测查看机器cpu内存jvm

使用spring boot压测查看机器cpu内存jvm

时间:2023-07-20 21:36:37浏览次数:48  
标签:创建 压测 spring boot springframework 测试 org import

使用Spring Boot压测机器的CPU、内存和JVM


在这篇文章中,我将向你展示如何使用Spring Boot来压测机器的CPU、内存和JVM。这将帮助你了解应用程序在不同负载下的性能表现,并帮助你进行性能调优。

下面是整个过程的步骤概览:

步骤 操作
1 创建一个Spring Boot项目
2 添加压力测试相关的依赖
3 创建一个简单的REST接口
4 编写压力测试脚本
5 运行压力测试

现在让我们逐步来实现这些步骤。

1. 创建一个Spring Boot项目

首先,我们需要创建一个Spring Boot项目。你可以使用任何IDE或者使用Maven命令行来创建项目。项目的结构应该如下:

├── src
│   └── main
│       ├── java
│       └── resources
│           └── application.properties
└── pom.xml

2. 添加压力测试相关的依赖

接下来,我们需要为我们的项目添加一些压力测试相关的依赖。在pom.xml文件中添加以下依赖:

<dependencies>
    <!-- Spring Boot Web依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <!-- 压力测试相关依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
    <dependency>
        <groupId>io.gatling</groupId>
        <artifactId>gatling-app</artifactId>
        <version>3.6.0</version>
    </dependency>
</dependencies>

3. 创建一个简单的REST接口

我们需要创建一个简单的REST接口来进行测试。在src/main/java目录下创建一个Java类文件,命名为SampleController.java,并添加以下代码:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api")
public class SampleController {

    @GetMapping("/sample")
    public String sampleEndpoint() {
        return "Hello World!";
    }
}

这个接口将会在/api/sample路径下返回一个简单的字符串。

4. 编写压力测试脚本

接下来,我们需要编写一个压力测试脚本来模拟并发请求。在项目的根目录下创建一个名为sampleSimulation.scala的文件,并添加以下代码:

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._

class SampleSimulation extends Simulation {

    val httpProtocol = http
        .baseUrl("http://localhost:8080") // 修改为你的应用程序的URL
        .acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
        .doNotTrackHeader("1")
        .acceptLanguageHeader("en-US,en;q=0.5")
        .acceptEncodingHeader("gzip, deflate")
        .userAgentHeader("Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0")

    val scn = scenario("Sample Scenario") // 场景名称
        .exec(http("sampleRequest") // 请求名称
            .get("/api/sample")) // 请求路径

    setUp(
        scn.inject(
            constantUsersPerSec(10) during (1 minute) // 并发用户数和持续时间
        )
    ).protocols(httpProtocol)
}

在上面的代码中,我们使用了Gatling这个压力测试工具来编写测试脚本。你需要修改http.baseUrl的值为你的应用程序的URL。

5. 运行压力测试

最后,我们需要运行压力测试脚本。打开命令行工具,进入项目的根目录,执行以下命令:

mvn gatling:test -Dgatling.simulationClass=SampleSimulation

这会开始运行压

标签:创建,压测,spring,boot,springframework,测试,org,import
From: https://blog.51cto.com/u_16175511/6791818

相关文章

  • springboot
    这几天查阅了几十篇文章,总结了springboot的一些心得。一.Spring Boot 是什么从 2002 年开始,Spring 一直在飞速的发展,如今已经成为了在 Java EE 开发中真正意义上的标准,但是随着技术的发展,Java EE 使用 Spring 逐渐变得笨重起来,大量的 XML 文件存在于项目之中......
  • springboot元注解@Target@Retention@Documented
        @Target(ElementType.METHOD)是一个元注解,用来标注注解的作用目标。这里的@Target(ElementType.METHOD)表示该自定义注解可以用于方法上。@Retention(RetentionPolicy.RUNTIME)是一个元注解,用来标注注解的保留策略。这里的@Retention(RetentionPolicy.RUNTIME)表......
  • Spring Data JPA使用规则和自动审计的学习
    一、创建项目引入依赖完整的pom文件如下所示:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http:......
  • springboot学习之十一(统一返回结果)
    SpringBoot统一返回结果在实际开发中,为了降低开发人员之间的沟通成本,一般返回结果会定义成一个统一格式,具体的格式根据实际开发业务不同有所区别,但至少包括三要素:code状态码:由后端统一定义各种返回结果的状态码message描述:本次接口调用的结果描述data数据:本次返回的数据。{......
  • springboot i18n 国际化
    默认一:1、配置#主Springspring:messages:basename:i18n.rsltMessage,i18n.errorCodeMessage 2、多语言文件在resources下新建i18n文件夹 ,在在这个下面建立多语言:rsltMessage.propertiesrsltMessage_ar_SA.propertiesrsltMessage_en_US.propertiesrsltMe......
  • Spring框架
    day01-下载,概述.监听器Spring4学习路线第一天:Spring的概述,SpringIOC入门(XML),Spring的Bean管理,Spring属性注入第二天:Spring的IOC的注解方式,Spring的AOP开发(XML)第三天:Spring的AOP的注解开发,Spring的声明式事务,jdbcTemplate第四天:SSH的整合,HibernateTemplate的使用,OpenSessionInV......
  • JAVA面试之SpringMVC
    一、工作流程流程 1、用户发送请求至前端控制器DispatcherServlet 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、DispatcherServlet调用Han......
  • idea创建spring boot项目没有Spring Initializr
    使用Idea创建SpringBoot项目没有SpringInitializr的方法在使用Idea开发Java项目时,通常可以通过SpringInitializr来快速创建SpringBoot项目。但是,有些情况下我们可能无法使用SpringInitializr来创建项目,比如网络环境受限,无法访问SpringInitializr的在线服务。那么有没有其他......
  • SpringCloud实现浏览器端大文件分块上传
    ​ 1.创建SpringBoot项目本项目采用springboot+mybatis-plus+jquery+thymeleaf组成2.项目流程图 ​编辑3.在pom中添加以下依赖12345678910111213141516171819202122232425262728293031<!--lombok依赖-->  <dependency> ......
  • Vue+springboot集成PageOffice实现在线编辑Word、excel文档
    说明:PageOffice是一款在线的office编辑软件,帮助Web应用系统或Web网站实现用户在线编辑Word、Excel、PowerPoint文档。可以完美实现在线公文流转,领导批阅,盖章。可以给文件添加水印,在线安全预览防止用户下载和复制文件等一、环境要求前端Vue项目:Node.js10及以上版本(当前集成方式......