最近工作中接到一个需求,需要对一个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下的包装类,小类型使用:intfloatshotdoublelongbytebooleanchar,自定义类使用类完全名称;

②、paramValue:基础包装类和基础小类型直接使用值,例如:int为1,boolean为true等,自定义类与List或者Map等使用json格式数据;

以上即为利用jmeter的dubbo插件进行dubbo接口的测试,当然,同样可以进行性能测试,更多使用方式请自行探索。。。

jmeter(二十四)dubbo接口测试的更多相关文章

  1. Jmeter(二十四)_服务器性能监控

    下载插件 1.访问网址http://jmeter-plugins.org/downloads/all/,下载三个文件.其中JMeterPlugins-Standard和JMeterPlugins-Ex ...

  2. Jmeter(二十四) - 从入门到精通 - JMeter函数 - 中篇(详解教程)

    1.简介 在性能测试中为了真实模拟用户请求,往往我们需要让提交的表单内容每次都发生变化,这个过程叫做参数化.JMeter配置元件与前置处理器都能帮助我们进行参数化,但是都有局限性,为了帮助我们能够更好 ...

  3. Bootstrap<基础二十四> 缩略图

    Bootstrap 缩略图.大多数站点都需要在网格中布局图像.视频.文本等.Bootstrap 通过缩略图为此提供了一种简便的方式.使用 Bootstrap 创建缩略图的步骤如下: 在图像周围添加带有 ...

  4. 二十四、Struts2中的UI标签

    二十四.Struts2中的UI标签 Struts2中UI标签的优势: 数据回显 页面布局和排版(Freemark),struts2提供了一些常用的排版(主题:xhtml默认 simple ajax) ...

  5. WCF技术剖析之二十四: ServiceDebugBehavior服务行为是如何实现异常的传播的?

    原文:WCF技术剖析之二十四: ServiceDebugBehavior服务行为是如何实现异常的传播的? 服务端只有抛出FaultException异常才能被正常地序列化成Fault消息,并实现向客户 ...

  6. VMware vSphere 服务器虚拟化之二十四 桌面虚拟化之手动池管理物理机

    VMware vSphere 服务器虚拟化之二十四 桌面虚拟化之手动池管理物理机 VMwareView手动池可以管理物理计算机 说明: 环境基于实验二十三 1.准备一台Windows 7的物理计算机名 ...

  7. Bootstrap入门(二十四)data属性

    Bootstrap入门(二十四)data属性 你可以仅仅通过 data 属性 API 就能使用所有的 Bootstrap 插件,无需写一行 JavaScript 代码.这是 Bootstrap 中的一 ...

  8. 3360: [Usaco2004 Jan]算二十四

    3360: [Usaco2004 Jan]算二十四 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 6  Solved: 6[Submit][Statu ...

  9. JAVA之旅(二十四)——I/O流,字符流,FileWriter,IOException,文件续写,FileReader,小练习

    JAVA之旅(二十四)--I/O流,字符流,FileWriter,IOException,文件续写,FileReader,小练习 JAVA之旅林林总总也是写了二十多篇了,我们今天终于是接触到了I/O了 ...

  10. 二十四. Python基础(24)--封装

    二十四. Python基础(24)--封装 ● 知识结构   ● 类属性和__slots__属性 class Student(object):     grade = 3 # 也可以写在__slots ...

随机推荐

  1. 2018-08-27 使用JDT核心库解析JDK源码后初步分析API命名

    源自术语词典API项目 · Issue #85 · program-in-chinese/overview, 打算先用早先的代码提取JDK API中的类/方法/参数名, 看看有哪些词需要翻译. 源码在 ...

  2. 通过 python ssh库连接并发送命令给设备

    import paramiko import time hostname = '192.168.248.156' port = 22 user = 'zhou' passwd = ' paramiko ...

  3. Ubuntu下解压缩文件

    记录Ubuntu下各种压缩和解压方式: .tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)—————— ...

  4. git 入门教程之github 教程

    github 教程 github 是一个基于 git 的代码托管平台,是平时工作学习的好帮手,学会如何用好 github 网站能够帮助我们更好分享代码或者与其他开发人员合作. 注册 github 账号 ...

  5. java抓取网页或者文件的邮箱号码

    抓文件的 package reg; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.i ...

  6. chmod命令-权限

    ---··[转] hmod命令:改变文件权限.         一:符号模式:     命令格式:chmod [who] operator [permission] filename who包含的选项 ...

  7. a标签下载

    <a href="存在问题.docx" download style="color:red;font-size:20px;cursor:pointer;float: ...

  8. Spring MVC HelloWorld入门及运行机制 (一)

    完整的项目案例: springmvc.zip 介绍 SpringMVC是一款Web MVC框架. 它跟Struts框架类似,是目前主流的Web MVC框架之一. 文章通过实例来介绍SpringMVC的 ...

  9. Sql Server 按格式输出日期

    SELECT dbo.fn_Data(getdate(),'yyyymmdd') CREATE FUNCTION [dbo].[fn_Data] (@date as datetime, @format ...

  10. 自动化测试基础篇--Selenium iframe定位问题

    摘自https://www.cnblogs.com/sanzangTst/p/7473437.html 有时候我们在定位的途中发现一个现象,元素就在那儿,不离不去,但是我们怎么整就是定不了位,这个时候 ...