go、thinkphp8、webman数据读取并发测试、性能测试
前期准备:本地搭建程序运行所需环境,分别编写go,thinkphp8和webman程序,确保程序运行正常,新建mysql的student表,模拟存储学生信息,共计3646条数据,分别使用go语言、thinkphp8和webman编写查询程序,查询出student表所有数据信息并返回json格式数据
请求测试软件:apifox自动化测试
1.设置三个请求接口
go请求api地址:http://localhost:8080/data/
thinkphp8请求api地址:http://www.one.cn/index/getData (www.one.cn为phpstudy本地绑定测试域名)
webman请求api地址:http://127.0.0.1:8787/admin/Index/index
2.自动化功能测试数据[受限于本地电脑配置,我循环次数设置不超过800,可根据自己电脑配置自行设置]
(一)、循环次数:800 线程数(操作人数): 1 时间间隔:3ms[不设置时间间隔时apifox在测试完毕后闪退]
go:
接口请求耗时 7.31 秒
平均接口请求耗时 9.33 毫秒
thinkphp8:
接口请求耗时 33.53 秒
平均接口请求耗时 43.05 毫秒
webman:
接口请求耗时 7.59 秒
平均接口请求耗时 9.74 毫秒
(二)循环次数: 5 线程数(操作人数):50 时间间隔:3ms [根据本地电脑配置设置]
go:
总耗时 67.39 秒
接口请求耗时 327.25 秒
平均接口请求耗时 1309 毫秒
thinkphp8:
总耗时 81.89 秒
接口请求耗时 231.75 秒
平均接口请求耗时 927 毫秒
webman:
总耗时 75.411 秒
接口请求耗时 120 秒
平均接口请求耗时 480 毫秒
3.自动化性能测试
并发用户数50 运行时间10分钟 爬坡时间1分钟[在测试持续时间的前 X 分钟,线性逐渐增加并行用户数量直到设置的虚拟用户数。设置为 0 即代表从测试一开始就用设置的虚拟用户数运行。]
go:
总请求次数:21,796
每秒接口请求数:35.90
平均响应时间:33 ms
最小响应时间:8ms
最大响应时间:2753ms
thinkphp8:
总请求次数:14,903
每秒接口请求数:24.50
平均响应时间:165 ms
最小响应时间:53ms
最大响应时间:6981ms
webman:
总请求次数:20,003
每秒接口请求数:32.98
平均响应时间:60 ms
最小响应时间:12ms
最大响应时间:2877ms
- 当循环次数为 800,线程数为 1 时:
- Go 语言在接口请求耗时和平均接口请求耗时方面表现较好,用时较短。
- ThinkPHP8 和 Webman 的性能相对 Go 稍弱,但三者在单线程下的性能差距不是特别巨大。
- 当循环次数为 5,线程数为 50 时:
- 总体来看,Webman 在总耗时和接口请求耗时方面表现较为出色。
- ThinkPHP8 的性能处于中间水平。
- Go 的平均接口请求耗时较长,表现相对较差。
go、thinkphp8、webman数据读取并发测试、性能测试的更多相关文章
- Atitit.并发测试解决方案(2) -----获取随机数据库记录 随机抽取数据 随机排序 原理and实现
Atitit.并发测试解决方案(2) -----获取随机数据库记录 随机抽取数据 随机排序 1. 应用场景 1 2. 随机抽取数据原理 1 3. 常用的实现方法:::数据库随机函数 1 4. Mssq ...
- python 读取excel数据并将测试结果填入Excel
python 读取excel数据并将测试结果填入Excel 读取一个Excel中的一条数据用例,请求接口,然后返回结果并反填到excel中.过程中会生成请求回来的文本,当然还会生成一个xml文件.具体 ...
- Jmeter对HTTP请求压力测试、并发测试的简单使用方法
对于服务器性能测试这块的经验更是少得可以忽略.迫使不得不让我们去尝试了解测试的知识. 首先我们的需求场景如下: 服务器硬件:(只有一台) 系统:Windows 2003 WebServer:Tomca ...
- 数据读取速度达1.5G/s,UFS 2.1存储技术曝光
目前最快的是苹果NVME,当然UFS2.1也不差 iPhone6s与iPhone6s Plus在硬件的规格上有了很大的提升,但是它们身上的变化远没有苹果在发布会上所提到的A9处理器.1200万摄像头以 ...
- Jmeter运营活动并发测试—巧用集合点
在运营活动测试过程中,经常需要对秒杀活动或定时抽奖活动进行并发测试.那么怎样快速便捷的模拟多用户同时参与活动,抽取奖品,进行并发测试呢?尤其是,当奖品总数N<用户总数M时,代码是否会存在奖品多发 ...
- Jmeter对HTTP请求压力测试、并发测试
最近公司需要开发一个简单的报名系统,供外网用户提供报名服务,由于我们公司是个初创的微型公司,开发人员都是刚毕业不久,开发经验相当缺乏. 对于服务器性能测试这块的经验更是少得可以忽略.迫使不得不让我们去 ...
- 使用JMeter3.0实战之分布式并发测试以及web API接口测试
简介: 该文档是以Apche JMeter-3.0为例进行编写的,通过网上的学习资料和官方文档的说明手册学习后,进行项目操作实践,将测试的过程记录下提供给大家学习. 本博文的内容主要是进行配置JMet ...
- 白盒测试中如何实现真正意义上并发测试(Java)
在这个话题开始之前,首先我们来弄清楚为什么要做并发测试? 一般并发测试,是指模拟并发访问,测试多用户并发访问同一个应用.模块.数据时是否产生隐藏的并发问题,如内存泄漏.线程锁.资源争用问题. 站在性能 ...
- 使用jMeter对基于SAP ID service进行Authentication的Restful API进行并发测试
这篇文章本来Jerry只在SAP社区上写了英文版的,可以通过点击文末的"阅读原文"获得.后来有两位做Marketing Cloud开发的德国同事,写邮件询问关于文章的更多细节,声称 ...
- jmeter多用户登录并发测试
在使用Jmeter进行性能测试时,我们通常会需要配置多个不同用户进行并发测试,这里简单介绍一下配置方法. 1.运行Jmeter.bat, 在打开的测试计划中右键添加一个线程组: 2.在线程组下添加录 ...
随机推荐
- Advanced .NET Remoting: 第 8 章 创建连接器
第 8 章 创建连接器 上一章向您展示了各种类型的连接器,以及它们对于请求的同步和异步处理过程.到目前为止,我一直忽略的一个最为重要的步骤是:初始化连接器和连接器链.连接器通常既不是直接待代码中创建, ...
- 【MyBatis】学习笔记14:通过collection解决一对多的映射关系
MyBatis14:通过collection解决一对多的映射关系 目录 MyBatis14:通过collection解决一对多的映射关系 对象 接口 映射文件 测试 总结 注意事项 已知,一个部门对应 ...
- leetcode 05 回文字符串
leetcode 05 回文字符串 1. 描述 给你一个字符串,找到里面最长的回文字符串 2. 事例 示例 1: 输入:s = "babad" 输出:"bab" ...
- Qt编写视频监控系统79-四种界面导航栏的设计
一.前言 最初视频监控系统按照二级菜单的设计思路,顶部标题栏一级菜单,左侧对应二级菜单,最初采用图片在上面,文字在下面的按钮方式展示,随着功能的增加,二级菜单越来越多,如果都是这个图文上下排列的按钮, ...
- Win10系统安装vue-cli运行环境以及vue在和vue-cli在windows10系统下的默认安装路径(目录)
WIN10系统安装vue-cli运行环境: 1.Win10系统安装VUE及环境配置解析 2.使用vue-cli创建项目 3.vue在和vue-cli在windows10系统下的默认安装路径(目录)为: ...
- FreeSWITCH日志功能分析及apr模拟
操作系统版本:Debian 12.5_x64 FreeSWITCH版本: 1.10.11 apr库版本:apr-1.7.4 & apr-util-1.6.3 gcc版本: 12.2.0 日 ...
- Awesome-Text2GQL:图查询微调语料的自动生成框架
过去一年,GraphRAG技术发展如火如荼,尤其是基于关键词.向量驱动的知识检索方法不胜枚举.然而通过子图召回的检索方式,对用户真实查询意图的定位仍缺乏足够的准确度.我们需要更直接的方式,将自然语 ...
- 深入理解ReentrantLock的实现原理
文章目录ReentrantLock简介AQS回顾ReentrantLock原理ReentrantLock结构非公平锁的实现原理lock方法获取锁tryRelease锁的释放公平锁的实现原理lock方法 ...
- AQS源码深度剖析,大厂面试必看!
AQS(AbstractQueuedSynchronizer)是Java众多锁以及并发工具的基础类,底层采用乐观锁,大量采用CAS操作保证其原子性,并且在并发冲突时,采用自旋方法重试.实现了轻量高效的 ...
- Apollo架构设计
Apollo架构设计 Apollo有一点很好,就是它是由国内携程团队开发,而且文档写的很全,代码也完全开源.如果去了解它也可以直接去看它的官方文档. 一.配置中心概念 1.背景 在实际开发中都会与配置 ...