通过jmeter压测surging的方法

Jmeter简介

Jmeter是Apache开源的一个使用纯Java编写的压力测试工具,它最初是为测试web应用程序而设计的,但后来扩展到了其他测试功能。例如,可用于测试静态和动态资源以及web动态应用程序的性能等。Jmeter可以用来模拟对服务器、服务器组、网络或对象上的重负载,以测试其强度或分析服务在不同负载类型下的总体性能。

如今Jmeter是一个主流的、功能完善且强大的压测工具,由于是使用Java编写的,所以具有跨平台特性,可以运行在Windows、Mac、Linux等操作系统上。并且支持丰富的协议,如:HTTP/HTTPS、FTP、JDBC、SOCKET、SOAP。。。等,此外还有许多第三方插件支持以及第三方集成

前言

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

环境

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

内存:16.0 GB

语言:.NET 6.0

下载配置源码

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

1

2

3

4

public async Task<string> Say(string name)

       {

           return await Task.FromResult($"{name}: say hello");

       }

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<?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、 桌面选择&ldquo;计算机”(右键)--高级系统设置--环境变量

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 控制台进行压测,代码如下

1

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群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

  • 13
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值