通过jmeter压测surging的方法

目录
  • Jmeter简介
  • 前言
  • 环境
  • 下载配置源码
  • JMeter和JDK下载
  • JDK+Jmeter安装
  • Jmeter非GUI运行压测
  • 结尾

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服务,而测试的代码也比较简单,就是返回一字符串,代码如下

 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、 桌面选择&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 控制台进行压测,代码如下

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 后续会提供平台可视化,以下是部分模块

到此这篇关于通过jmeter压测surging的文章就介绍到这了,更多相关jmeter压测surging内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Jmeter分布式压力测试实现过程详解

    一.分布式压测原理 如下图(这个图说明的是要一台控制机,然后由这台控制机发压测脚本到每台远程执行机,然后由控制机收集执行机结果) 二.修改 Jmeter 配置文件 在主控机的jmeter的bin目录找到配置文件jmeter.properties.找到里面的remote_hosts 部分,修改内容为:remote_hosts=xx,xx代表的是压力机的ip:port.如果是多个压力机,之间使用[,]分隔 控制机端口修改,防止端口被占用(注意:控制机修改后,每台执行机的端口也要修改成一致) 电脑防火

  • Java使用jmeter进行压力测试

    本篇文章简单讲一下使用jmeter进行压力测试.其压测思想就是 通过创建指定数量的线程,同时请求指定接口,来模拟指定数量用户同时进行某个操作的场景. jmeter测试计划配置: 运行bin目录下的jmeter.sh,启动 1. 在测试计划上右键 - 添加线程组,设置线程数和循环次数, Rame-Up时间表示在多少秒内启动对应线程数的线程 2. 配置http请求,可以复制浏览器访问该接口时的请求头."从剪贴板添加"的方式还是很方便的. 可以配置请求默认值,该配置可以被整个线程组(也可以是

  • JMeter对MySQL数据库进行压力测试的实现步骤

    目录 一.安装并配置 JMeter 下载 配置环境变量 导入 MySQL 驱动 二.启动 JMeter 三.开始进行压力测试 配置 观察结果 总结 一.安装并配置 JMeter 下载 官网下载,下载二进制的这个 zip 配置环境变量 然后解压到你喜欢的位置,配置环境变量,新建一个 JMETER_HOME 然后在 path 里添加 %JMETER_HOME%\bin 在 CLASSPATH 的最前部加上%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JME

  • jmeter压力测试工具简介_动力节点Java学院整理

    什么是压力测试 顾名思义:压力测试,就是 被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况) 比如: 2000个用户同时到一个购物网站购物,这些用户打开页面的速度是否会变慢,或者网站是否会奔溃 做压力测试的常用工具 做压力测试,一般要使用工具, 人工是没办法做的. 最常用的工具是LoadRunner, 但是LoadRunner毕竟是收费软件,而且使用上也比较复杂. 现在越来越多的人开始使用Jmeter来做压力测试. 免费, 而且使用上非常简单. 做压力测试的

  • Jmeter多用户并发压力测试过程图解

    jmeter多用户并发压力测试可用CSV Data Set Config (添加--配置元件--CSV Data Set Config) Filename: 文件的位置(如果是同目录下csv文件,可不填写路径,写名称即可) Variable Names: 变量名称.多个变量用 , 或者 ; 隔开 Recycle on EOF:文件结束后是否要循环 Stop thread on EOF(文件结束是否中止线程) File Encoding: 默认为ANSI Allow Quoated data: 双

  • Jmeter多台机器并发请求实现压力性能测试

    工作需要开始研究前置服务的压力性能测试,最后选定用jemeter工具,先用本机跑一万个用户,电脑直接蓝屏,通过研究发现当需要模拟数多达上万的并发用户时,使用单台电脑(CPU和内存)可能无法支持,会将程序跑崩溃,或是引起JAVA内存溢出. 由于jemeter本身就是java语言编写,就会耗费电脑的一部分内存,个人工作电脑的配置:16.00G内存,可以大概达到5000-8000左右的并发数量.这个还是这台电脑没有其他应用程序占用内存的情况,如电脑使用中已经将内存消耗很大,基本一台电脑来做性能测试是很

  • Jmeter压力测试简单教程(包括服务器状态监控)

    目录 步骤一  安装Jmeter 步骤二  使用Jmeter测试未登录页面 步骤三  设置线程并发数 步骤四  设置其他监听器 步骤五  登录测试 步骤六  会话保持 步骤七  文件读取网址 步骤八  服务器状态实时监听     前段时间公司需要对服务器进行压力测试,包括登录前的页面和登录后的页面,主要目的是测试负载均衡的实现效果.不知道是不是因为Jmeter不如loadRunner火爆还是什么,网上关于Jmeter的资料有很多但是大多千篇一律,要么简单弄个页面测试一下,要么全篇都是介绍很多和J

  • 通过jmeter压测surging的方法

    目录 Jmeter简介 前言 环境 下载配置源码 JMeter和JDK下载 JDK+Jmeter安装 Jmeter非GUI运行压测 结尾 Jmeter简介 Jmeter是Apache开源的一个使用纯Java编写的压力测试工具,它最初是为测试web应用程序而设计的,但后来扩展到了其他测试功能.例如,可用于测试静态和动态资源以及web动态应用程序的性能等.Jmeter可以用来模拟对服务器.服务器组.网络或对象上的重负载,以测试其强度或分析服务在不同负载类型下的总体性能. 如今Jmeter是一个主流的

  • docker 内存监控与压测方式

    一直运行的docker容器显示内存已经耗尽,并且容器内存耗尽也没出现重启情况,通过后台查看发现进程没有占用多少内存.内存的监控使用的是cadvisor,计算方式也是使用cadvisor的页面计算方式,所以决定对docker的内存计算做下研究. docker version: Client: Version: 1.12.6 API version: 1.24 Go version: go1.6.4 Git commit: 78d1802 Built: Tue Jan 10 20:20:01 201

  • Docker部署及使用压测神器sysbench的方法

    目录 前言 ️ 1. sysbench简介 1.1 sysbench能做什么 1.2 压力测试的指标 1.3 常见的压测工具 ️ 2.容器安装 2.1 服务器申请 2.2 yum安装 ️ 3.测试 CPU ️ 4.测试磁盘 IO ️ 4.测试内存 前言 sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试 ️ 1. sysbench简介 1.1 sysbench能做什么 新业务上线的时候通常需要对数据库性能进行压力测试,以确认是否满足需要,今天

  • 浅谈Spring Boot: 接口压测及简要优化策略

    工程做好之后,需要对接口进行压力测试.可以自己编写线程池模拟多用户访问测试,也可以使用jmeter进行压测.jmeter的好处是测试方便,并且有完善的结果分析功能.本次采用jmeter进行压力测试. 1.准备数据,为了测试准备200w条以上的数据.一个简单的方法是使用下面的sql快速创建. INSERT INTO table (user_name,address) SELECT user_name, address FROM table; 但这样创建的数据不同记录的重复部分太多,和实际业务不太相

  • 详解Jmeter线程组的设置方法

    目录 一.事件背景 二.关于线程组的相关设置 一.事件背景 个人感觉自己做性能测试,可以说是轻车熟路了,而且工作多年一直都是这一套测试思路及体系,从未质疑过自己,也许是狮子座的迷之自信吧! 也就在上周让我对自己的测试方法及体系产生了质疑! 为什么?在性能测试的时候,压测500并发通过,人家40并发都过不去. 通俗点说,就是你测试没问题,在人家那测试出问题了,忽略脚本问题,显而易见因为测试方法差异导致测试结果的不同. 1.关于执行方法的差异 同事的做法是直接跑10分钟的稳定性测试,然后上并发数:

  • Jmerte分布式压测及分布式压测配置教程

    目录 1.本地基于jmeter创建压测项目 2.将项目打包 3.Master配置 4.Slave配置 5.启动Slave 6.master启动压测 7查看报告 1.本地基于jmeter创建压测项目 (1)pom中依赖jmeter包: <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_java</artifactId> <version>

  • python接口测试对修改密码接口进行压测

    目录 引言 测试脚本代码 usercenter主要代码 okaybase主要代码 引言 做接口测试中,对于一般性的单业务接口测试很多工具可供选择,但是对于一些相关业务相关性的关联接口测试就比较麻烦,使用工具比如jmeter.postman.soapui等等就比较麻烦. 我比较偏重脚本化执行测试用例,所以选择了groovy作为主要语言来进行接口测试,但是脚本依赖的库还是基于之前所在的java为主的测试框架,有兴趣的可以翻翻以前的文章. 项目的架构思路是以模块为基础把接口分类,然后对于接口的请求单独

  • php在线解压ZIP文件的方法

    本文实例讲述了php在线解压ZIP文件的方法.分享给大家供大家参考.具体分析如下: 在PHP的函数库中只找到了个ZLIB的函数还跟压缩有点关系,但是使我失望的是他没能解ZIP的文件,但最后还是让我找到了解决的方法,就是通过PHP的程序执行函数来实现这个功能,因为现在能解ZIP文件的东西实在是太多啦,你要是不信,可以到有下载软件的地方找找看,保准你不会失望的,我的话不会错的. 下面就是该程序的原文件,upload.php代码如下: 复制代码 代码如下: <table border="0&qu

  • python性能测试对手机号绑定进行压测

    目录 引言 业务逻辑: 基本的校验规则如下: 解决方案: 测试方案: 压测脚本: 模块类方法: 引言 最近遭遇了绑定手机号相关的压测需求,有了手机号登录的经验和测试数据,这次算起来比较简单.最重要的是难点就是要求开发配合调整配置已经在上一期文章:手机号验证码登录性能测试中问题解决了,绑定手机号唯一的难点就是如何在单账号绑定的过程中不断切换手机号,而且保证最后账号的绑定手机号还是一开始的14+uid的模式. 业务逻辑: 请求发送验证码接口,发送成功(未绑定的手机号,用户登录状态)可以获取到登录的一

  • python性能测试手机号验证码登录压测示例详解

    目录 引言 业务逻辑: 基本的校验规则如下: 解决方案: 测试方案: 压测脚本: 模块类方法: 引言 这两天遭遇了手机号登录相关的压测需求,算是比较棘手的.主要原因有两个,第一:之前从来没有接手过这个项目,不熟悉各种规则:第二:数据量偏大,需要开发配合协调校验规则. 业务逻辑: 请求发送验证码接口,发送成功(已绑定的手机号,且有效的用户状态)可以获取到登录的一个参数traceNo 使用traceNo.短信验证码.手机号请求登录接口 基本的校验规则如下: 手机号校验,排除一些不存在的号段,11位数

随机推荐