首页 > 其他分享 >使用JMeter测试.Net5.0,.Net6.0框架下无数据处理的并发情况

使用JMeter测试.Net5.0,.Net6.0框架下无数据处理的并发情况

时间:2022-08-22 23:35:31浏览次数:108  
标签:请求 Net5.0 接口 添加 线程 测试 JMeter 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新建一个线程组,线程就是模拟用户请求,可设置线程数来控制请求的数量

 

参数说明:

  1. 线程数:模拟请求的用户数量
  2. Ramp-Up时间(秒):达到启用指定线程数的时间
  3. 循环次数:线程执行循环的次数,一般在初次测试接口时设置为1,正式压测时设置的永远
  4. Same user on each iteration:待补充..
  5. 延迟创建线程知道需要:待补充..
  6. 调度器:持续时间(秒):程序持续运行时间,启动延时(秒):启动的线程延时多久执行下一组
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也都有相应的提升,也为后续的业务处理高并发打下了基础

 

标签:请求,Net5.0,接口,添加,线程,测试,JMeter,Net6.0
From: https://www.cnblogs.com/wuyongfu/p/16614652.html

相关文章

  • JMeter While循环控制器应用之遍历获取文件参数
    While循环控制器应用之遍历获取文件参数by:授客QQ:1033553122测试环境JMeter-5.4.1应用实现单线程在单次迭代内遍历获取文件参数说明:上图仅给出关键配置信息注意:......
  • 对Jmeter-基础线程组的一点解释
    概述线程组是一个测试计划的起点。测试计划中所有元件的运行都必须依托于线程组。每个线程组都会独立的运行测试计划,互不干扰线程数线程数在并发用户场景下表示用户数......
  • jmeter性能测试-Arrivals 线程组解释
    概述Arrivals线程组,基本用法就是通过设计预期的总吞吐量,让系统计算需要的线程数。此时的线程数就是平均并发数如果单线程的业务处理时间是2s/笔,也就是吞吐量为0.5笔/s,......
  • jmeter-10-提取多个id拼接请求数据及日期时间偏移,你会了吗?
    前言平时在使用Jmeter过程中,可能会遇到各种需求的参数需要处理,比如提取id拼接数组,又如时间日期处理等等那么接下来将记录平时个人使用时遇到过挺多的场景!gogogo!一、......
  • Mac电脑怎么安装Jmeter
    一、Jmeter简介ApacheJMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。目前也是测试领......
  • Jmeter + influxdb + grafana搭建性能监控平台
    Jmeter脚本设置添加一个BackendListener配置BackendListener创建共用网络dockernetworkcreategrafana部署influxdbdockerrun-d--name=influxdb--netwo......
  • Jmeter(四十九) - 从入门到精通高级篇 - jmeter使用监视器结果监控tomcat性能(详解教程
    ------------------------------------------------------------------- 转载自:北京-宏哥https://www.cnblogs.com/du-hong/p/13667219.html -------------------------......
  • jmeter之常用逻辑控制器
    1、简单控制器用于分组管理,将多个接口放在一个组内2、随机控制器当存在多个请求时,随机执行其中一个请求3、随机顺序控制器当存在多个请求时,按随机顺序执行全部请求......
  • jmeter获取当前压测机IP
    场景:我们有次压测申请压测机后,需要给压测机的IP出口添加白名单,之前安全组给的IP出口可能不全,导致一些压测机跑出来的结果OK,一些报错,当天晚上还需要验证为了压测开发的开关,......
  • jmeter-分布式压测
    jmeter为什么要做分布式压测一台压力机的Jmeter支持的线程数受限于Jmeter其本身的机制和硬件配置(内存、CPU、IO等)是有限的由于Jmeter是Java应用,对CPU和内存的......