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

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

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

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

单机Web后端接口服务压力测试的更多相关文章
- Web 应用性能和压力测试工具 Gor - 运维生存时间
Web 应用性能和压力测试工具 Gor - 运维生存时间 undefined 无需花生壳,dnspod实现ddns - 推酷 undefined
- 使用COSBench工具对ceph s3接口进行压力测试--续
之前写的使用COSBench工具对ceph s3接口进行压力测试是入门,在实际使用是,配置内容各不一样,下面列出 压力脚本是xml格式的,套用UserGuide文档说明,如下 有很多模板的例子,在co ...
- python学习笔记(threading接口性能压力测试)
又是新的一周 延续上周的进度 关于多进程的学习 今天实践下 初步设计的接口性能压力测试代码如下: #!/usr/bin/env python # -*- coding: utf_8 -*- impor ...
- 结合docker做flask+kafka数据接口与压力测试
一.需求 需要做实时数据接入的接口.数据最终要写入库,要做到高并发,数据的完整,不丢失数据. 二.技术选型 1.因为只是做简单的接口,不需要复杂功能,所以决定用flask这个简单的python框架(因 ...
- 面向Web应用的并发压力测试工具——Locust实用攻略
1. 概述 该方案写作目的在于描述一个基于Locust实现的压力测试,文中详细地描述了如何利用locustfile.py文件定义期望达成的测试用例,并利用Locust对目标站点进行并发压力测试. 特别 ...
- Web Capacity Analysis Tool 压力测试工具使用笔记
一.背景介绍 Web Capacity Analysis Tool是微软轻量级Web压力测试工具, 早先是IIS 6.0Resource Tool kit 工具包中的一个组件,现在独立出来有一个社区版 ...
- 使用 WRK 压力测试工具对 ASP.NET Core 的接口进行压力测试
0. 简要介绍 WRK 是一款轻量且易用的 HTTP 压力测试工具,通过该工具我们可以方便地对我们所开发的 WebAPI 项目进行压力测试,并且针对测试的情况返回结果. PS:Wrk 并不能针对测试的 ...
- JMeter工具接口性能压力测试分析与优化
最近公司做的项目,要求对相关接口做性能压力测试,在这里记录一下分析解决过程. 压力测试过程中,如果因为资源使用瓶颈等问题引发最直接性能问题是业务交易响应时间偏大,TPS逐渐降低等.而问题定位分析通常情 ...
- Windows开源Web服务器性能和压力测试工具
linux有很多开源工具用来测试服务器负载,而windows上非常少,几乎没有除了几个复杂的JMeter WET等 将两个好用的工具是Linux版本通过Cygwin移植过来,方便广大windows人员 ...
随机推荐
- Helm V3 新版本发布
Helm v3.0.0 Alpha 1 is coming! Helm 作为 Kubernetes 体系的包管理工具,已经逐渐成为了事实上的应用分发标准.根据 2018 年 CNCF 的一项云原生用户 ...
- oracle用NOT EXISTS替代NOT IN
在子查询中,NOT IN子句将执行一个内部的排序和合并. 无论在哪种情况下,NOT IN都是最低效的 (因为它对子查询中的表执行了一个全表遍历). 为了避免使用NOT IN ,我们可以把它改写成外连 ...
- 得到Access数据库中所有表名
public static List<string> GetShemaTables(string db) { string pa ...
- springboot 2.1.6.RELEASE pom 第一行报错
eclipse创建springboot 2.1.6.RELEASE pom第一行报错 在pom.xml 文件的properties中加入maven jar插件的版本号 <maven-jar-p ...
- SVN常用命令之checkout
官方解释,请参考:http://www.subversion.org.cn/svnbook/nightly/svn.ref.svn.c.checkout.html 常用检出命令: svn co htt ...
- 2019-1-29-WPF-设置输入只能英文
title author date CreateTime categories WPF 设置输入只能英文 lindexi 2019-1-29 15:8:4 +0800 2018-2-13 17:23: ...
- 打地鼠游戏(2)之定义地鼠函数及函数原型 prototype
在JavaScript中,prototype对象是实现面向对象的一个重要机制. 每个函数就是一个对象(Function),函数对象都有一个子对象 prototype对象,类是以函数的形式来定义的.pr ...
- 用Xshell连接谷歌云
谷歌云服务器,默认用浏览器进行SSH链接,而且也不告知密码.以Centos为例,先使用浏览器连接 1,给root修改密码 1 sudo passwd root 2,编辑ssh配置文件 sudo nan ...
- C# Thread.Join();Thread.Abort();
Join() 等待当前线程运行完成后,才继续执行主线程后续代码: Abort() 结束当前线程,继续执行主线程后续代码: Thread.Join(); static void Main(string[ ...
- Java并发机制的底层实现原理之volatile应用,初学者误看!
volatile的介绍: Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现 ...