Jmeter测试dubbo接口

URL:用户指南 · thubbo/jmeter-plugins-for-apache-dubbo Wiki · GitHubDubbo Plugin for Apache JMeter, It is a plug-in developed for testing Dubbo in Jmeter. - 用户指南 · thubbo/jmeter-plugins-for-apache-dubbo Wikiicon-default.png?t=N7T8https://github.com/thubbo/jmeter-plugins-for-apache-dubbo/wiki/%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97

支持Jmeter版本

3.0+

支持Dubbo版本

2.5.x, 2.6.x

插件安装

插件包可以去github上下载。插件安装目录:${JMETER_HOME}\lib\ext.
如果使用的是:jmeter-plugins-dubbo-${version}-jar-with-dependencies.jar包含必要的依赖,推荐使用这个包。
如果使用的是:jmeter-plugins-dubbo-${version}.jar需要自行添加插件的依赖包,依赖包版本如下:
dubbo-2.5.3.jar
javassist-3.15.0-GA.jar
zookeeper-3.4.6.jar
zkclient-0.1.jar
jline-0.9.94.jar
netty-3.7.0-Final.jar
slf4j-api-1.7.5.jar
log4j-over-slf4j-1.7.5.jar

接口包依赖添加方式

1.3.x版本

不需要添加接口包依赖

1.2.x版本

接口包及接口包依赖的其他jar包请添加到${JMETER_HOME}\lib\ext,也可以通过下图方式添加:

插件使用

启动Jmeter添加DubboSample如下图:
添加后能看到DubboSample的具体操作页面,如下图:
根据上图提示传入值即可。

运行结果

注册中心

  1. Protocol=none为直连方式
  2. Protocol=zookeeper使用zk注册中心
  3. Protocol=multicast为广播方式
  4. Protocol=redis使用redis注册中心
  5. Protocol=simple使用simple注册中心

注意事项

  1. 当使用zk,address填入zk地址(集群地址使用","分隔),使用dubbo直连,address填写直连地址和服务端口
  2. timeout :服务方法调用超时时间(毫秒)
  3. version :服务版本,与服务提供者的版本一致
  4. retries :远程服务调用重试次数,不包括第一次调用,不需要重试请设为0
  5. cluster :集群方式,可选:failover/failfast/failsafe/failback/forking
  6. group : 服务分组,当一个接口有多个实现,可以用分组区分,必需和服务提供方一致
  7. 接口需要填写类型完全名称,含包名
  8. 参数支持任何类型,包装类直接使用 java.lang 下的包装类,小类型使用: int、float、shot、double、long、byte、boolean、char ,自定义类使用类完全名称。
  9. 参数值,基础包装类和基础小类型直接使用值,例如:int为1,boolean为true等,自定义类与 List 或者 Map 等使用json格式数据。

参数对照:

Java类型
paramType
paramValue
int
int
1
int[]
int[]
[1, 2]
double
double
1.2
double[]
double[]
[1.2, 1.3]
short
short
1
short[]
short[]
[1, 2]
float
float
1.2
float[]
float[]
[1.2, 1.3]
long
long
1
long[]
long[]
[1, 2]
byte
byte
字节
byte[]
byte[]
字节
boolean
boolean
true
false
boolean[]
boolean[]
[true, false]
char
char
A,如果字符过长取值为:"STR".charAt(0)
char[]
char[]
[A, B]
java.lang.String
java.lang.String
String
string
"foo"
foo
java.lang.String[]
java.lang.String[]
String[]
string[]
["foo1", "foo2"]
java.lang.Integer
java.lang.Integer
Integer
integer
1
java.lang.Integer[]
java.lang.Integer[]
Integer[]
integer[]
[1, 2]
java.lang.Double
java.lang.Double
Double
1.2
java.lang.Double[]
java.lang.Double[]
Double[]
[1.2, 1.3]
java.lang.Short
java.lang.Short
Short
1
java.lang.Short[]
java.lang.Short[]
Short[]
[1, 2]
java.lang.Long
java.lang.Long
Long
1
java.lang.Long[]
java.lang.Long[]
Long[]
[1, 2]
java.lang.Float
java.lang.Float
Float
1.2
java.lang.Float[]
java.lang.Float[]
Float[]
[1.2, 1.3]
java.lang.Byte
java.lang.Byte
Byte
字节
java.lang.Byte[]
java.lang.Byte[]
Byte[]
字节
java.lang.Boolean
java.lang.Boolean
Boolean
true
false
java.lang.Boolean[]
java.lang.Boolean[]
Boolean[]
[true, false]
JavaBean
com.your.package.BeanName
{"att1":"foo","att2":"foo2"}
JavaBean[]
com.your.package.BeanName
[{"att1":"foo"}, {"att1":"foo2"}]
java.util.Map以及子类
java.util.Map以及子类
{"att1":"foo","att2":"foo2"}
java.util.Map<String,JavaBean>
java.util.Map
{"keyName":{"att1":"foo"}}
java.util.HashMap<Object,Object>
java.util.HashMap
{"keyName":{"att1":"foo"}}
java.util.Collection以及子类
java.util.Collection以及子类
["a","b"]
java.util.List<String>
java.util.List
["a", "b"]
java.util.List<JavaBean>
java.util.List
[{"att1":"foo1"}, {"att1":"foo2"}]
java.util.List<Map<Object, JavaBean>>
java.util.List
[{"keyName1":{"att1":"foo1"}}, {"keyName2":{"att1":"foo1"}}]
java.util.List<Long>
java.util.List
[1, 2, 3]
java.util.ArrayList<Object>
java.util.ArrayList
["foo" , 1, true]
ps. paramValue可使用jmeter函数,例如:{"att1":"foo-${__RandomString(5,12345,ids)}"}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值