原理
利用了Dubbo的泛化调用的特性,这个特性可以让客户没有API接口及模型类元的情况下调用服务端。同时把这一特性应用于jmeter插件,方便的进行配置和使用。
使用方法
一、下载安装
- 下载jmeter发送dubbo接口请求的插件
-
在jmeter中安装插件,并重启jmeter
image.png
二、使用
1、接口规范
这个需要问开发小哥哥要
例如:
- 测试环境zk:zookeeper://192.168.1.128:2181
- 接口名:com.unj.dubbotest.provider.DemoService
- 方法:String >> sayHello(String name)
- 入参:
字段名 | 类型 | 是否必传 | 注释 |
---|---|---|---|
name | String | Y | 姓名 |
- 出参
略
2、添加dubbo sampler
image.png
3、填写接口相关参数
image.png
4、执行查看结果
参数类型说明
参数类型填写java中对应参数的类型。
参数类型和方法参数列表中的参数类型保持一致,例如:
方法 sayHello(String name) 参数类型为String,参数类型就填写java.lang.String
参数类型分类如下:
- 8种基本变量类型直接使用:int、float、shot、double、long、byte、boolean、char
- 包装类直接用java.lang下的包装类 例如:java.lang.String
3.自定一类型使用 包路径+类名,数据格式为json
参数类型 | paramType | paramValue |
---|---|---|
int | int | 1 |
int[] | int[] | [1,2,3] |
double | double | 1.2 |
double[] | double[] | [1.2,1.3] |
short | short | 1 |
short[] | short[] | [1,2,3] |
float | float | 1.2 |
float[] | float[] | [1.2,1.3] |
long | long | 3 |
long[] | long[] | [2,3,4] |
byte | byte | 字节 |
byte[] | byte[] | 字节 |
boolean | boolean | true或false |
boolean[] | boolean[] | [true,false] |
char | char | A |
char[] | char[] | [A,B] |
String | String 或 java.lang.String | foo或者"foo" |
String[] | String[] 或 java.lang.String[] | ['foo','goo'] |
Integer | Integer 或 java.lang.Integer | 1 |
Integer[] | Integer[] 或 java.lang.Integer[] | [1,2,3] |
Double | Double 或 java.lang.Double | 1.2 |
Double[] | Double[] 或 java.lang.Double[] | [1.2,1.3] |
Short | Short 或 java.lang.Short | 1 |
Short[] | Short[] 或 java.lang.Short[] | [1,2] |
Long | Long 或 java.lang.Long | 1 |
Long[] | Long[] 或 java.lang.Long[] | 1 |
Float | Float 或 java.lang.Float | 1.2 |
Float[] | Float[] 或 java.lang.Float[] | [1.2,1.3] |
Byte | Byte 或 java.lang.Byte | 字节 |
Byte[] | Byte[] 或 java.lang.Byte[] | 字节 |
Boolean | Boolean 或 java.lang.Boolean | true 或 false |
Boolean[] | Boolean[] 或 java.lang.Boolean[] | [true,false] |
JavaBean | 包名+类名 | {"key1":"123","key2":"234"} |
JavaBean[] | 包名+类名 | [{"key1":"123","key2":"234"},{"key3":"123","key4":"234"}] |
Map<String,Integer> | java.util.Map | {"key":1} |
Map<String,JavaBean> | java.util.Map | {"key":{"key1":"value1"}} |
HashMap<String,JavaBean> | java.util.HashMap | {"key":{"key1":"value1"}} |
List<String> | java.util.List | ["a","b"] |
List<JavaBean> | java.util.List | [{"key1":"123","key2":"234"},{"key3":"123","key4":"234"}] |
ArrayList<String> | java.util.ArrayList | ["a","b","c"] |
Date | java.util.Date | 2018-1-1 |