大家都知道 dubbo 是一个优秀 rpc 框架,它一般(dubbox 除外)通过对外提供 tcp协议的接口进行外部调用。而我们日常使用的测试工具 jmeter 并不支持 dubbo 协议的请求。所以本文到此结束,谢谢观看,再见。

当然 jmeter 本身的确是不支持 dubbo 的请求,但是呢,有一个老哥,他通过 dubbo 的泛化调用特性写了一个jmeter 的插件,使用这个插件可以很方便的进行 dubbo 接口的调用。下面就来说说如果使用 jmeter 进行 dubbo 接口测试。

安装插件

  1. 首先我们要安装的这个插件叫 jmeter-plugins-for-apache-dubbo,下面是他相关的几个地址
  2. 项目的 github 地址
  3. 官方文档地址
  4. 各版本下载地址
  5. 下载插件

安装插件的第一件事肯定是下载了,点击上面的各版本下载地址去下载最新的插件,这里有两点要注意。

  1. 第一,作者版本记录放在github,下载的包放在的却是码云,可能基于下载速度的考虑。但是码云下载超过1M 要强制登录,所以前提你要有一个码云账号。
  2. 第二,作者打了两种包,一种是包含依赖的包 jmeter-plugins-dubbo-x.x.x-jar-with-dependencies.jar,另一种不包含依赖的包 jmeter-plugins-dubbo-x.x.x.jar。一般情况下推荐使用第一种,直接可以使用。第二种还要下载项目依赖的包再一个一个放进去。除非出现依赖冲突,否则别没事找事。
  3. 安装插件

安装就比较简单了,把上步下载的包放入jmeter 安装目录下的 ${JMETER_HOME}\lib\ext,重启就 OK 了

打开 Jmeter

默认会创建一个 Test Plan (测试计划)

创建线程组

在 Test Plan 上右击,然后添加 -> 线程 -> 线程组

线程组配置

   如果只是接口测试的话直接用默认配置的就可以了,这些配置与压测有关,后面会另起文章说明

添加 dubbo 默认配置

右击线程组,添加 -> 配置元件 -> Dubbo Config

配置 dubbo 默认配置

这里就需要按照你项目的具体情况进行配置了

  1. Protocol 对应项目中 dubbo 使用的协议,这里我们使用的 zk 协议
  2. Address 就是你的注册中心的地址了
  3. Group 项目配置的分组

其它按需配置就可以了

添加 Dubbo 取样器

右击 线程组,添加 -> 取样器 -> Dubbo Sample

配置 Dubbo 取样器

  1. 获得接口列表

如果不想直接输入的话,点击 Get Provider List 会自动连接上面 Dubbo Config 配置的 zk 地址获得所有注册的服务

  1. 点击 Get Provider List
    1.
  2. 确定提示
    1. 点击按钮后会有一个可能会比较耗时的提示,不管点 Yes 就行

  3. 获取完成后提示
    1.
  4. 选择要进行测试的接口与方法
  5. 选择你要调用的接口
    1. 在 Interfaces 的下拉框选择,当然你也可以直接输入

  6. 选择你要调用的方法
    1. 在 Methods 下拉框选择,当然你同样可以输入

  7. 设置参数
    1. 我们以一个判断是否为工作日的接口为例

    1. 接口定义    
    2. 参数定义
    3. 响应值定义

    4. 2. 添加参数
    5. 点击 Args 右边的,增加按钮
    6. 在 paramType 框内添加参数类的全限定名,注意这里是 paramType 是参数类型而不是参数名称
    7. 在 paramValue 添加你要传参的参数类的 json 形式
    8. 运行接口

  8. 配置工作完成后,点击工具栏的绿色运行按钮
  9. 点击后会有一个提示你先保存,直接 Yes 找个你喜欢的文件夹,然后再次点击
  10. 添加察看结果树

    上一步运行后,运行一闪而过,除非查服务端日志,否则我们肯定不知道响应的接口是什么。所以要配置一下结果记录
    右击 线程组,添加 -> 监听器 -> 察看结果树
        再运行一次,发现察看结果树内已经有请求记录了,其中响应数据就是本次请求的结果。请求结果比真正的返回类多了一个 class 字段,因为是使用的泛化调用,这里是告知响应类的类型

【Jmeter】- 使用 jmeter 进行 dubbo 接口测试的更多相关文章

  1. Jmeter官方插件实现Dubbo接口测试

    目前主流的分布式框架有Dubbo和SpringCloud, SpringCloud是基于Http协议的分布式框架,Dubbo是基于RPC的分布式框架,Jmeter没有内置对Dubbo接口的支持,很难直 ...

  2. 用阿里巴巴官方给Jmeter开发的Dubbo sampler取样器进行dubbo接口测试【图解剖析】

    自:https://blog.csdn.net/cyjs1988/article/details/84258046 [一]Dubbo sampler下载地址: 该插件支持jmeter 3.2及3.2以 ...

  3. jmeter(二十四)dubbo接口测试

    最近工作中接到一个需求,需要对一个MQ消息队列进行性能测试,测试其消费能力,开发提供了一个dubbo服务来供我调用发送消息. 这篇博客,介绍下如何利用jmeter来测试dubbo接口,并进行性能测试. ...

  4. jmeter:dubbo接口测试

    最近工作中接到一个需求,需要对一个MQ消息队列进行性能测试,测试其消费能力,开发提供了一个dubbo服务来供我调用发送消息. 这篇博客,介绍下如何利用jmeter来测试dubbo接口,并进行性能测试. ...

  5. jmeter进行dubbo接口测试

    最近工作中接到一个需求,需要对一个MQ消息队列进行性能测试,测试其消费能力,开发提供了一个dubbo服务来供我调用发送消息. 这篇博客,介绍下如何利用jmeter来测试dubbo接口,并进行性能测试. ...

  6. Jmeter学习笔记(五)——dubbo接口测试

    一.什么是dubbo接口 Dubbo 接口是阿里巴巴开源的致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案,dubbo框架告别了传统的web service的服务模式,进而改用 ...

  7. Jenkins+Ant+Jmeter搭建持续集成的接口测试平台(转)

    一.什么是接口测试? 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻 ...

  8. 采用jmeter和泛化测试dubbo服务接口

    采用jmeter和泛化测试dubbo服务接口 http://blog.csdn.net/linuu/article/details/54313560

  9. 【jmeter】搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)

    一.环境准备: 1.JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.Jmeter:http://jme ...

随机推荐

  1. HTML&CSS兼容性总结

    对目前所遇见的兼容性笔记进行整理分类: 不兼容浏览器 问题概要 问题描述 解决方法 IE6,IE7  3px 并列一行的元素左侧第一个元素没浮动,第二个元素左浮动,则两个元素之间会多3像素空隙 并在一 ...

  2. openGL基本概念

    OpenGL自身是一个巨大的状态机(State Machine):一系列的变量描述OpenGL此刻应当如何运行.OpenGL的状态通常被称为OpenGL上下文(Context).我们通常使用如下途径去 ...

  3. 用多线程优化Excel表格数据导入校验的接口

    公司的需求,当前某个Excel导入功能,流程是:读取Excel数据,传入后台校验每一条数据,判断是否符合导入要求,返回给前端,导入预览展示.(前端等待响应,难点).用户再点击导入按钮,进行异步导入(前 ...

  4. 如何选择合适的SSL证书类型

    网站安装SSL证书就可以将http升级为https加密模式,网站安装SSL证书因此成为一种趋势.如何为网站选择适合的SSL证书类型呢? SSL证书类型可分为2大类:1)按照验证方式分类2)按照支持域名 ...

  5. CentOS7 安装 单机 Mysql

    1.解压文件 [root@centos3 ~]# tar -zxvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ 2.重命名 [ ...

  6. 【原创】JAVA进程突然消失的原因?

    引言 值此七夕佳节,烟哥放弃了无数妹纸的邀约,坐在电脑面前码字,就是为了给读者带来新的知识,这是一件伟大的事业! 好吧,实际情况是没人约.为了化解尴尬,我决定卖力写文章,嗯,一定是我过于屌丝! 好了, ...

  7. Shiro权限管理框架(三):Shiro中权限过滤器的初始化流程和实现原理

    本篇是Shiro系列第三篇,Shiro中的过滤器初始化流程和实现原理.Shiro基于URL的权限控制是通过Filter实现的,本篇从我们注入的ShiroFilterFactoryBean开始入手,翻看 ...

  8. 4如何用PHP给MySQL数据库添加记录

    首先连接数据库(依旧用第二篇的方法) 假设数据库表里只有id,name,email三列 添加以下代码 $inputemail=写你要的email;$inputname=写你要的name;//先设定你要 ...

  9. fiddler设置断点

    1.有两种方法设置断点 before response:也就是发送请求之后,但是Fiddler代理中转之前,这时可以修改请求的数据 after response:也就是服务器响应之后,但是在Fiddl ...

  10. java订单生成工具类

    欢迎来到付宗乐个人博客网站.本个人博客网站提供最新的站长新闻,各种互联网资讯. 还提供个人博客模板,最新最全的java教程,java面试题.在此我将尽我最大所能将此个人博客网站做的最好! 谢谢大家,愿 ...