基于 JMeter 完成 Dubbo 接口的测试

news/2025/1/12 16:04:05/

JMeter 默认是不支持 Dubbo 接口测试的,但是我们可以通过拓展的插件或 jar 包实现此功能。

JMeter 插件拓展

1.1 插件下载

测试 Dubbo,我们需要下载 Dubbo 的插件,在 Apache 的 Dubbo 插件 GitHub 中可以找到:

https://github.com/thubbo/jmeter-plugins-for-apache-dubbo 3

image1080×529 108 KB


点击进入,这里我们选择当前的最新版本 2.7.8 进行下载。

image1080×632 81.7 KB

1.2 插件安装

插件下载好后只需要将 jar 包放入到 jmeter 的 lib 下的 ext 文件夹即可。

由于我的 JMeter 是使用 Mac 的 Homebrew 安装的,所以我的路径为 /usr/local/Cellar/jmeter/5.3_1/libexec/lib/ext,具体的根据自己的安装路径寻找即可,如下可以看到我的 jar 包已放入。

 % pwd/usr/local/Cellar/jmeter/5.3_1/libexec/lib/ext% ls | grep jmeter-plugins-dubbo-2.7.8-jar-with-dependencies.jarjmeter-plugins-dubbo-2.7.8-jar-with-dependencies.jar

1.3 重启 JMeter

重启 Jmeter 后再采样器可,以看到 Dubbo Sample 的存在。

image819×413 115 KB

测试接口准备

这里在本地准备好了一个 Dubbo 的测试 demo 供演示使用,provider的方法如下,直接调用方法,返回一个用户信息列表:

  public class UserServiceImpl implements UserService {@Overridepublic List<UserAddress> getUserAddressList(String userId) {UserAddress userAddress1 = new UserAddress(1, "杭州市西湖区", "1", "Tester1", "12345678", "Y");UserAddress userAddress2 = new UserAddress(2, "杭州市余杭区", "2", "Tester2", "12345678", "N");return Arrays.asList(userAddress1, userAddress2);}}

通过 dubbo-admin 可以查到当前的服务已经提供完成:

测试 Dubbo 接口

这里选择以直连的方式进行接口的测试,也就是利用了 Dubbo 的泛化调用的方式,不需要知道注册中心,只需要知道服务接口,方法名以及服务提供者的地址即可。关于 Dubbo 的泛化调用,后续再单独介绍。

3.1 修改配置

image916×640 47.5 KB


打开 Dubbo Sample 后我们会看到如上图的配置(可能根据版本的不同会有所变化),如果遇到了相同的情况,将 Version 中的"1.0"删除,否则会影响我们的传参,然后再填入接口的信息即可,如下:

image920×669 50.2 KB

  • 注意:这里要注意入参的类型要按照 Java 的数据类型填完整的类型格式。

3.2 结果展示

执行测试,查看测试结果如下:

image1080×638 97.8 KB


可以看到接口成功响应,结果成功返回,测试 Dubbo 接口成功。

【作者信息】@TesterAllen,霍格沃兹测试学院优秀学员。


http://www.ppmy.cn/news/21549.html

相关文章

操作系统—王道考研之计算机系统概述

by:星辰 课程视频链接:https://www.bilibili.com/video/BV1YE411D7nH 第 1 章 计算机系统概述 1.1 操作系统的基本概念 1.1.1 操作系统的概念、功能和目标 系统资源的管理者、提供接口、作为扩充机器、虚拟机 1.1.1.1 熟悉的操作系统举例 1.1.1.2 操作系统的层次结构 1.1.1…

虹科教您 | 浅谈现代GNSS模拟中的软件定义架构

随着技术的迭代更新&#xff0c;GPS/GNSS模拟技术也在不断发展进步。在过去&#xff0c;想要进行GNSS仿真基本上只有一种选择&#xff1a;使用固定式或分配式的硬件进行模拟。而如今&#xff0c;带来颠覆性创新的新型软件定义架构正在迅速取代传统的定制架构&#xff0c;这种独…

优秀码农选择对象详细指南,看完记得要实战噢

2023年了&#xff0c;你是否已到了法定年纪&#xff0c;那么这一篇优秀码农选择对象的详细指南&#xff0c;你一定用得到&#xff0c;看完记得感谢狗哥哦&#xff01; 目录 一、对于婚姻先来思考这么几条 1. 太快决定结婚&#xff1f; 2. 一方或双方急于结婚&#xff1f; 3.…

芯片后端开发基础知识(一)

目录 1 概要 2 术语和定义 3 网表和系统划分 4 布局布线 4.1 布图规划 4.2 电源规划 4.3 布局 4.4 布线 5 时钟树综合 参考文献 1 概要 1、物理设计包含哪些流程和阶段&#xff1f;每个阶段的主要文件是什么&#xff1f; &#xff08;1&#xff09;与物理设计相对应的是逻辑设计…

SpringBoot Log4j2日志

Log4j2日志 Spring Boot 默认使用 Logback 作为日志记录框架&#xff0c;常见的日志记录框架有 log4j、Logback、Log4j2。 其中 Log4j2 是建立在 Log4j 和 Logback 的基础上的增强版&#xff0c;性能最好&#xff0c;所以选用 Log4j2。 SLF4J 是对所有日志框架制定的一种规范、…

那些你必须知道的CMMI认证知识!

CMMI认证的概述 CMMI认证&#xff0c;即“能力成熟度模型集成&#xff08;也有称为&#xff1a;软件能力成熟度集成模型&#xff09;”&#xff0c;是专门针对软件企业的一个专项认证。CMMI认证是鉴定企业在开发流程化和质量管理上的国际通行标准&#xff0c;全球软件生产标准大…

一文了解websocket和socket(论点:概念、流程、区别)

文章目录概念WebsocketSocket通信流程WebsocketSocket区别&#x1f31e;websocket和socket&#xff0c;字面意思的差别就是一个web&#xff0c;那么他俩之间到底有什么关系呢&#xff0c;以及区别是啥&#xff0c;接下来带大家详细了解一下 概念 Websocket &#x1f34a;Web…

面试官问 ,Mybatis SELECT 查询, 集合或者单个对象,如果数据库不存在数据,需要判空吗?

前言 于昨日下班时段&#xff0c;本人正在与生活作斗争&#xff0c;收到了金三银四一线作战小队成员紧急反应的战况问题。 不熟悉的或者是不知道怎么去看源码的看官&#xff0c;上车了。 正文 这面试题问的&#xff0c; 考察的是什么&#xff1f; ① mybatis框架的应用掌握情…