性能测试工具 Jmeter 测试 Dubbo 接口脚本编写

这篇博客介绍了如何利用 JMeter 对 Dubbo 接口进行性能测试。首先,创建一个 Maven 项目并配置 dubbo-config.xml。接着,自定义 JMeter Java Sampler 并实现参数化。然后,调试代码并打包为 JRA 包,确保所有依赖都在正确路径下。最后,通过 JMeter 配置进行分布式压测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言:

1、背景

2、工具准备

3、创建一个 maven 项目,此处可以创建一个 quickstart,参考截图

4、以上配置完毕后,开始撸代码

5、上面那个类是不需要从 jmeter 中获取参数,如果要从 jmeter 中获取相关的参数,可以参考下面这个类

6、调试代码

7、调试通之后,将代码打成 jra 包

8、因为步骤 7 中引入的第三方的 jar 包都放在了 lib-dependency 中,所以需要指定 jmeter 启动的时候,加载这个目录下的 jar 包

9、启动 jmeter,创建一个 java 请求,

10、此处可以把参数放在 csv 文件里,然后测试各种不同的场景

11、以上做完之后,简单调试下脚本,能够正常运行,然后将相关的依赖,脚本,数据文件传到压测机上,调整线程数,进行正式的压测


前言:

 性能测试是评估系统在不同负载条件下的性能和稳定性的关键环节。JMeter是一个流行的性能测试工具,可以用于测试Dubbo接口的性能。

1、背景

公司大部分的服务都是非 HTTP 的接口,都是 dubbo 接口,如今需要对一些接口做性能测试。

2、工具准备

Jmeter 3.2、 Java IDE(本文采用 IDEA),Maven 作为包管理工具

3、创建一个 maven 项目,此处可以创建一个 quickstart,参考截图

创建好之后,大概的工程结构是这样的:


其中,resource 中存放 dubbo 配置文件。
说到 resources,此处有一个坑,dubbo-config.xml 中的这个 xsd 文件,由于 code.alibabatech.com 已经停止了服务,需要使用下载一个 xsd 然后进行本地导入。此处也可以不用下载,直接在 pom 文件中,配置 dubbo 的依赖,然后下载 dubbo.jar,解压后就会有 dubbo.xsd 文件,拷贝出来即可,参考下图

pom.xml 文件配置

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

    <!--jmeter依赖的jar包-->
    <dependency>
      <groupId>org.apache.jmeter</groupId>
      <artifactId>ApacheJMeter_core</artifactId>
      <version>3.2</version>
      <exclusions>
        <exclusion>
          <groupId>org.codehaus.groovy</groupId>
          <artifactId>groovy-all</artifactId>
        </exclusion>
        <exclusion>
          <groupId>commons-math3</groupId>
          <artifactId>commons-math3</artifactId>
        </exclusion>
        <exclusion>
          <groupId>commons-pool2</groupId>
          <artifactId>commons-pool2</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.alibaba/dubbo -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>dubbo</artifactId>
      <version>2.5.3</version>
      <exclusions>
        <exclusion>
          <artifactId>spring</artifactId>
          <groupId>org.springframework</groupId>
        </exclusion>
      </exclusions>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.101tec/zkclient -->
    <dependency>
      <groupId>com.101tec</groupId>
      <artifactId>zkclient</artifactId>
      <version>0.3</version>
      <exclusions>
        <exclusion>
          <artifactId>zookeeper</artifactId>
          <groupId>org.apache.zookeeper</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_java -->
    <dependency>
      <groupId>org.apache.jmeter</groupId>
      <artifactId>ApacheJMeter_java</artifactId>
      <version>3.2</version>
      <exclusions>
        <exclusion>
          <groupId>commons-math3</groupId>
          <artifactId>commons-math3</artifactId>
        </exclusion>
        <exclusion>
          <groupId>commons-pool2</groupId>
          <artifactId>commons-pool2</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <!--spring依赖的jar包-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.36</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
  
Doe 发布 [V1.0.0] 前段时间排查某问题的时候,想要快速知道某些dubbo接口(三无)的响应结果,但不想启动项目(因为这些项目不是你负责的,不会部署而且超级笨重),也不想新建一个dubbo客户端项目(占地方),也不想开telnet客户端连接口(麻烦而且有限制)。所以扣了dubbo的netty模块源码,封装了个收发客户端集成一个工具,可以快速调试dubbo接口。源码地址:https://github.com/VIPJoey/doe 极简模式 普通模式 目录结构 mmc-dubbo-api 接口项目,主要用于测试。 mmc-dubbo-provider dubbo提供者项目,主要用于测试。 mmc-dubbo-doe 主项目,实现dubbo接口调试。 deploy 部署文档 功能特性 极简模式:通过dubbo提供的telnet协议收发数据。 普通模式:通过封装netty客户端收发数据。 用例模式:通过缓存数据,方便下一次操作,依赖普通模式。 增加依赖:通过调用maven命令,下载jar包和热加载到系统,主要用来分析接口方法参数,主要作用在普通模式。 依赖列表:通过分析pom文件,展示已经加载的jar包。 其它特性 springboot 整合 redis,支持spring el 表达式。 springboot 整合 thymeleaf。 springboot 整合 logback。 netty rpc 实现原理。 开发环境 jdk 1.8 maven 3.5.3 dubbo 2.6.1 lombok 1.16.20 idea 2018 windows 7 安装步骤 安装jdk 安装maven,并设置好环境变量,仓库目录。 进入mmc-dubbo-api目录,执行mvn clean install命令,省api的jar包。 进入mmc-dubbo-doe目录,执行mvn clean install 命令,在target目录生成dubbo-doe-1.0.0-RELEASE.jar 在F盘(可以任意盘)创建目录F:\app\doe 把dubbo-doe-1.0.0-RELEASE.jar拷贝到F:\app\doe 把deploy目录中的所有文件拷贝到F:\app\doe 如果您电脑安装了git bash,可以在bash窗口运行 ./deploy.sh start,否则如果没有安装git bash,只能打开cmd切换到F:\app\doe目录,然后执行java -jar dubbo-doe-1.0.0-RELEASE.jar --spring.profiles.active=prd 打开浏览器,访问地址:http://localhost:9876/doe/home/index 全剧终
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值