zoukankan      html  css  js  c++  java
  • 单机Web后端接口服务压力测试

    单机Web后端接口服务压力测试


    工具:Apache jmeter
    环境:Window 10
    语言:Kotlin + java
    架构:SpringBoot + + Mysql + redis + Spring Data JPA + Hibernate

    1、接口展示

    // controller层
    
        @Api("系统信息")
        @RestController
        @RequestMapping("api/app/system")
        class AppSystemController {
        
            @Resource
            private lateinit var systemService: SystemService
        
            @ApiOperation("获取Q博士相关信息")
            @GetMapping("query_qboshi")
            fun queryQboshiExplain():AboutQboshiModel {
                return systemService.getAboutExplain()
            }
        
            @ApiOperation("获取团队说明")
            @GetMapping("group_get")
            fun getGroupExplain(): ExplainModel {
                return systemService.getGroupExplain()
            }
        }
    
    // Service层
        fun getAboutExplain(): AboutQboshiModel {
            val set = settingsRepository.findSettingsEntityByKeyEquals(SettingsEntity.KEY_ABOUT_QBOSHI)
                    ?: throw BadRequestException("暂无相关信息")
            return set.value.fromJson<AboutQboshiModel>() ?: throw BadRequestException("暂无相关信息")
        }
    
    
    // Dao层
    @Repository
        public interface SettingsRepository extends JpaRepository<SettingsEntity, Long> {
            SettingsEntity findSettingsEntityByKeyEquals(String key);
        }
    

    其中数据在Mysql中的存储格式为Json,所以从DB中读取数据后还要进行一次转化处理,这有可能出现性能瓶颈,但目前对于该项目来说,已经完全足够支撑流量了。

    2、jmeter

    下图首先是建立线程组,可以看到,这里我建立了200个线程数,在2s内启动,每条线程循环1000次,为什么只建立200个线程数呢,因为200就已经把我的CPU吃满了,汗。

    cmd-markdown-logo

    下图为建立http请求,因为我也是第一次使用jmeter进行测试,所以使用不熟悉。

    cmd-markdown-logo

    下面为结果,可以看到,一共20万条数据,每条数据的响应时间是49ms,但是最大值到了3K多,浮动非常大,吞吐量在3800/sec左右,在跑数据的过程中,本机内存占用量在80%,内存为8g,可能是我应用开多了。

    cmd-markdown-logo

    下图是图形化结果,因为是第一次使用jmeter,所以特此记录下来,结果并不好看,对于这个接口来说,没有用一些支持高并发的架构。

    cmd-markdown-logo

  • 相关阅读:
    判断两个对象是否相同
    参数的修饰符
    异常处理
    类型转换
    值类型和引用类型
    抽象方法实现计算器
    静态
    多态
    访问修饰符
    面向对象三大特性
  • 原文地址:https://www.cnblogs.com/tian874540961/p/11922706.html
Copyright © 2011-2022 走看看