单机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. min-width:100%和max-width:100%的区别

    1.width:100%和width:auto width:100%,设定对象的宽度占父元素的100%不论设定元素的margin值是多少,不包含margin: width:auto,根据设定对象的实际 ...

  2. Java安装完毕后的环境配置

    右键计算机=>属性=>高级系统设置=>环境变量=>系统变量=>新建系统变量 变量名:JAVA_HOME变量值:E:\Program Files\Java\jdk-9.0. ...

  3. H3C ISDN BRI和PRI

  4. zoj 2338 The Towers of Hanoi Revisited

    The Towers of Hanoi Revisited Time Limit: 5 Seconds Memory Limit: 32768 KB Special Judge You all mus ...

  5. Spring Security实现禁止用户重复登陆(配置及原理)

    系统使用了Spring Security做权限管理,现在对于系统的用户,需要改动配置,实现无法多地登陆.   一.SpringMVC项目,配置如下: 首先在修改Security相关的XML,我这里是s ...

  6. 利用SpEL 表达式实现简单的动态分表查询

    这里的动态分表查询并不是动态构造sql语句,而是利用SpEL操作同一结构的不同张表. 也可以参考Spring Data Jpa中的章节http://docs.spring.io/spring-data ...

  7. C# AddRange 添加位置

    有没人想知道, AddRange 添加位置 是哪? 是添加到数组的开始,还是数组的末尾? 假如有一个 代码,看起来是下面的,很简单,把一个 list b 放进list a List<int> ...

  8. 配置gitignore后使其生效命令

    改动过.gitignore文件之后,在repo的根目录下运行: git rm -r --cached . git add . 之后可以进行提交: git commit -m "fixed u ...

  9. Vue 项目构建完成 ----发布项目

    发布项目 cmd  命令行 npm run build      执行打包文件 完成后就会有  3 个文件夹    分别是: 文件夹 :build     config      dist    in ...

  10. grep简介

    grep -ril "xxxxx" .   :查看当前目录下所有文件是否包含指定字符,只输出符合条件的文件名 -r :递归查找 -i:忽略大小写 -l :只输出文件名