jmeter:dubbo接口测试
最近工作中接到一个需求,需要对一个MQ消息队列进行性能测试,测试其消费能力,开发提供了一个dubbo服务来供我调用发送消息。
这篇博客,介绍下如何利用jmeter来测试dubbo接口,并进行性能测试。。。
一、Dubbo简介
dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。其核心部分包含如下几点:
1、远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式;
2、集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持;
3、自动发现:基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器;
4、dubbo简化模型
二、Dubbo插件
1、jmeter本身并不支持dubbo接口的测试,需要下载第三方插件,然后将jar包放入${JMETER_HOME}\lib\ext路径下,重启即可。
插件下载地址:jmeter-plugins-dubbo
2、选择自己需要的插件,为了适配性考虑,建议1.3.2及以上的版本。
各版本更新说明:changelog
3、参数说明
三、Dubbo Sample
启动jmeter,添加线程组→Sampler→Listener,dubbo-sample界面如下:
各参数说明如下:
Protocol:注册协议,包括zookeeper、multicast、Redis、simple;
Address:注册地址,dubbo服务的IP+Port:
①、当使用zk,address填入zk地址,集群地址使用","分隔;
②、使用dubbo直连,address填写直连地址和服务端口;
Protocol:使用的dubbo协议,包括dubbo、rmi、hessian、webservice、memcached、redis,根据自己的协议类型选择对应的选项即可;
Timeout:请求超时时间,单位ms,根据dubbo具体配置填写;
Version:版本,dubbo不同版本之间差异较大,不同版本之间不能互相调用,这里指定dubbo版本,是为了方便识别和说明;
Retries:异常重试次数(类似这种分布式服务通信框架,大多都有重试机制,是为了保证事务成功率);
Cluster:集群类型,包括failover、failfast、failsafe、failback、failking;
Group:组类型,如果有的话,根据配置填写即可;
Connections:连接数,同上,根据配置填写;
Async:服务处理类型,包括sync(同步)、async(异步),根据配置填写;
Loadbalance:负载均衡策略,包括random(随机)、roundrobin(轮询)、leastactive(最少活跃数)、consistenthash(一致性哈希);
Interface:接口名(因为dubbo服务大多是开发根据规范自行命名的,因此这里需要填写完整的接口名+包名);
Method:当前接口下的方法名,按照开发提供的API文档填写即可;
Args:接口报文,根据API文档填写,如上图所示,添加输入行,输入对应的参数类型和值即可(参数类型和值如何定义填写,请参考上面的链接);
①、paramType:参数支持任何类型,包装类直接使用java.lang
下的包装类,小类型使用:int
、
float
、
shot
、
double
、
long
、
byte
、
boolean
、
char
,自定义类使用类完全名称;
②、paramValue:基础包装类和基础小类型直接使用值,例如:int为1,boolean为true等,自定义类与List
或者Map
等使用json格式数据;
以上即为利用jmeter的dubbo插件进行dubbo接口的测试,当然,同样可以进行性能测试,更多使用方式请自行探索。。。
jmeter:dubbo接口测试的更多相关文章
- jmeter dubbo接口测试
说在前面,测试熔断降级系统时,要求测试一下对应的dubbo接口性能 1.安装Jmeter 2.将dubbo依赖包下载好放在jmeter路径/lib/ext下, 3.打开jmeter,测试计划下新建线程 ...
- 用阿里巴巴官方给Jmeter开发的Dubbo sampler取样器进行dubbo接口测试【图解剖析】
自:https://blog.csdn.net/cyjs1988/article/details/84258046 [一]Dubbo sampler下载地址: 该插件支持jmeter 3.2及3.2以 ...
- 【Jmeter】- 使用 jmeter 进行 dubbo 接口测试
大家都知道 dubbo 是一个优秀 rpc 框架,它一般(dubbox 除外)通过对外提供 tcp协议的接口进行外部调用.而我们日常使用的测试工具 jmeter 并不支持 dubbo 协议的请求.所以 ...
- Jmeter官方插件实现Dubbo接口测试
目前主流的分布式框架有Dubbo和SpringCloud, SpringCloud是基于Http协议的分布式框架,Dubbo是基于RPC的分布式框架,Jmeter没有内置对Dubbo接口的支持,很难直 ...
- jmeter做接口测试
jmeter做接口测试有两种方式: 1. 2.
- JMeter Dubbo请求插件jmeter-plugin-dubbo.jar
JMeter Dubbo请求插件jmeter-plugin-dubbo.jar by:授客 QQ:1033553122 测试环境 apache-jmeter-3.2 Dubbo 2.6.2 声明 ...
- Jmeter用于接口测试中【接口耦合关联的实现】
Jmeter用于接口测试时,后一个接口经常需要用到前一次接口返回的结果,应该如何获取前一次请求的结果值,应用于后一个接口呢,拿一个登录的例子来说明如何获取. 1.打开jmeter, 使用的3.3的版本 ...
- Jmeter用于接口测试中,关联如何实现
Jmeter用于接口测试时,后一个接口经常需要用到前一次接口返回的结果,应该如何获取前一次请求的结果值,应用于后一个接口呢,拿一个登录的例子来说明如何获取. 1.打开jmeter, 使用的3.3的版本 ...
- 怎样用JMeter做接口测试?
本文介绍JMeter如何做web service测试,一般来说web服务,一般指的是HTTP请求相关的内容.这里就介绍一下如何利用JMeter做基于HTTP的web接口测试.接口也叫API(Appli ...
- 使用jmeter进行接口测试
目录 jmeter介绍 jmeter安装 修改UTF-8 jmeter主要测试组件 jmeter元件作用域与执行顺序 使用Jmeter进行接口测试 jmeter介绍 JMeter是Apache基金会J ...
随机推荐
- 应用层-day02
web与HTTP web的应用层协议时超文本传输协议(HyperText Transfer Protocol HTTP) HTTP是由两个程序实现的:一个客户端程序和一个服务器程序. HTTP定义了w ...
- Python collections系列之双向队列
双向队列(deque) 一个线程安全的双向队列 1.创建一个双向队列 import collections d = collections.deque() d.append(') d.appendle ...
- WPF中ItemsControl绑定到Google ProtocolBuffer的结构体时的性能问题
背景: 最近遇到一个DataGrid的性能问题:里面大概有4000个数据, 绑定的ItemSource的类也只有一层数据,即简单的List(里面每个是Protocol Buffer自动产生的一个类,1 ...
- QString乱谈(2)
长期以来,很多人都清楚,一旦C++源码中直接使用了中文,这样的源码想要跨平台(I18N)会非常困难. 随着: Windows下:MSVC2010成为主流 Linux下:GCC升级到4.6 C++中的中 ...
- 设置android的versionCode
在config.xml里面设置 android-versionCode="1" AndroidManifest.xml 将会修改 android:versionCode=" ...
- Python类(七)-类的特殊成员方法
__doc__ 用来表示类的描述信息 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" class Person(object) ...
- PowerDesigner中CDM和PDM如何定义外键关系
有A.B两张表(实体),各自有id作为主键,两表是一一对应关系.但略有不同: A表一条记录可以对应0或1条B表记录,B表一条记录必须对应唯一条A表记录. 这样的关系如何在CDM或PDM中定义? 在最后 ...
- 2015.1.8 Left join 左连接
格式 select f1.a, f2.b form f1 left jion f2 on .... 注意:左边的查询部分只能有select和from,不能出现where order by等.若有必须在 ...
- js兼容事件
//浏览器检测(function () { window.sys = {}; var ua = navigator.userAgent.toLowerCase(); var s; (s = ua.ma ...
- mysql:mysql Access denied for user root@
最近用本地Navicat连接集群的mysql,报了上述的错误,我认为是权限问题 之前试过赋权限给所有人,但是我这边还是连接不上,无奈,试试只分给我一个IP 开始:mysql -uroot -p //先 ...