基于 JMeter 完成 Dubbo 接口的测试

news2024/12/28 3:23:25

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.jar
    jmeter-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 {
    
        @Override
        public 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.coloradmin.cn/o/193351.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DDR调试不通?先别扔,这个操作可能帮你逆袭!

作者&#xff1a;一博科技高速先生成员 黄刚相信大家过完一个美美的春节后&#xff0c;学习的热情一定会暴涨&#xff0c;反正高速先生给大家分享技术文章的热情是非常高涨的哈&#xff01;打从推出这个系列的仿真和理论相结合的话题后&#xff0c;文章受到了很多忠实粉丝的喜爱…

ThinkPHP6 获取上传文件属性及自定义文件验证及上传处理

TP^6.1文件上传有封装方法&#xff0c;如果不想用封装的&#xff0c;自定义上传怎么获取文件属性呢 目录 TP文件信息 打印上传文件信息 获取文件属性方法 1.获取文件大小&#xff08;单位bytes&#xff09; 2.获取文件后缀 3.获取文件上传路径 4.获取文件名称 5.上传文…

XSS Challenges通关教程

11.XSS Challenges通关教程 Stage#1 直接在search 输入框中输入payload&#xff1a; <script>alert(document.domain)</script> 点击search就XSS攻击成功了。 Stage #2 尝试直接输入<script>alert(document.domain)</script>&#xff0c;发现并未…

【2005NOIP普及组】T4.循环 代码解析

【2005NOIP普及组】T4.循环 代码解析 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 乐乐是一个聪明而又勤奋好学的孩子。他总喜欢探求事物的规律。一天,他突然对数的正整数次幂产生了兴趣。 众所周知,2的正整数次幂最后一位数总是不断的在重复2,4,8,6,2,…

使用PyTorch构建卷积神经网络(CNN)源码(详细步骤讲解+注释版) 01 手写数字识别

1 卷积神经网络&#xff08;CNN&#xff09;简介 在使用PyTorch构建GAN生成对抗网络一文中&#xff0c;我们使用GAN构建了一个可以生成人脸图像的模型。但尽管是较为简单的模型&#xff0c;仍占用了1G左右的GPU内存&#xff0c;因此需要探索更加节约资源的方式。 卷积神经网络…

vue 文件.env.production、.env.development简析

静下来 慢慢看 首先 我们需要搭建一个项目 依赖包会自动下载好 无需自己 npm i .env 无论什么环境都会加载 .env.production 生产环境加载 .env.development 测试开发环境加载 我们下面的例子分开来写 只用 .env.production .env.development 在项目根目录新建两个文件 分别…

Git和SVN

一&#xff1a;两者的区别 ——Git是分布式版本控制系统&#xff0c;SVN是集中式版本控制系统 ——集中式版本控制系统 早期出现的版本控制系统有&#xff1a;SVN、CVS等&#xff0c;它们是集中式版本控制系统&#xff0c;集中式版本控制系统有一个单一的集中管理的服务器&…

【微服务】分布式搜索引擎elasticsearch(2)

分布式搜索引擎elasticsearch&#xff08;2&#xff09;1.DSL查询文档1.1.DSL查询分类1.2.全文检索查询1.2.1.使用场景1.2.2.基本语法1.2.3.示例1.2.4.总结1.3.精准查询1.3.1.term查询1.3.2.range查询1.3.3.总结1.4.地理坐标查询1.4.1.矩形范围查询1.4.2.附近查询1.5.复合查询1…

Power BI饼图

饼图展现的是个体占总体的比例&#xff0c;利用扇面的角度来展示比例大小。 在PowerBI默认的可视化对象中当然也有这种标准饼图&#xff0c;通过点击拖拽轻松生成&#xff0c; 通过对标题和图例的格式稍加设置&#xff0c;一个简单而不失专业的饼图就可以用了&#xff0c; 饼…

学术加油站|HIST,面向海量数据的学习型多维直方图

编者按 本文系东北大学李俊虎所著&#xff0c;也是「 OceanBase 学术加油站」系列第九篇内容。 「李俊虎&#xff1a;东北大学计算机科学与工程学院在读硕士生&#xff0c;课题方向为数据库查询优化&#xff0c;致力于应用 AI 技术改进传统基数估计器&#xff0c;令数据库选择…

mysql逻辑架构和数据库缓冲池

逻辑架构 典型的CS架构&#xff0c;服务端程序使用的是mysqld 客户端进程向服务器进程发送一段文本&#xff08;SQL语句&#xff09;&#xff0c;服务器进程处理后再向客户端进程发送文本&#xff08;处理结果&#xff09; # 应用连接层: # 连接处理,用户鉴权(username,host…

分享|2023年全球市场准入认证咨讯

作为全球应用安全科学专家&#xff0c;UL Solutions服务全球100多个国家和地区的客户&#xff0c;将产品安全、信息安全和可持续性挑战转化为客户的机遇。UL Solutions 提供测试、检验、认证&#xff08;TIC&#xff09;&#xff0c;以及软件产品和咨询服务&#xff0c;以支持客…

Deep Learning for 3D Point Clouds: A Survey - 3D点云的深度学习:一项调查 (IEEE TPAMI 2020)

Deep Learning for 3D Point Clouds: A Survey - 3D点云的深度学习&#xff1a;一项调查&#xff08;IEEE TPAMI 2020&#xff09;摘要1. 引言2. 背景2.1 数据集2.2 评估指标3. 3D形状分类3.1 基于多视图的方法3.2 基于体积的方法3.3 基于点的方法3.3.1 逐点MLP方法3.3.2 基于卷…

AI助力多文档审查丨合同风险审查、招投标文件、合同和中标通知书一致性审查

当下&#xff0c;企业管理的数据和文档管理中充斥着大量有复用价值的数据、资料和内容性信息。每一家企业都有许多商业文档和法律文档需要使用和维护&#xff0c;其中包含了不同语言文字、手写体、数字、公式等。然而&#xff0c;目前企业的各种文档资料仍主要依靠人工手段进行…

【Redis】Redis面试题详解与使用案例(金三银四面试专栏启动)

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;2022博客之星全国TOP3&#xff0c;专注于后端、中间件、计算机底层、架构设计演进与稳定性建工设优化。 文章内容兼具广度深度、大厂技术方案&#xff0c;对待技术喜欢推理加验证&#xff0c;就职于知名金融公司…

ipv6实验

r1的配置为 [r1]int g0/0/0 [r1-GigabitEthernet0/0/0]ip address 12.1.1.1 24 [r1]int lo0 [r1-LoopBack0]ip address 1.1.1.1 32 [r1]ip route-static 0.0.0.0 0 12.1.1.2 r2的配置为 [r2]int g0/0/0 [r2-GigabitEthernet0/0/0]ip address 12.1.1.2 24 [r2]int lo0 […

小红书破局品牌增长:4大阶段+8个种草建议

品牌如何从激烈的竞争中突围&#xff0c;成为快速增长的“黑马”&#xff1f;本文就和大家一起聊聊围绕产品面对不同阶段的人群“种草”策略&#xff0c;希望能够帮助品牌更好地与用户沟通并提升营销效率&#xff0c;实现品效合一。 1、种草1.0 —— 立住产品&#xff0c;抢占赛…

Minecraft 1.19.2 Fabric模组开发 10.建筑生成

我们本次尝试在Fabric 1.19.2中生成一个自定义的建筑。 效果展示效果展示效果展示 由于版本更新缘故&#xff0c;1.19的建筑生成将不涉及任何Java包的代码编写&#xff0c;只需要在数据包中对建筑生成进行自定义。 1.首先我们要使用游戏中的结构方块制作一个建筑,结构方块使用…

企业内部沟通即时通讯软件要怎么选?

随着企业信息化的快速发展&#xff0c;为了工作效率的提高&#xff0c;即时通讯工具已经成为了众多企业办公时的标配&#xff0c;同时&#xff0c;各大企业对即时通讯功能的要求也越来越高。但是&#xff0c;现在市场上即时通信软件众多&#xff0c;各种功能和服务都是参差不齐…

python爬虫基本库的使用

博主简介&#xff1a;博主是一个大二学生&#xff0c;主攻人工智能领域研究。感谢缘分让我们在CSDN相遇&#xff0c;博主致力于在这里分享关于人工智能&#xff0c;C&#xff0c;python&#xff0c;爬虫等方面的知识分享。如果有需要的小伙伴&#xff0c;可以关注博主&#xff…