【JMeter压力测试】通过jmeter压测surging

news2024/11/18 21:40:40

目录

前言

环境

下载配置源码

JMeter和JDK下载

JDK+Jmeter安装

 Jmeter非GUI运行压测

结尾


前言

surging是异构微服务引擎,提供了模块化RPC请求通道,引擎在RPC服务治理基础之上还提供了各种协议,并且还提供了stage组件,以便针对于网关的访问, 相对于功能,可能大家更想知道能承受多大的并发,大家也会各自进行压测,当碰上一些问题,导致压测结果不理想就会扣帽子给框架引擎,这个性能不行,针对于压测结果,很多人不明所以,都是以一笔带过的方式告诉大家结果,那么这次从头至尾,把环境和测试过程进行梳理,通过此篇文章进行发布,也请各大同行监督。

环境

处理:Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz   2.20 GHz

内存:16.0 GB

语言:.NET 6.0

下载配置源码

1.通过surging 下载最新的源码, 下载完之后,选择测试ManagerService 模块服务中的Say服务,而测试的代码也比较简单,就是返回一字符串,代码如下

  public async Task<string> Say(string name)
        {
            return await Task.FromResult($"{name}: say hello");
        }

2. 把日志级别提高,因为这会影响性能,比如设置的info 就要比error 级别低三倍,以测试的日志配置为例,测试使用的是NLog, 在Nlog.config 下把coloredConsole改成error级别,代码如下

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <targets>
    <target name="coloredConsole" xsi:type="ColoredConsole" useDefaultRowHighlightingRules="false"
    layout="${longdate}|${pad:padding=5:inner=${level:uppercase=true}}|${message}" >
      <highlight-row condition="level == LogLevel.Debug" foregroundColor="DarkGray" />
      <highlight-row condition="level == LogLevel.Info" foregroundColor="Gray" />
      <highlight-row condition="level == LogLevel.Warn" foregroundColor="Yellow" />
      <highlight-row condition="level == LogLevel.Error" foregroundColor="Red" />
      <highlight-row condition="level == LogLevel.Fatal" foregroundColor="Red" backgroundColor="White" />
    </target>
    <target name="file" xsi:type="File"
            archiveAboveSize="10240"
        layout="${date}|${level:uppercase=true}|${message} ${exception}|${logger}|${all-event-properties}"
        fileName="c:\surging1\${level}\_${shortdate}.log" />
  </targets>
  <rules>
    <logger name="*" minlevel="error" writeTo="file" />
    <logger name="*" minlevel="error" writeTo="coloredConsole" />
  </rules>
</nlog>

3. release类型下 发布server,之后通过dotnet  Surging.Services.Server.dll 命令进行运行,运行成功之后,通过浏览器是否可访问

JMeter和JDK下载

1、JMeter下载地址:http://jmeter.apache.org/download_jmeter.cgi

2、JDK下载地址:https://www.oracle.com/technetwork/cn/java/javase/downloads/index.html

JDK+Jmeter安装

1、windows安装(以win 7为例)

1、 安装jdk、配置java环境变量(步骤略)

2、 解压apache-jmeter-2.13.zip到D盘

3、 桌面选择“计算机”(右键)--高级系统设置--环境变量

 4、 在”系统变量“---”新建“,在变量名中输入:JMETER_HOME,变量值中输入:D:\apache-jmeter-2.13

 5、 修改CLASSPATH变量,变量值中添加 %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar; 再点确定。

6、 进入到D:\apache-jmeter-5\bin下运行jmeter.bat即可打开JMeter

 Jmeter非GUI运行压测

创建配置jmx 文件

1. 新增Thread Group

配置thread group的user thread为2000

 2. 在thread group 下新增Http Request

配置Http Request,压测接口为http://localhost:281/api/manager/say?name=fanly,记得勾上Use KeepAlive

3.  然后点击save as 达到D:\

 4.运行jmeter 控制台进行压测,代码如下

jmeter -n -t D:\HTTP.jmx -l D:\read.csv -e -o D:\ResultReport

5. 运行结果如下

以上看不懂,可以把生成的read.csv 加载到jmeter 生成报告进行查看,如下图

 从以上图可以看出surging 的http 压测的吞吐量是12589/s

结尾

也欢迎同行,粉丝,客户们可以按照以上的配置方式进行压测,也提醒各位不要开启info 级别日志,因为这会造成性能上大幅降低,压测只有4000/s ,只有error 级别差不多1/6 ,也透露下surging 后续会提供平台可视化,以下是部分模块

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

在我的QQ技术交流群里(技术交流和资源共享,广告勿扰)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/633852.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最新版CleanMyMac X4.13.4中文版Mac清理软件

cleanmymac是一款强大的Mac系统垃圾清理工具,可以清除Mac系统多余的语言包,系统缓存,应用程序!可智能清理mac磁盘垃圾和多余语言安装包&#xff0c;快速释放电脑内存&#xff0c;轻松管理和升级Mac上的应用。同时CleanMyMac X可以强力卸载恶意软件&#xff0c;修复系统漏洞&…

EXCEL函数2(统计函数,逻辑函数及其余函数)

统计函数 1、COUNT&#xff08;单元格范围&#xff09;&#xff1a; 计算单元格范围的行数&#xff0c;比如用光标选中一定范围内的单元格&#xff0c;那么只要单元格里面有值&#xff0c;那么count函数便会将有值的单元格的数量统计出来 2、COUNTA&#xff08;单元格范围&am…

msf渗透测试学习-与永恒之蓝漏洞案例

MSF是Metasploit Framework的缩写&#xff0c;是一款广泛使用的渗透测试工具&#xff0c;具有强大的攻击功能。它提供了一个模块化的平台&#xff0c;通过将各种攻击载荷、漏洞利用和辅助工具组装在一起&#xff0c;可用于模拟各种攻击&#xff0c;测试系统安全性&#xff0c;也…

Task Add-in Sample (C#)

下例显示了用 C# 编写Task Add-in 的完整源代码。 使用 C# 类库 &#xff08;.NET Framework&#xff09; 创建 Visual Studio 中的项目。实现 IEdmAddIn5。在“任务属性”对话框中创建自定义页。自定义任务详细信息页面。 注意&#xff1a; 若要填充下面的 GUID 属性&#x…

【linux】登录root账户时报错Sorry, that didn‘t work. Please try again.抱歉,这不管用,请再试一次

一、问题背景 登录其他普通账户的GUI桌面&#xff0c;发现都很正常&#xff0c;但是登录管理员账户root的桌面&#xff0c;重启之后一段时间正常&#xff0c;过一段时间就会出现登录报错Sorry, that didn’t work. Please try again. 二、解决办法——配置文件的解析 下面给出…

由于找不到msvcp120.dll丢失的解决方法,计算机丢失msvcp120.dll修复教程

在打开游戏或者软件的时候&#xff0c;计算机提示由于找不到msvcp120.dll&#xff0c;无法继续执行此代码怎么办呢&#xff1f;msvcp120.dll是一个动态链接库&#xff08;DLL&#xff09;文件&#xff0c;其作用是提供一些常用的C函数和类库&#xff0c;以便在Windows操作系统上…

高手都是如何做 Mysql 慢 SQL 优化

tip&#xff1a;作为程序员一定学习编程之道&#xff0c;一定要对代码的编写有追求&#xff0c;不能实现就完事了。我们应该让自己写的代码更加优雅&#xff0c;即使这会费时费力。 &#x1f495;&#x1f495; 推荐&#xff1a;体系化学习Java&#xff08;Java面试专题&#…

2017~2018学年《信息安全》考试试题(A2卷)

北京信息科技大学&#xff0c;2017~2018 学年第二学期《信息安全》考试试题&#xff08;A 卷&#xff09; 适用专业班级&#xff1a;计科15级 重修课程所在学院&#xff1a;计算机学院 考试形式&#xff1a;闭卷 一、单选题&#xff08;本题满分20分&#xff0c;共含10 道小题…

《Java从入门到精通》学习笔记

Java从入门到精通学习笔记 第一章 初识java a) Java是一种通过解释方式来执行的语言。 b) Java语言编写的程序既是编译型&#xff0c;又是解释型的。编译只进行一次&#xff0c;而解释在每次运行程序时都会进行。 c) JDK下载安装 i. path:jdk/bin ii. calsspath:jdk/jre/lib ii…

融合动态反向学习的阿奎拉鹰与哈里斯鹰混合优化算法(DAHHO)-附代码

融合动态反向学习的阿奎拉鹰与哈里斯鹰混合优化算法(DAHHO) 文章目录 融合动态反向学习的阿奎拉鹰与哈里斯鹰混合优化算法(DAHHO)1.哈里斯鹰优化算法2.改进哈里斯鹰优化算法2.1 动态反向学习策略2.2 改进混合算法理论分析 3.实验结果4.参考文献5.Matlab代码6.python代码 摘要&a…

融合黄金正弦和随机游走的哈里斯鹰优化算法(GSHHO)-附代码

融合黄金正弦和随机游走的哈里斯鹰优化算法(GSHHO) 文章目录 融合黄金正弦和随机游走的哈里斯鹰优化算法(GSHHO)1.哈里斯鹰优化算法2.改进哈里斯鹰优化算法2.1 黄金正弦算法2.2 非线性能量指数递减策略2.3 高斯随机游走策略 3.实验结果4.参考文献5.Matlab代码6.python代码 摘要…

【软件环境安装部署】华为云服务器下 Docker 安装 MongoDB 以及 SpringBoot 整合 MongoDB 开发使用

文章目录 安装测试 MongoDB拉取镜像创建和启动容器登录mongo容器&#xff0c;并进入到【admin】数据库创建一个用户&#xff0c;mongo 默认没有用户连接mongo数据库测试数据库&#xff0c;插入一条语句测试数据库&#xff0c;查询刚才插入的语句查看所有数据库开放指定端口开放…

(八)CSharp-泛型中的方法结构委托接口(2)

一、泛型方法 泛型方法可以在泛型和非泛型类以及结构和接口中声明。 1、声明泛型方法 泛型方法具有类型参数列表和可选的约束。 泛型方法有两个参数列表。 封闭在圆括号内的方法参数列表。封闭在尖括号内的类型参数列表。 要声明泛型方法&#xff0c;需要&#xff1a; 在方法…

Java程序猿搬砖笔记(十四)

文章目录 MySQL自定义排序用locate本质是数字排序case when then...语法排序field()函数排序 阿里云Maven镜像仓库无法下载spring-cloud-dependencies依赖问题MySQL更新同一个表的同个字段解决方法一(推荐)解决方法二 SpringBoot返回的JSON中的null转换为空字符串Spring的相关注…

OpenGL光照之光照贴图

文章目录 漫反射贴图镜面光贴图放射光贴图代码 每个物体都拥有自己独特的材质从而对光照做出不同的反应的方法。这样子能够很容易在一个光照的场景中给每个物体一个独特的外观&#xff0c;但是这仍不能对一个物体的视觉输出提供足够多的灵活性。 我们将整个物体的材质定义为一个…

Linux命令:lsof

目录 一、理论 1.lsof 二、实验 1.无参数 2.-p 参数 3.-l 参数 4. -u 参数 5.-c 参数 6.-d 参数 7.fileName 8. -i 参数 一、理论 1.lsof (1)概念 命令 lsof &#xff08; list opened files &#xff09;负责列出系统中已经打开的文件&#xff0c;包括普通文件&a…

【uni-app】使用uni-app实现简单的登录注册功能

文章目录 前言一、页面布局二、注册页面1.注册接口使用2.注册成功提示3.注册成功页面跳转4.完整代码 三、登录页面1.登录接口使用2.本地存储使用3.完整代码 总结 前言 大家好&#xff0c;今天和大家分享一下如何在uni-app中实现简单的登录注册功能。 首先你需要掌握一下知识点…

【SQL Server】数据库开发指南(九)详细讲解 MS-SQL 触发器的的创建、修改、应用与适用场景

本系列博文还在更新中&#xff0c;收录在专栏&#xff1a;#MS-SQL Server 专栏中。 本系列文章列表如下&#xff1a; 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南&#xff08;一&#xff09;数据库设计的核心概念…

UE特效案例 —— 火堆

一&#xff0c;环境配置 创建默认地形Landscape&#xff0c;如给地形上材质需确定比例&#xff1b;添加环境主光源DirectionalLight&#xff0c;设置相应的强度和颜色&#xff1b;PostProcessVolume设置曝光&#xff0c;设置Min/Max Brightness为1&#xff1b; 与关闭Game Sett…

03并发进程

文章目录 哲学家进餐问题1.利用结构型信号量解决哲学家进餐问题解决方案1&#xff1a;每次最多允许四位哲学家就餐 2.利用AND型信号量解决哲学家进餐问题 生产者-消费者问题1.利用结构型信号量解决生产者-----消费者问题单缓冲区生产者-消费者问题多缓冲区 2.利用AND型信号量解…