前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RPC接口如何进行压力测试?

RPC接口如何进行压力测试?

作者头像
猿天地
发布2020-02-24 12:46:14
4.3K0
发布2020-02-24 12:46:14
举报
文章被收录于专栏:猿天地

转自:KIWI的碎碎念

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

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

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

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

  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

image.png

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

    image.png

  2. 获取完成后提示

image.png

2. 选择要进行测试的接口与方法

  1. 选择你要调用的接口
    1. 在 Interfaces 的下拉框选择,当然你也可以直接输入

    image.png

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

    image.png

    3. 设置参数

  3. 我们以一个判断是否为工作日的接口为例
    1. 接口定义

    image.png

    1. 参数定义

    image.png

  1. 响应值定义

image.png

  1. 添加参数
    1. 点击 Args 右边的,增加按钮
    2. 在 paramType 框内添加参数类的全限定名,注意这里是 paramType 是参数类型而不是参数名称
    3. 在 paramValue 添加你要传参的参数类的 json 形式
运行接口
  1. 配置工作完成后,点击工具栏的绿色运行按钮

image.png

  1. 点击后会有一个提示你先保存,直接 Yes 找个你喜欢的文件夹,然后再次点击
添加察看结果树

上一步运行后,运行一闪而过,除非查服务端日志,否则我们肯定不知道响应的接口是什么。所以要配置一下结果记录 右击 线程组,添加 -> 监听器 -> 察看结果树

再运行一次,发现察看结果树内已经有请求记录了,其中响应数据就是本次请求的结果。请求结果比真正的返回类多了一个 class 字段,因为是使用的泛化调用,这里是告知响应类的类型

参考资料

[1]

项目的 github 地址: https://github.com/thubbo/jmeter-plugins-for-apache-dubbo

[2]

官方文档地址: https://github.com/thubbo/jmeter-plugins-for-apache-dubbo/wiki/%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97

[3]

各版本下载地址: https://github.com/thubbo/jmeter-plugins-for-apache-dubbo/releases

[4]

各版本下载地址: https://github.com/thubbo/jmeter-plugins-for-apache-dubbo/releases

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 猿天地 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装插件
  • 打开 Jmeter
  • 创建线程组
  • 线程组配置
  • 添加 dubbo 默认配置
  • 配置 dubbo 默认配置
  • 添加 Dubbo 取样器
  • 配置 Dubbo 取样器
  • 运行接口
  • 添加察看结果树
  • 参考资料
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档