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

news/2024/10/18 5:58:00/

目录

前言

环境

下载配置源码

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.ppmy.cn/news/327755.html

相关文章

华为OD机试 JavaScript 实现【简单密码】【牛客练习题 HJ21】,附详细解题思路

一、题目描述 现在有一种密码变换算法。 九键手机键盘上的数字与字母的对应&#xff1a; 1--1&#xff0c; abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0&#xff0c;把密码中出现的小写字母都变成九键键盘对应的数字&#xff0c;如&#xff1a;a …

oracle 慢sql查询语句

select * from (select sa.SQL_TEXT, sa.SQL_FULLTEXT, sa.EXECUTIONS “执行次数”, round(sa.ELAPSED_TIME / 1000000, 2) “总执行时间”, round(sa.ELAPSED_TIME / 1000000 / sa.EXECUTIONS, 2) “平均执行时间”, sa.COMMAND_TYPE, sa.last_load_time, sa.PARSING_USER_I…

MySQL:主从HASH SCAN算法可能导致从库数据错误

本文主要以hash scan全表为基础进行分析&#xff0c;而不涉及到hash scan索引&#xff0c;实际上都会遇到这个问题。本文主要描述的是update event&#xff0c;delete event也是一样的&#xff0c;测试包含8022&#xff0c;8026&#xff0c;8028均包含这个问题。 约定&#xff…

Updating P300: An Integrative Theory of P3a and P3b

文献信息&#xff1a;Polich, J. (2007). "Updating P300: an integrative theory of P3a and P3b." Clin Neurophysiol 118 (10): 2128-48.

谷粒商城p300

p300 支付宝沙箱 沙箱模拟真实环境 p301 支付 RSA 加密 加签 密钥等 p311 秒杀服务 定时任务 cron表达式 p312 springboot整合定时任务 p313 秒杀服务-时间日期处理

ERP-P300

ERP:事件相关电位 P300:事件相关刺激300-400ms出现正电位。主 要位于中央皮层区域, 其峰值大约出现在事件发生后 300 ms。 相关事件发生的概率越小所引起的P300越显著。 基于P300的BCI的优点是P30属于内部响应&#xff0c;使用者无需通过训练就可产生P300 事件相关电位或去同…

bnci-horizon-2020.eu P300数据 eeglab处理(1)

1. 数据下载 Data sets - BNCI Horizon 2020 (bnci-horizon-2020.eu) 1.1 P300数据详情 BNCI_CenterSpeller.pdf (tu-berlin.de) 1.2 Matlab 打开数据和导出数据 data二维&#xff0c;无法直接导入eeglab。我们先处理一下。 1.2.1 data导出 Copy X P1data data{1, 1}.X;…

P300数据集

P300脑电数据的制作 在基于P300的oddball刺激范式 BCI 系统研究中&#xff0c;最经典的应用是Farwell和Donchin在 1988年提出并设计的字符拼写器简称为P300 Speller。如下图所示&#xff0c;使用26个英文字母和 1-9个数字以及下划线排列成 6 x 6 的虚拟键盘矩阵。随机高亮字符…