dubbo接口测试_「测试」 - JMeter & 调用dubbo接口

测试dubbo接口常见的方法是用Java代码实现dubbo接口调用,这种方式参数化不太方便,对于代码能力不强的测试工程师也存在门槛。调研后,可以使用JMeter,加载jmeter-plugins-dubbo插件,实现dubbo接口调用。

  • Java 8
  • JMeter 5.1.1 r1855137
  • jmeter-plugins-dubbo-2.7.1-jar-with-dependencies.jar
  • alibaba dubbo 2.8.0(dubbox)

一、插件安装

插件下载,插件安装目录,${JMETER_HOME}libext。

推荐使用jmeter-plugins-dubbo-${version}-jar-with-dependencies.jar,包含必要的依赖,安装完成启动JMeter可以看到。

46302e59c87ff80390ed4f608517384d.png

二、JMeter接口测试准备

A、interface定义

public 

B、dubbo-xml定义

支持HTTP和dubbo两种调用方式。

<dubbo:service 

C、配置

zookeeper.url=10.3.253.38:2181
dubbo.port=8533
rest.port=8089

D、maven打包,生成接口jar包

b31559eac34216abc442218c6e06a6ca.png

E、HTTP调用,传入订单id,返回订单标识

证明接口正常运行。

69a3966c1c899240c7a339a475707784.png

三、JMeter接口测试

A、添加jar包依赖

接口包及接口包依赖的其他jar包添加到${JMETER_HOME}libext,也可以添加到TestPlan里。

e3813ea706993cc04650ef117b55e387.png

B、引入jar包之后,新建线程组,新建dubbo sample

37ed0e6e0be48401af4390b5a714d9f7.png

C、添加结果断言和查看结果树

56a3a184a5f6c0fd5ef068e4908d31ae.png

1bef5fbe819a4dfbfe515dc3dc6cae9f.png

D、查看消费情况

dc3d37012df0e8c99567f09639be7cd3.png

E、持续集成

上传脚本至服务器,通过CI可以进行集成。

jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]

这还只是验证,后续会有更多的二次开发,未来可期。

四、调试JMeter插件

因为需要将jmeter-plugins-dubbo的核心功能抠出来,摒弃掉JMeter那些awt、swing的GUI代码,需要调试JMeter插件,可以使用远程debug的方式进行,以前也对此方式进行过总结,参看:i.9ish:「Java」 - IntelliJ IDEA & Remote Debug。

A、编译插件jar包

将https://github.com/dubbo/jmeter-plugins-for-apache-dubbo,clone至本地,maven编译打包,使用本地jar替换至JMeter目录。

B、修改JMeter启动脚本

增加:-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=10240
%JM_START% "%JM_LAUNCH%" %ARGS% %JVM_ARGS% -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=10240 -jar "%JMETER_BIN%ApacheJMeter.jar" %JMETER_CMD_LINE_ARGS%

C、重启JMeter,加载JMX工程

可以看到端口开放提示。

5e2f9d11a9a34db474c949fc0b4d7c76.png

D、使用IntelliJ IDEA的Remote Debug连接插件,进行debug

执行线程组,触发插件执行,遇到断点,程序暂停。

31c2c3d10a1869bd303961531da41c88.png

五、dubbo方法调用,dubbo方法列表单元测试

已经能够成功调用到JMeter实例中的dubbo接口,以及返回zk上注册的dubbo名称。

f7a876e7007e9dc40fc1634acb29a1a6.png

c1d1c5988aaea8def79c21396893244c.png

参考:

https://github.com/dubbo/jmeter-plugins-for-apache-dubbo/wiki/用户指南

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值