欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【Jmeter】- 使用 jmeter 进行 dubbo 接口测试

程序员文章站 2022-07-02 12:59:08
大家都知道 dubbo 是一个优秀 rpc 框架,它一般(dubbox 除外)通过对外提供 tcp协议的接口进行外部调用。而我们日常使用的测试工具 jmeter 并不支持 dubbo 协议的请求。所以本文到此结束,谢谢观看,再见。 当然 jmeter 本身的确是不支持 dubbo 的请求,但是呢,有 ......

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


【Jmeter】- 使用 jmeter 进行 dubbo 接口测试


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

安装插件

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

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

  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 (测试计划)
【Jmeter】- 使用 jmeter 进行 dubbo 接口测试

创建线程组

在 test plan 上右击,然后添加 -> 线程 -> 线程组
【Jmeter】- 使用 jmeter 进行 dubbo 接口测试

线程组配置

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

添加 dubbo 默认配置

右击线程组,添加 -> 配置元件 -> dubbo config
【Jmeter】- 使用 jmeter 进行 dubbo 接口测试

配置 dubbo 默认配置

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

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

其它按需配置就可以了
【Jmeter】- 使用 jmeter 进行 dubbo 接口测试

添加 dubbo 取样器

右击 线程组,添加 -> 取样器 -> dubbo sample
【Jmeter】- 使用 jmeter 进行 dubbo 接口测试

配置 dubbo 取样器

  1. 获得接口列表

如果不想直接输入的话,点击 get provider list 会自动连接上面 dubbo config 配置的 zk 地址获得所有注册的服务

  1. 点击 get provider list
    1. 【Jmeter】- 使用 jmeter 进行 dubbo 接口测试
  2. 确定提示
    1. 点击按钮后会有一个可能会比较耗时的提示,不管点 yes 就行
    1. 【Jmeter】- 使用 jmeter 进行 dubbo 接口测试
  3. 获取完成后提示
    1. 【Jmeter】- 使用 jmeter 进行 dubbo 接口测试
  4. 选择要进行测试的接口与方法
  5. 选择你要调用的接口
    1. 在 interfaces 的下拉框选择,当然你也可以直接输入
    1. 【Jmeter】- 使用 jmeter 进行 dubbo 接口测试
  6. 选择你要调用的方法
    1. 在 methods 下拉框选择,当然你同样可以输入
    1. 【Jmeter】- 使用 jmeter 进行 dubbo 接口测试
  7. 设置参数
    1. 我们以一个判断是否为工作日的接口为例
    1. 接口定义    
    2. 【Jmeter】- 使用 jmeter 进行 dubbo 接口测试
    3. 参数定义
    4. 【Jmeter】- 使用 jmeter 进行 dubbo 接口测试
    5. 响应值定义
    6. 【Jmeter】- 使用 jmeter 进行 dubbo 接口测试
      2. 添加参数
    7. 点击 args 右边的,增加按钮
    8. 在 paramtype 框内添加参数类的全限定名,注意这里是 paramtype 是参数类型而不是参数名称
    9. 在 paramvalue 添加你要传参的参数类的 json 形式
    10. 【Jmeter】- 使用 jmeter 进行 dubbo 接口测试

      运行接口

  8. 配置工作完成后,点击工具栏的绿色运行按钮
  9. 【Jmeter】- 使用 jmeter 进行 dubbo 接口测试
  10. 点击后会有一个提示你先保存,直接 yes 找个你喜欢的文件夹,然后再次点击
  11. 【Jmeter】- 使用 jmeter 进行 dubbo 接口测试

    添加察看结果树

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