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也都有相应的提升,也为后续的业务处理高并发打下了基础

使用JMeter测试.Net5.0,.Net6.0框架下无数据处理的并发情况的更多相关文章

  1. [C#] 尝鲜.net6.0的C#代码热重载

    看到.NET 6 Preview 1 发布,里面"除了 XAML 热重载之外,还将支持 C# 代码的热重载"一句,觉得有必要试试看,因为XAML热重载功能用起来确实很爽. 首先要下 ...

  2. 手把手教会 VS2022 设计 Winform 高DPI兼容程序 (net461 net6.0 双出)

    本文主要解决两个问题 C# Winform高DPI字体模糊. 高DPI下(缩放>100%), UI设计器一直提示缩放到100%, 如果不重启到100%,设计的控件会乱飞. 建立测试程序 新建.N ...

  3. 开发基础框架: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 二 ...

  4. API代理网关和OAuth2.0授权认证框架

    API代理网关和OAuth2.0授权认证框架 https://www.cnblogs.com/bluedoctor/p/8967951.html 1,授权认证与微服务架构 1.1,由不同团队合作引发的 ...

  5. SpringBoot2.0 整合 Dubbo框架 ,实现RPC服务远程调用

    一.Dubbo框架简介 1.框架依赖 图例说明: 1)图中小方块 Protocol, Cluster, Proxy, Service, Container, Registry, Monitor 代表层 ...

  6. 发布并开源自己的一款 基于.Net 4.0 及 netstandard2.0 的 ORM 框架

    这款ORM框架的原版在经历过大概十几个项目的磨合,最近整理了一下,原名字为:ZhCun.Framework ,该框架辗转跟了我去过几家公司,大概从2012年出现第一个版本,当时就为简化数据库操作,从优 ...

  7. .Net Core3.0 WebApi 项目框架搭建 五: 轻量型ORM+异步泛型仓储

    .Net Core3.0 WebApi 项目框架搭建:目录 SqlSugar介绍 SqlSugar是国人开发者开发的一款基于.NET的ORM框架,是可以运行在.NET 4.+ & .NET C ...

  8. .Net Core3.0 WebApi 项目框架搭建 三:读取appsettings.json

    .Net Core3.0 WebApi 项目框架搭建:目录 appsettings.json 我们在写项目时往往会把一些经常变动的,可能会变动的参数写到配置文件.数据库中等可以存储数据且方便配置的地方 ...

  9. .Net Core3.0 WebApi 项目框架搭建 四:JWT权限验证

    .Net Core3.0 WebApi 项目框架搭建:目录 什么是JWT 根据维基百科定义,JWT(读作 [/dʒɒt/]),即JSON Web Tokens,是一种基于JSON的.用于在网络上声明某 ...

随机推荐

  1. MySQL锁(乐观锁、悲观锁、多粒度锁)

    锁 并发事务可能出现的情况: 读-读事务并发:此时是没有问题的,读操作不会对记录又任何影响. 写-写事务并发:并发事务相继对相同的记录做出改动,因为写-写并发可能会产生脏写的情况,但是没有一个隔离级别 ...

  2. JavaScript之创建八个对象过520

    马上又到了一年一度的520了,程序猿们赶紧创建对象过520吧!!! JavaScript创建对象的几种方式: 一:字面量方式: var obj = {name: '程序猿'}; 二:通过new操作符: ...

  3. c++ 超长整数加法 高精度加法

    c++ 超长整数加法 高精度加法 实现思路 不能直接使用加法,因为int和long long都已超出最大数据表示范围 数据读入采用string类型,读入后将数据的每一位存储到vector中 vecto ...

  4. ExtJS 布局-Accordion布局(Accordion layout)

    更新记录: 2022年6月2日 开始. 2022年6月3日 发布. 1.说明 accordion(手风琴)布局一次仅显示一个子组件,内置支持 折叠 和 展开.当需要堆叠多个子组件,并每次只显示一次时, ...

  5. php 图片转换二进制数

    $image = "1.jpg"; //图片地址 $fp = fopen($image, 'rb'); $content = fread($fp, filesize($image) ...

  6. HTML,CSS,JS,DOM,jQuery

    HTML 超链接访问顺序 a:link-->a:visited-->a:hover-->a:active.(有顺序) link:表示从未访问过的链接的样式 visited:表示已经访 ...

  7. windows 2003系统安装

    一.使用workstation创建虚拟机 二.系统安装 点击"Enter" 点击"F8" 点击"Enter" 如下图所示: 点击" ...

  8. UiPath手把手教程

    UiPath下载安装与激活 链接: https://pan.baidu.com/s/1o5Ur-QNTxsnlhi97-losJQ 提取码: 9dmf 复制这段内容后打开百度网盘手机App,操作更方便 ...

  9. fiddle如何使用代理

    前言 Fiddle作为抓包工具深受程序员的喜爱,可能在代理方面有些会感觉到迷惑的,可以通过本文的学习来掌握一些基本的知识. Fiddle介绍 Fiddler是位于客户端和服务器端的HTTP代理,也是目 ...

  10. Java获取显示器屏幕大小

    public static void main(String[] args) { Dimension screensize = Toolkit.getDefaultToolkit().getScree ...