大家都知道 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. CentOS 配置阿里云 NTP 服务

    NTP 是网络时间协议(Network Time Protocol),NTP 服务能保证服务器的本地时间与标准时间同步. ▶ 配置时区信息 1.删除系统里的当地时间链接 sudo rm /etc/lo ...

  2. Consul和Kong的实践(一)

    Consul和Kong的实践(一) 这一篇先介绍consul集群,以及consul和应用服务的结合使用,下一篇是和kong网关的结合. 一.Consul的集群安装 以其中一台机器为例: mkdir / ...

  3. Iphone使用过程中遇到的问题

    Q1:同一个Apple ID不同设备之间的通话记录保持同步 解决方法: Step1:"设置"--"电话"--"在其他设备上通话"--选择关闭 ...

  4. 为什么我们不用JIRA

    很多人问我,缺陷管理工具,为什么不用jira?而去自己造轮子开发一款bug记录系统 缄默如我,原因众多.如果只是3-5分钟就能讲的请的时候,我会先列出什么糟点呢? 1. 收费,一个人一个月的费用差不多 ...

  5. Java虚拟机(一)-Java内存区域

    通过看深入理解java虚拟机这本书,大致总结一些笔记,或者提出一些问题,希望大家深入交流学习,第一次写博客,大家多多支持 Java虚拟机对于很多Java开发人员每天都在用,但是大部分人初学者对这些并不 ...

  6. java封装 redis 操作 对象,list集合 ,json串

    /** * 功能说明: * 功能作者: * 创建日期: * 版权归属:每特教育|蚂蚁课堂所有 www.itmayiedu.com */package com.redis.service; import ...

  7. vue过滤器微信小程序过滤器和百度智能小程序过滤器

    因为最近写了微信小程序和百度小程序,用到了过滤器,感觉还挺好用的,所以就来总结一下,希望能帮到你们. 1. 微信小程序过滤器: 1.1:首先建一个单独的wxs后缀的文件,一般放在utils文件夹里面. ...

  8. SAP-批量删除生产订单

    1.SE38运行:PPARCHP1 2.先用COOIS导出订单,已经CLSD,没有删除的

  9. 使用Graphlab参加Kaggle比赛(2017-08-20 发布于知乎)

    之前用学生证在graphlab上申了一年的graphlab使用权(华盛顿大学机器学习课程需要)然后今天突然想到完全可以用这个东东来参加kaggle. 下午参考了一篇教程,把notebook上面的写好了 ...

  10. .net软件开发脚本规范-SQL脚本标准

    一. SQL脚本标准 各文件夹存放的脚本说明 存储过程:除“基础_”开头的所有存储过程,包含新增.修改.删除.列表.提交.审核. 基础数据:“基础_”开头的存储过程,用于下拉列表的数据加载公共方法. ...