Dubbo接口测试

Dubbo接口测试

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。

dubbo接口实例见我上一篇博客,被测试接口Service 实现如下。

public class UserServiceImpl implements UserService {
	@Override
	public String login(String name) {
		return name+"login";
	}
	@Override
	public String register(String name) {
		return name+"register";
	}

}

一、使用jmeter测试Dubbo接口

插件下载地址:jmeter-plugins-dubbo-1.3.6 14.25.57.jar       jmeter-plugins-dubbo-1.3.6-jar-with-dependencies 14.26.12.jar

把下载下来的两个插件放在jmeter的${JMETER_HOME}\lib\ext路径下,重启即可。

重启后在jmeter的Sampler的目录下就可以查看到插件,添加Dubbo Sampler元件。

Dubbo接口测试_第1张图片

配置Dubbo Sampler元件信息

Dubbo接口测试_第2张图片

参数说明,根据公司项目配置

Protocol:注册协议,包括zookeeper、multicast、Redis、simple;

Address:注册地址,dubbo服务的IP+Port:

①、当使用zk,address填入zk地址,集群地址使用","分隔;

②、使用dubbo直连,address填写直连地址和服务端口;

Protocol:使用的dubbo协议,包括dubbo、rmi、hessian、webservice、memcached、redis,根据自己的协议类型选择对应的选项即可;

Timeout:请求超时时间,单位ms,根据dubbo具体配置填写;

Version:版本,dubbo不同版本之间差异较大,不同版本之间不能互相调用,这里指定dubbo版本,是为了方便识别和说明;

Retries:异常重试次数(类似这种分布式服务通信框架,大多都有重试机制,是为了保证事务成功率);

Cluster:集群类型,包括failover、failfast、failsafe、failback、failking;

Group:组类型,如果有的话,根据配置填写即可;

Connections:连接数,同上,根据配置填写;

Async:服务处理类型,包括sync(同步)、async(异步),根据配置填写;

Loadbalance:负载均衡策略,包括random(随机)、roundrobin(轮询)、leastactive(最少活跃数)、consistenthash(一致性哈希);

Interface:接口名(因为dubbo服务大多是开发根据规范自行命名的,因此这里需要填写完整的接口名+包名);

Method:当前接口下的方法名,按照开发提供的API文档填写即可;

Args:接口报文,根据API文档填写,如上图所示,添加输入行,输入对应的参数类型和值即可(参数类型和值如何定义填写,请参考上面的链接);

①、paramType:参数支持任何类型,包装类直接使用java.lang下的包装类,小类型使用:int、float、shot、double、long、byte、boolean、char,自定义类使用类完全名称;

②、paramValue:基础包装类和基础小类型直接使用值,例如:int为1,boolean为true等,自定义类与List或者Map等使用json格式数据;

 

添加监听器查看结果树,可以看到接口成功返回

Dubbo接口测试_第3张图片

二、写消费者测试Dubbo接口

新建SpringBoot工程,修改pom.xml文件,注意标签引用服务提供者的标签信息,maven仓库的地址改为公司仓库地址。注意要引用被测试接口的jar包。



	4.0.0
	
		com.lyf
		dubbo-api
		0.0.1-SNAPSHOT
	
	dubbo-provider
	dubbo-provider
	Demo project for Spring Boot

	
		1.8
	

	
		
			com.lyf
			dubbo-api
			0.0.1-SNAPSHOT
		
	

	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	


在src/main/resources下新建dubboConsumer.xml文件,配置服务信息。

Dubbo接口测试_第4张图片

新建main方法,调用被测接口

package com.example.demo;

import java.io.IOException;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.lyf.api.service.UserService;

public class DubboConsumerApplication {

	public static void main(String[] args) throws IOException {
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
				new String[] { "dubboConsumer.xml" });
		context.start();
		UserService userService = (UserService) context.getBean(UserService.class); //
		String resp = userService.login("i am consumer");
		System.out.println(resp); //
	}

}

可以看到接口有正确返回

Dubbo接口测试_第5张图片

 

 

 

 

你可能感兴趣的:(测试专栏)