单机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吃满了,汗。

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

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

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

单机Web后端接口服务压力测试的更多相关文章

  1. Web 应用性能和压力测试工具 Gor - 运维生存时间

    Web 应用性能和压力测试工具 Gor - 运维生存时间 undefined 无需花生壳,dnspod实现ddns - 推酷 undefined

  2. 使用COSBench工具对ceph s3接口进行压力测试--续

    之前写的使用COSBench工具对ceph s3接口进行压力测试是入门,在实际使用是,配置内容各不一样,下面列出 压力脚本是xml格式的,套用UserGuide文档说明,如下 有很多模板的例子,在co ...

  3. python学习笔记(threading接口性能压力测试)

    又是新的一周 延续上周的进度 关于多进程的学习 今天实践下 初步设计的接口性能压力测试代码如下: #!/usr/bin/env python # -*- coding: utf_8 -*- impor ...

  4. 结合docker做flask+kafka数据接口与压力测试

    一.需求 需要做实时数据接入的接口.数据最终要写入库,要做到高并发,数据的完整,不丢失数据. 二.技术选型 1.因为只是做简单的接口,不需要复杂功能,所以决定用flask这个简单的python框架(因 ...

  5. 面向Web应用的并发压力测试工具——Locust实用攻略

    1. 概述 该方案写作目的在于描述一个基于Locust实现的压力测试,文中详细地描述了如何利用locustfile.py文件定义期望达成的测试用例,并利用Locust对目标站点进行并发压力测试. 特别 ...

  6. Web Capacity Analysis Tool 压力测试工具使用笔记

    一.背景介绍 Web Capacity Analysis Tool是微软轻量级Web压力测试工具, 早先是IIS 6.0Resource Tool kit 工具包中的一个组件,现在独立出来有一个社区版 ...

  7. 使用 WRK 压力测试工具对 ASP.NET Core 的接口进行压力测试

    0. 简要介绍 WRK 是一款轻量且易用的 HTTP 压力测试工具,通过该工具我们可以方便地对我们所开发的 WebAPI 项目进行压力测试,并且针对测试的情况返回结果. PS:Wrk 并不能针对测试的 ...

  8. JMeter工具接口性能压力测试分析与优化

    最近公司做的项目,要求对相关接口做性能压力测试,在这里记录一下分析解决过程. 压力测试过程中,如果因为资源使用瓶颈等问题引发最直接性能问题是业务交易响应时间偏大,TPS逐渐降低等.而问题定位分析通常情 ...

  9. Windows开源Web服务器性能和压力测试工具

    linux有很多开源工具用来测试服务器负载,而windows上非常少,几乎没有除了几个复杂的JMeter WET等 将两个好用的工具是Linux版本通过Cygwin移植过来,方便广大windows人员 ...

随机推荐

  1. Android图形子系统

    图形操作可以有两种方式实现:一是利用通用CPU模拟图形操作:二是利用GPU专门做图形操作.前者会增加CPU的负担,在现在高分辨率已经是普遍现象的时候,让通用处理器来完成大量的图形计算已经不现实.And ...

  2. 为 Ubuntu 18.04 添加开机自动加载 ntfs分区 功能

    注意:Ubuntu终端命令是区分大小写的 1,准备的:     ntfs-3g -- 提供ntfs读写支持(一般说来是自带的,若没有,可是使用 sudo apt-get isntall ntfs-3g ...

  3. SuperSocket 服务器管理器客户端

    SuperSocket 服务器管理器当前有两种类型的客户端, Silverlight客户端和WPF客户端.这两种客户端的代码都在源代码中的"Management"目录,你可以自行编 ...

  4. 理解和实现分布式TensorFlow集群完整教程

    手把手教你搭建分布式集群,进入生产环境的TensorFlow 分布式TensorFlow简介 前一篇<分布式TensorFlow集群local server使用详解>我们介绍了分布式Ten ...

  5. Clipboard 自动复制功能,ios复制失败,换方案 user-select: text ;长按复制 (ios 兼容,长按复制)

    Clipboard 自动复制功能,嵌套app内跳转的页面,ios 自动复制失败(该ios机子,微信,浏览器打开复制没有问题) 暂时换方案    user-select: text ;长按复制 (ios ...

  6. 2003年NOIP普及组复赛题解

    题目涉及算法: 乒乓球:简单字符串模拟: 数字游戏:区间DP: 栈:卡特兰数 麦森数:高精度.快速幂.数学. 乒乓球 题目链接:https://www.luogu.org/problem/P1042 ...

  7. centos7搭建集群必知:centos7已经无iptables,只有firewall

    1.防火墙概述 centos7搭建集群,发现没有iptables,需要安装.防火墙为firewalle CentOS7默认的防火墙不是iptables,而是firewalle. CentOS 7.0默 ...

  8. webpack学习(五)entry和output的基础配置

    1:entry和output就是打包的入口和出口的两个对象.但是如果入口文件就一个的话(应该说只希望打包出一个脚本文件), entry直接跟一个字符串(入口文件路径)就可以了.如:entry : &q ...

  9. 【js】React-Native 初始化时报错

    一.按照官网的步骤一步一步的操作,到最后  react-native init AwesomeProject  时就是报错 报错信息如下图 然后我下载了这个模块  npm install prompt ...

  10. H3C Hosts文件