前期准备:本地搭建程序运行所需环境,分别编写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

结论:
  1. 当循环次数为 800,线程数为 1 时:

    • Go 语言在接口请求耗时和平均接口请求耗时方面表现较好,用时较短。
    • ThinkPHP8 和 Webman 的性能相对 Go 稍弱,但三者在单线程下的性能差距不是特别巨大。
  2. 当循环次数为 5,线程数为 50 时:
    • 总体来看,Webman 在总耗时和接口请求耗时方面表现较为出色。
    • ThinkPHP8 的性能处于中间水平。
    • Go 的平均接口请求耗时较长,表现相对较差。
建议:
  对之前使用thinkphp或laravel开发的开发人员,企业项目需要兼顾并发和性能时可选择webman,上手快,如果涉及处理大量并发请求和计算密集型任务的系统,则选择go,日常的企业项目,则使用thinkphp或laravel足够满足并发要求,读者可根据实际的项目要求进行选择。

go、thinkphp8、webman数据读取并发测试、性能测试的更多相关文章

  1. Atitit.并发测试解决方案(2) -----获取随机数据库记录 随机抽取数据 随机排序 原理and实现

    Atitit.并发测试解决方案(2) -----获取随机数据库记录 随机抽取数据 随机排序 1. 应用场景 1 2. 随机抽取数据原理 1 3. 常用的实现方法:::数据库随机函数 1 4. Mssq ...

  2. python 读取excel数据并将测试结果填入Excel

    python 读取excel数据并将测试结果填入Excel 读取一个Excel中的一条数据用例,请求接口,然后返回结果并反填到excel中.过程中会生成请求回来的文本,当然还会生成一个xml文件.具体 ...

  3. Jmeter对HTTP请求压力测试、并发测试的简单使用方法

    对于服务器性能测试这块的经验更是少得可以忽略.迫使不得不让我们去尝试了解测试的知识. 首先我们的需求场景如下: 服务器硬件:(只有一台) 系统:Windows 2003 WebServer:Tomca ...

  4. 数据读取速度达1.5G/s,UFS 2.1存储技术曝光

    目前最快的是苹果NVME,当然UFS2.1也不差 iPhone6s与iPhone6s Plus在硬件的规格上有了很大的提升,但是它们身上的变化远没有苹果在发布会上所提到的A9处理器.1200万摄像头以 ...

  5. Jmeter运营活动并发测试—巧用集合点

    在运营活动测试过程中,经常需要对秒杀活动或定时抽奖活动进行并发测试.那么怎样快速便捷的模拟多用户同时参与活动,抽取奖品,进行并发测试呢?尤其是,当奖品总数N<用户总数M时,代码是否会存在奖品多发 ...

  6. Jmeter对HTTP请求压力测试、并发测试

    最近公司需要开发一个简单的报名系统,供外网用户提供报名服务,由于我们公司是个初创的微型公司,开发人员都是刚毕业不久,开发经验相当缺乏. 对于服务器性能测试这块的经验更是少得可以忽略.迫使不得不让我们去 ...

  7. 使用JMeter3.0实战之分布式并发测试以及web API接口测试

    简介: 该文档是以Apche JMeter-3.0为例进行编写的,通过网上的学习资料和官方文档的说明手册学习后,进行项目操作实践,将测试的过程记录下提供给大家学习. 本博文的内容主要是进行配置JMet ...

  8. 白盒测试中如何实现真正意义上并发测试(Java)

    在这个话题开始之前,首先我们来弄清楚为什么要做并发测试? 一般并发测试,是指模拟并发访问,测试多用户并发访问同一个应用.模块.数据时是否产生隐藏的并发问题,如内存泄漏.线程锁.资源争用问题. 站在性能 ...

  9. 使用jMeter对基于SAP ID service进行Authentication的Restful API进行并发测试

    这篇文章本来Jerry只在SAP社区上写了英文版的,可以通过点击文末的"阅读原文"获得.后来有两位做Marketing Cloud开发的德国同事,写邮件询问关于文章的更多细节,声称 ...

  10. jmeter多用户登录并发测试

    在使用Jmeter进行性能测试时,我们通常会需要配置多个不同用户进行并发测试,这里简单介绍一下配置方法. 1.运行Jmeter.bat,  在打开的测试计划中右键添加一个线程组: 2.在线程组下添加录 ...

随机推荐

  1. Flutter null safety 无法运行

    Flutter空安全问题 在pub上有一些库导入之后无法运行,这是因为健全的空安全 解决方法 1.在命令行中添加参数 flutter run --no-sound-null-safety 2.在IDE ...

  2. 中电金信:GienTech动态| 获奖、合作、与伙伴共谋数字化转型…

    ​ ​ -- -- GienTech动态 -- -- 中电金信携"源启"亮相第十二届中国电子信息博览会 ​ 4月11日,为期三天的"第十二届中国电子信息博览会" ...

  3. sed 删除 替换 文件内容

      sed添加一行内容 使用sed命令添加一行内容有多种实现方法,下面是几种不同的实现方法: 方法一:使用sed命令在指定行前添加一行内容     sed '2i This is a new line ...

  4. java - 正则表达式替换Spring @RequestMapping URL中的@PathVariable值

    我在接口(只是为了保存常量)中有Spring MVC URL的定义,例如: String URL_X = "/my-url/{id:[0-9]*}"; String URL_Y = ...

  5. Could not retrieve transation read-only status server 的解决办法

    问题描述: 在项目开发的过程中,使用Hibernate的ORM进行建表时,出现 " Could not retrieve transation read-only status server ...

  6. 龙哥量化:通达信的函数ma均线,ema、sma、dma的计算原理是什么,XMA是未来函数

    注意均线也有未来函数,常见的是跨周期的用法,会导致信号闪烁, 不常见的是XMA这个未来函数太坑了, [代写公式,龙哥微信:Long622889] MA.EMA.SMA.DMA.TMA.WMA6种平均算 ...

  7. Qt编写地图综合应用14-离线地图下载

    一.前言 网上其实有很多各种各样的离线地图下载器,大部分都是要收费的,免费的要么是限制了下载的瓦片数量或者级别,要么是下载的瓦片图打上了水印,看起来很难看,由于经常需要用到离线地图,摆脱这个限制,特意 ...

  8. 浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)

    本文由转转QA赵里京分享,原题"浅谈IM与相关测试方法",下文进行了排版和内容优化. 1.引言 目前转转的所有业务都在快速增长,支撑其用户服务的客服系统也同样在快速发展,以承接用户 ...

  9. 哔哩哔哩从0到1自研智能客服IM系统的技术实践之路

    本文由B端技术中心分享,原题"从0到1:哔哩哔哩智能客服系统的设计与实现",本文有修订和改动. 1.引言 本文将要分享的是哔哩哔哩从0到1自研智能客服IM系统的技术实践过程,包括整 ...

  10. IM消息ID技术专题(七):深度解密vivo的自研分布式ID服务(鲁班)

    本文由vivo互联网技术An Peng分享,本文收录时有内容修订和重新排版. 1.引言 本文通过对分布式ID的3种应用场景.实现难点以及9种分布式ID的实现方式进行介绍,并对结合vivo业务场景特性下 ...