Jmeter默认是不支持dubbo接口测试的,但是我们可以通过拓展的插件或jar包就可以实现此功能
1、Jmeter插件拓展
1.1、插件下载
测试dubbo,我们需要下载dubbo的插件,在Apache的dubbo插件GitHub中可以找到
https://github.com/thubbo/jmeter-plugins-for-apache-dubbo
点击进入,这里我们选择当前的最新版本2.7.8进行下载
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
的存在
2、测试接口准备
这里在本地准备好了一个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可以查到当前的服务已经提供完成:
3、测试dubbo接口
这里选择以直连的方式进行接口的测试,也就是利用了dubbo的泛化调用的方式,不需要知道注册中心,只需要知道服务接口,方法名以及服务提供者的地址即可
关于dubbo的泛化调用,后续再单独介绍
3.1 修改配置
打开Dubbo Sample
后我们会看到如上图的配置(可能根据版本的不同会有所变化),如果遇到了相同的情况,将Version
中的"1.0"删除,否则会影响我们的传参,然后再填入接口的信息即可,如下:
- 注意:这里要注意入参的类型要按照Java的数据类型填完整的类型格式
3.2 结果展示
执行测试,查看测试结果如下:
可以看到接口成功响应,结果成功返回,测试dubbo接口成功