引入dubbo项目接口_【原创】JMETER实现DUBBO接口测试

原标题:【原创】JMETER实现DUBBO接口测试

友情提示:技术代码较长,先点"在看"哦~

用Jmeter实现dubbo接口测试的文章,网上可以找到很多,但是只看不练假把式。废话不多说,直接上干货。写这篇文章的过程也是自己不断学习的过程。

一.准备

(1)自行下载安装zookeeper-3.4.6(这里的版本是我用的,可以自行下载自己喜好的版本)

(2)自行下载apache-jmeter-3.1,这是免安装的,解压后Jmeterapache-jmeter-3.1bin目录下执行jmeter.bat即可启动。

(3)开发环境STS(即Spring Tool Suite)

(4)dubbo-admin-2.4.1(这个是非必须的,主要是为了查看Dubbo的服务提供者和消费者)

二.编写我们的测试工程

先明确下我们编写工程的过程,dubbo主要是通过实现一个接口,将服务暴露出去。所以我们创建工程的时候,最好分开创建。可以分为:

下面我们分别来看:

1.接口工程

通过STS创建一个Spring Project。命名为Interface-service。在这个工程里面只新建一个接口,命名为DubboService.java。其代码如下:

packagecom.dubbo.provider.Interface_service;

publicinterfaceDubboService {

publicabstractvoidprint;

}

其工程目录结构为:

此工程的其他内容都默认即可,不用做任何处理。

2.服务提供者dubbo-provider01的创建

通过STS创建一个Spring Project。命名为dubbo-provider01。其目录结构如下:

(1)通过pom.xml文件引入Interface-service的jar、dubbo服务的jar、zkclient的jar。这三个jar是必须要在pom文件中进行引用的,如果不引用后面会报错。引用代码为:

com.dubbo.providerInterface-service0.0.1-SNAPSHOTcom.alibabadubbo2.5.3com.github.sgroschupfzkclient0.1

其中我们看Interface-service的引用,它的版本号哪里来的,我们在引用前,必须先对Interface-service这个工程进行maven install,生成其jar,其jar包在target目录下,如下图所示:

此时我们获取到Interface-service-0.01-SNAPSHOT.jar,在dubbo-provider01中可以引用了。

(2)编写dubbo-provider.xml文件。其文件内容为:

<?xml version="1.0" encoding="UTF-8"?>

http://www.springframework.org/schema/beans/spring-beans.xsd

http://code.alibabatech.com/schema/dubbo

http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

其中在编写xml文件前,必须先在windows->>preferences->>XML Catalog中add,详见我的博客。

(3)配置log4j.properties文件,文件内容为:

log4j.rootLogger=info, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

(4)在src/main/java下新建包com.dubbo.provider.demo,再在包com.dubbo.provider.dem下新建接口DubboService.java的实现类DubboServiceImpl.java。其源码为:

packagecom.dubbo.provider.demo;

importorg.springframework.stereotype.Service;

importcom.dubbo.provider.Interface_service.DubboService;

@Service("dubboservice")

publicclassDubboServiceImpl implementsDubboService{

publicvoidprint {

System.out.println("欢迎您的操作");

}

}

(5)在src/test/java下新建包com.dubbo.provider.test,再在包com.dubbo.provider.test下新建启动服务的测试类TestProvider.java。其源码为:

packagecom.dubbo.provider.test;

importorg.apache.commons.logging.Log;

importorg.apache.commons.logging.LogFactory;

importorg.springframework.context.annotation.CommonAnnotationBeanPostProcessor;

importorg.springframework.context.support.ClassPathXmlApplicationContext;

importcom.alibaba.dubbo.common.URL;

publicclassTestProvider {

privatestaticfinalLog log = LogFactory.getLog(TestProvider.class);

publicstaticvoidmain(String[] args) {

try{

ClassPathXmlApplicationContext context = newClassPathXmlApplicationContext("classpath:dubbo-provider.xml");

context.start;

} catch(Exception e) {

log.error("== DubboProvider context start error:",e);

}

synchronized(TestProvider.class) {

while(true) {

try{

TestProvider.class.wait;

} catch(InterruptedException e) {

log.error("== synchronized error:",e);

}

}

}

}

}

(6)首先启动ZK、再次启动estProvider.java,再启动Tomcat。最后查看其服务注册情况:

可以看到我们的服务提供者已经创建成功了。(怎样使用dubbo-admin查看dubbo服务可以参考我的博文:)

3.消费者dubbo-consumer的创建

通过STS创建一个Spring Project,其目录结构如下图所示:

(1)pom.xml文件的引用,此时我们需要注意一个问题,作为消费者要调用服务提供者,所以必须要引入服务提供者的jar包,请注意我们引用的还应该是Interface-service的jar而并非是dubbo-provider01的jar。代码如下:

4.0.0

org.springframework.samples

dubbo-consumer

0.0.1-SNAPSHOT

1.6

UTF-8

UTF-8

3.2.3.RELEASE

4.2.1.Final

1.0.13

1.7.5

4.11

org.springframework

spring-context

${spring-framework.version}

com.dubbo.provider

Interface-service

0.0.1-SNAPSHOT

com.alibaba

dubbo

2.5.3

com.github.sgroschupf

zkclient

0.1

org.springframework

spring-tx

${spring-framework.version}

org.slf4j

slf4j-api

${slf4j.version}

compile

ch.qos.logback

logback-classic

${logback.version}

runtime

org.hibernate

hibernate-entitymanager

${hibernate.version}

org.springframework

spring-test

${spring-framework.version}

test

junit

junit

${junit.version}

test

(2)编写dubbo-consumer.xml文件,其代码如下:

<?xml version="1.0" encoding="UTF-8"?>

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://code.alibabatech.com/schema/dubbo

http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

(3)编写log4j.properties文件,内容与服务提供者的一致即可,不在赘述。

(4)在src/test/java下新建包com.dubbo.consumer.demo,再在包com.dubbo.consumer.demo下新建测试类TestConsumer.java,启动消费者,其源码如下:

packagecom.dubbo.consumer.demo;

importorg.apache.commons.logging.Log;

importorg.apache.commons.logging.LogFactory;

importorg.springframework.context.support.ClassPathXmlApplicationContext;

importcom.dubbo.provider.Interface_service.DubboService;

publicclassTestConsumer {

privatestaticfinalLog log = LogFactory.getLog(TestConsumer.class);

publicstaticvoidmain(String[] args) throwsInterruptedException {

ClassPathXmlApplicationContext context = newClassPathXmlApplicationContext("classpath:dubbo-consumer.xml");

context.start;

DubboService demoService = (DubboService)context.getBean("dubboservice");

demoService.print; //log.info("打印"+demoService.print);

Thread.sleep(100000);

}

}

(5)确保服务提供者正常启用的情况下,运行TestConsumer.java,运行结果如下:

(6)此时在查看dubbo服务:

我们可以看到dubbo-consumer这个dubbo服务业注册成功了,从此这个工程就搭建完毕了。

三、Jmeter来测试这个工程

(1)导出dubbo-consumer工程依赖的所有jar包:导出方法cmd到工程所在路径下执行mvn dependency:copy-dependencies命令即可:此时会在工程的target目录下新增一个

dependency目录。

(2)将dependency目录中的jar全部复制粘贴到:Jmeter的lib目录下,如果有重复的jar包,则保留Jmeter的jar包。

(3)Run as工程dubbo-consumer,选择maven install。生成dubbo-consumer-0.0.1-SNAPSHOT.jar。

将dubbo-consumer-0.0.1-SNAPSHOT.jar放到Jmeter的Jmeterapache-jmeter-3.1libext路径下。

(4)以管理员身份打开Jmeter。新建一个线程组,新建一个java请求,增加查看结果树;此时运行java请求:

剩下的事情就是如何写测试脚本了,这个我们以后慢慢说~~~~~返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值