单机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. Top 10 open source projects of 2015

    Top 10 open source projects of 2015 Posted 15 Dec 2015Jen Wike Huger (Red Hat)Feed 188 up 31 comment ...

  2. U盘还原系统

    相信现在不少的人已经开始使用U盘作为启动盘来安装系统,说起来这可比用光盘装系统可是方便多了.毕竟U盘可以随身携带,至于光盘嘛,就不多说了.       可是还有许多人对U盘安装系统还是有些陌生的感觉. ...

  3. 在字符串中查找id值MySQL

    PHPmyadmin中sql语句 SELECT * FROM `hz_article_type` WHERE FIND_IN_SET( 5, items_id ) LIMIT 0 , 30 结果: S ...

  4. Python--day72--ajax简介

    ajax的基本结构: <script> $("#b1").on("click", function () { $.ajax({ url: " ...

  5. Python--day70--ORM多对多的三种方式

  6. Python--day31--TCP的长链接

  7. Scrapy项目注意事项

  8. linux设备编号的内部表示

    在内核中, dev_t 类型(在 <linux/types.h>中定义)用来持有设备编号 -- 主次部分都包 括. 对于 2.6.0 内核, dev_t 是 32 位的量, 12 位用作主 ...

  9. PHP PDO扩展整理,包括环境配置\基本增删改查\事务\预处理

    相关文章:PHP的mysql扩展整理,操作数据库的实现过程分析    PHPmysqli扩展整理,包括面向过程和面向对象的比较\事务控制\批量执行\预处理 介绍 PDO是一种PHP程序连接数据库的接口 ...

  10. linux /proc 接口和共享中断

    在系统中安装共享处理者不影响 /proc/stat, 它甚至不知道处理者. 但是, /proc/interrupts 稍稍变化. 所有同一个中断号的安装的处理者出现在 /proc/interrupts ...