目录
3、创建一个 maven 项目,此处可以创建一个 quickstart,参考截图
5、上面那个类是不需要从 jmeter 中获取参数,如果要从 jmeter 中获取相关的参数,可以参考下面这个类
8、因为步骤 7 中引入的第三方的 jar 包都放在了 lib-dependency 中,所以需要指定 jmeter 启动的时候,加载这个目录下的 jar 包
10、此处可以把参数放在 csv 文件里,然后测试各种不同的场景
11、以上做完之后,简单调试下脚本,能够正常运行,然后将相关的依赖,脚本,数据文件传到压测机上,调整线程数,进行正式的压测
前言:
JMeter 是一款常用的性能测试工具,它可以帮助我们模拟多个并发用户同时访问接口,从而检测接口的负载和性能。在本文中,我们将介绍如何使用 JMeter 进行 Dubbo 接口的测试,并提供一些编写 JMeter 测试脚本的技巧和方法。
1、背景
公司大部分的服务都是非 HTTP 的接口,都是 dubbo 接口,如今需要对一些接口做性能测试。
2、工具准备
Jmeter 3.2、 Java IDE(本文采用 IDEA),Maven 作为包管理工具
3、创建一个 maven 项目,此处可以创建一个 quickstart,参考截图
创建好之后,大概的工程结构是这样的:
其中,resource 中存放 dubbo 配置文件。
说到 resources,此处有一个坑,dubbo-config.xml 中的 http://code.alibabatech.com/schema/dubbo/dubbo.xsd 这个 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>
<artifactId>spring-context</artif