使用JMeter测试.Net5.0,.Net6.0框架下无数据处理的并发情况
1. 安装JMeter及使用
1.1下载JMeter
登录官方网站找到下载链接进行下载:https://jmeter.apache.org/download_jmeter.cgi
1.2配置环境变量
配置JMeter环境变量
新建变量名 JMETER_HOME
值为:JMeter解压目录\bin(下载的文件解压目录)
安装Java8+
参考文章:https://blog.csdn.net/weixin_45078706/article/details/115830318
2.新建.Net程序
选择Asp.Net Core Web API
输入项目名称
选择框架.Net5.0
在Controllers添加包含读/写的API控制器
这次分别测试上面4个接口在不同框架下的响应情况
生成解决方案,找到生成目录下的JmeterTest.exe直接运行
访问http://localhost:5000/swagger/index.html
因为框架默认引用了swagger组件,所以可以直接访问,但页面出现404
修改Startup.cs代码,注释如下行
在此生成运行出现swagger页面
3.Jmeter接口测试
打开下载Jmeter解压出来bin目录下的jmeter.bat
出现下面窗口(方便使用切换到中文版本,步骤:Options->Choose Language->Chinese(Simplified))
3.1新建一个线程组,线程就是模拟用户请求,可设置线程数来控制请求的数量
参数说明:
- 线程数:模拟请求的用户数量
- Ramp-Up时间(秒):达到启用指定线程数的时间
- 循环次数:线程执行循环的次数,一般在初次测试接口时设置为1,正式压测时设置的永远
- Same user on each iteration:待补充..
- 延迟创建线程知道需要:待补充..
- 调度器:持续时间(秒):程序持续运行时间,启动延时(秒):启动的线程延时多久执行下一组
3.2添加Http请求默认值
3.3添加HTTP信息头管理器
添加Content-Type:application/json
3.4添加Http请求
按照需要测试的几种请求接口,这里需要添加四个Http请求
3.5添加响应断言,对请求的接口进行断言,判断是否请求成功
3.6添加查看结果树,查看详细的接口请求及返回内容
3.7添加聚合报告查看整体接口请求聚合情况
3.8进行初步测试确保接口响应没有问题
3.9修改线程数,启用调度器,再次启动压测请求
第一次请求出现了大量的:already in use: connect
搜索找到解决方案修改注册表:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
在Parmeters右键新建DWORD值,命名为MaxUserPort,然后选择十进制并输入数据65534后保存
然后测试发现还是一样的错误,检查参数设置发现Same user on each iteration没有勾选,查询了下资料大概意思是如果选中表示每次请求是同一个用户,不勾选循环的每次是不同的用户
3.10net5.0请求300s结果如下,大概每秒59886.9次请求
3.11切换至.net6.0
再次进行测试
请求300s结果如下,大概每秒62232.7次请求,提升了2346,基于net5.0提升了3.9%
3.12切换至.net7.0
再次进行测试
请求300s结果如下,大概没秒63108次请求,基于net6.0提升876次,提升1.4%,基于net5.0提升3222次,提升5.3%
总结
单纯从接口响应情况来看,net5.0及以上已经有了很大的提升,net6.0,net7.0也都有相应的提升,也为后续的业务处理高并发打下了基础
使用JMeter测试.Net5.0,.Net6.0框架下无数据处理的并发情况的更多相关文章
- [C#] 尝鲜.net6.0的C#代码热重载
看到.NET 6 Preview 1 发布,里面"除了 XAML 热重载之外,还将支持 C# 代码的热重载"一句,觉得有必要试试看,因为XAML热重载功能用起来确实很爽. 首先要下 ...
- 手把手教会 VS2022 设计 Winform 高DPI兼容程序 (net461 net6.0 双出)
本文主要解决两个问题 C# Winform高DPI字体模糊. 高DPI下(缩放>100%), UI设计器一直提示缩放到100%, 如果不重启到100%,设计的控件会乱飞. 建立测试程序 新建.N ...
- 开发基础框架:mybatis-3.2.8 +hibernate4.0+spring3.0+struts2.3
一:项目下载地址(点击 Source code(zip)) https://github.com/fzxblgong/frame_2014-12-15/releases 版本:v1.2大小:20M 二 ...
- API代理网关和OAuth2.0授权认证框架
API代理网关和OAuth2.0授权认证框架 https://www.cnblogs.com/bluedoctor/p/8967951.html 1,授权认证与微服务架构 1.1,由不同团队合作引发的 ...
- SpringBoot2.0 整合 Dubbo框架 ,实现RPC服务远程调用
一.Dubbo框架简介 1.框架依赖 图例说明: 1)图中小方块 Protocol, Cluster, Proxy, Service, Container, Registry, Monitor 代表层 ...
- 发布并开源自己的一款 基于.Net 4.0 及 netstandard2.0 的 ORM 框架
这款ORM框架的原版在经历过大概十几个项目的磨合,最近整理了一下,原名字为:ZhCun.Framework ,该框架辗转跟了我去过几家公司,大概从2012年出现第一个版本,当时就为简化数据库操作,从优 ...
- .Net Core3.0 WebApi 项目框架搭建 五: 轻量型ORM+异步泛型仓储
.Net Core3.0 WebApi 项目框架搭建:目录 SqlSugar介绍 SqlSugar是国人开发者开发的一款基于.NET的ORM框架,是可以运行在.NET 4.+ & .NET C ...
- .Net Core3.0 WebApi 项目框架搭建 三:读取appsettings.json
.Net Core3.0 WebApi 项目框架搭建:目录 appsettings.json 我们在写项目时往往会把一些经常变动的,可能会变动的参数写到配置文件.数据库中等可以存储数据且方便配置的地方 ...
- .Net Core3.0 WebApi 项目框架搭建 四:JWT权限验证
.Net Core3.0 WebApi 项目框架搭建:目录 什么是JWT 根据维基百科定义,JWT(读作 [/dʒɒt/]),即JSON Web Tokens,是一种基于JSON的.用于在网络上声明某 ...
随机推荐
- 【SpringSecurity系列2】基于SpringSecurity实现前后端分离无状态Rest API的权限控制原理分析
源码传送门: https://github.com/ningzuoxin/zxning-springsecurity-demos/tree/master/01-springsecurity-state ...
- 解决python无法打开谷歌浏览器问题
python+selenium 打开浏览器网页时可能会出现两种情况, 一.python 初次打开浏览器未进行安装浏览器控制插件, 二.python 能打开浏览器的情况下,突然有一天发现无法打开并报错新 ...
- .net core 抛异常对性能影响的求证之路
一.前言 在.net 社区中曾经听到过很多关于大量抛异常会影响性能这样的结论,心中一直就存在各种疑问.项目中使用自定义异常来处理业务很爽,但是又担心大量抛业务异常存在性能问题. 查阅了各种文档,微软官 ...
- 论文解读(KP-GNN)《How Powerful are K-hop Message Passing Graph Neural Networks》
论文信息 论文标题:How Powerful are K-hop Message Passing Graph Neural Networks论文作者:Jiarui Feng, Yixin Chen, ...
- 基于.NET6的开源工业物联网网关
什么是工业物联网网关 工业物联网网关(IIoTGateway)是一种硬件设备或软件程序,作为本地设备(如PLC.扫码枪.机器人.数控机床.非标上位机等)与云端系统(如物联网平台.SCADA系统.MES ...
- 什么是工业仿真?工业3D仿真有什么样的市场价值?
什么是工业仿真? 工业仿真是对实体工业的一种虚拟,它将实体工业中的各个模块转化成数据整合到一个虚拟的体系中去.这个体系会模拟现实工业作业中的每一项工作和流程,并与之实现各种交互. 工业仿真技术作为目前 ...
- Windows-安装OpenVINO
安装指导书链接: https://docs.openvinotoolkit.org/latest/openvino_docs_install_guides_installing_openvino_wi ...
- TopoLVM: 基于LVM的Kubernetes本地持久化方案,容量感知,动态创建PV,轻松使用本地磁盘
正文 研发测试场景下,一般追求的是一键快速起环境,横向动态复制,一人一套,随起随用,用完即走.作为使用方,其不用关心实际的物理资源是怎样的,环境起在哪里,只要声明自己的使用需求即可.但作为方案构建者以 ...
- 扩展新的WCV到标准的WC后,不能在业务角色里面看见视图解决方法
by zyi 感谢群主红枣的分享 1.把你的WCVIEW扩展进WC中 2.使用UI Designer打开你的WCVIEW 3.更改你的WCVIEW名字
- IO流原理及流的分类
IO原理 I/O是Input/Output的缩写, I/O技术是非常实用的技术,用于 处理设备之间的数据传输.如读/写文件,网络通讯等. Java程序中,对于数据的输入/输出操作以"流(st ...