用Jmeter进行Dubbo接口测试
Q:什么是dubbo?
A:举个生活中的例子说明,你要去动物园看老虎和孔雀,你需要买票,你就是消费方consumer,而动物园的动物就是dubbo,那动物哪里来的,肯定有个提供方provider。假设今天动物园新增了一种动物叫猴子,那么提供方需要在动物园管理员zookeeper那里登记注册备注好信息,游客购票消费后就可以看了。
Q:为什么要用dubbo?
A:a仓库调用b仓库的方法,导包显然不行,而dubbo的存在就是解决远程调用的。
dubbo是一种在分布式服务架构中的应用
节点角色说明
Provider: 暴露服务的服务提供方
Consumer: 调用远程服务的服务消费方
Registry: 服务注册与发现的注册中心
Monitor: 统计服务的调用次数和调用时间的监控中心
调用流程
- 服务容器负责启动,加载,运行服务提供者
- 服务提供者在启动时,向注册中心注册自己提供的服务
- 服务消费者在启动时,向注册中心订阅自己所需的服务
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
- 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
dubbo接口怎么测
1.使用工具-jmeter
-
1)依赖jar包:放置位置 apache-jmeter-5.0\lib\ext
链接: https://pan.baidu.com/s/1DEZkdcYYMtINwtwEof-wzg 提取码: 3j9h -
2)解决响应数据中中文显示乱码问题
-
打开安装路径\bin\jmeter.properties文件,找到配置:
#The encoding to be used if none is provided (default ISO-8859-1)
#sampleresult.default.encoding=ISO-8859-1
- 把注释删掉,编码改成utf-8格式
The encoding to be used if none is provided (default utf-8)
sampleresult.default.encoding=utf-8
- 3)重启Jmeter打开
-
dubbo参数设置
先启动jmeter添加dubbo sample
1.png-
1)填写zookeeper地址(不知道的qa小姐姐直接问rd宝宝吧),填完zk地址之后,点击Get Provider List 按钮,会自动检索出全部的Interfaces;选择被测接口,会自动填充下面的Interface Settings
-
2)Consumer Settings:填写版本号和分组
-
3)Interface:即要测试的服务路径+接口名
-
4)Method:类名
-
5)param:填写参数类型和参数
-
3.添加察看结果树,把上面写好的脚本跑起来