jmeter 测试 dubbo服务

原由

最近抽取了项目部分功能,提供dubbo接口以供其他项目组使用,这里被别人依赖,就要负起责任啊,我们的dubbo服务能支撑多少并发,有多大吞吐量呢。

jmeter

很多人应该都比较熟悉了,就用它来告诉我们答案吧。

环境搭建


  • 下载安装
    • 下载zip,解压即可
    • 可以选择性是否配置环境变量
  • 构建dubbo服务调用工程
    • 引入pom依赖


<!--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/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>

        <dependency>
            <groupId>com.netease.kada.compose</groupId>
            <artifactId>kada-itemcenter-compose-api</artifactId>
            <version>${kada-compose}</version>
        </dependency>
  
  
   
   
<dependency> <groupId>com.alibaba</groupId> <artifactId>dubbok</artifactId> <version>3.0.2.1</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>2.12.0</version> <exclusions> <exclusion> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>2.12.0</version> </dependency> <!-- zk --> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> <exclusions> <!-- Exclude Commons Logging in favor of SLF4j --> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> <exclusions> <!-- Exclude Commons Logging in favor of SLF4j --> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency> </dependencies>
  • 源码
  • 打包jar
    • 直接maven install 后会有两个东西需要关注
    • 复制到jar到jmeter lib下ext中(D:\apache-jmeter-3.3\lib\ext)
    • 负责lib到到jmeter lib下,key新建lib-ext文件夹,存放lib依赖jar
    • 配置jmeter.properties(D:\apache-jmeter-3.3\bin下),找到search_paths进行配置,默认是注释掉的,指定你项目依赖jar(search_paths=D:/apache-jmeter-3.3/lib/lib-ext;),让jmeter引入。
    • 启动jmeter
      • 这里需要注意,个人在这里卡了很久,各种启动失败,一般是项目依赖jar和jmeter所需jar冲突,
      • 去掉项目依赖中的,jmeter打头 jar包 ,其他的具体查看启动后的log日志进行排查冲突jar
  • 使用jmeter进行测试

    • 项目启动成功后可以开心的进行测试了

      • 添加线程组  
        • 添加java请求
        • 添加相关监听,选择入口类名称
        • 运行吧


总结

  • 比较简单,主要是要搭建调用dubb服务的工程,引入jmeter依赖,使用jmeter格式调用。
  • 复制处理好的jar到jmeter中
  • 处理jmeter和jar相关冲突,一般删除工程中jmeter已经有的jar就好
  • 剩下就是jmeter基本的使用了

本文来自网易实践者社区,经作者张昌路授权发布。