使用JMeter测试.Net5.0,.Net6.0框架下无数据处理的并发情况 | 您所在的位置:网站首页 › origin怎么输入下标 › 使用JMeter测试.Net5.0,.Net6.0框架下无数据处理的并发情况 |
优质资源分享
学习路线指引(点击解锁)
知识定位
人群定位
Python实战微信订餐小程序
进阶级
本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
Python量化交易实战
入门级
手把手带你打造一个易扩展、更安全、效率更高的量化交易系统
1. 安装JMeter及使用
1.1下载JMeter
登录官方网站找到下载链接进行下载:https://jmeter.apache.org/download_jmeter.cgi 配置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页面 打开下载Jmeter解压出来bin目录下的jmeter.bat 出现下面窗口(方便使用切换到中文版本,步骤:Options->Choose Language->Chinese(Simplified)) 参数说明: 线程数:模拟请求的用户数量 Ramp-Up时间(秒):达到启用指定线程数的时间 循环次数:线程执行循环的次数,一般在初次测试接口时设置为1,正式压测时设置的永远 Same user on each iteration:待补充… 延迟创建线程知道需要:待补充… 调度器:持续时间(秒):程序持续运行时间,启动延时(秒):启动的线程延时多久执行下一组 3.2添加Http请求默认值添加Content-Type:application/json 3.4添加Http请求按照需要测试的几种请求接口,这里需要添加四个Http请求 3.5添加响应断言,对请求的接口进行断言,判断是否请求成功第一次请求出现了大量的: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次请求再次进行测试 请求300s结果如下,大概每秒62232.7次请求,提升了2346,基于net5.0提升了3.9% 再次进行测试 请求300s结果如下,大概没秒63108次请求,基于net6.0提升876次,提升1.4%,基于net5.0提升3222次,提升5.3% 3.13对比测试高性能Go语言测试测试使用Go版本 测试结果,大概每秒90641次请求,单纯的接口性能相应上来说,对比.net有巨大的优势 此次测试的结果都是基于本地电脑测试,测试结果可能无法反应实际的处理情况 本机电脑配置情况 单纯从接口响应情况来看,net5.0及以上已经有了很大的提升,net6.0,net7.0也都有相应的提升,也为后续的业务处理高并发打下了基础 |
CopyRight 2018-2019 实验室设备网 版权所有 |