博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用jmeter进行dubbo协议的测试方法
阅读量:6811 次
发布时间:2019-06-26

本文共 3335 字,大约阅读时间需要 11 分钟。

jmeter脚本是作为dubbo消费者

以下为工程主要代码:

package com.one;import org.apache.jmeter.config.Arguments;import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;import org.apache.jmeter.samplers.SampleResult;import com.alibaba.dubbo.config.ApplicationConfig;import com.alibaba.dubbo.config.ReferenceConfig;import com.unj.dubbotest.provider.DemoService;public class TestConsumer  extends AbstractJavaSamplerClient {    private static String label = "consumer";     private   String ID;    //dubbo服务地址    private  String URL;    private  String VERSION ;    private  String SERVICE_NAME;       private Object object;     public void init() {        // 当前应用配置        ApplicationConfig application = new ApplicationConfig();        application.setName("hehe_consumer");        // 注意:ReferenceConfig为重对象,内部封装了与注册中心的连接,以及与服务提供方的连接        // 引用远程服务        ReferenceConfig  reference = new ReferenceConfig(); // 此实例很重,封装了与注册中心的连接以及与提供者的连接,请自行缓存,否则可能造成内存和连接泄漏        reference.setApplication(application);        reference.setId(ID);        reference.setVersion(VERSION);        //dubbo服务名        reference.setInterface(SERVICE_NAME);        //dubboip地址        reference.setUrl(URL);        // 和本地bean一样使用xxxService        object = reference.get(); // 注意:此代理对象内部封装了所有通讯细节,对象较重,请缓存复用\        }    public void setupTest(){          //定义测试初始值,setupTest只在测试开始前使用          System.out.println("setupTest");      }      @Override    public SampleResult runTest(JavaSamplerContext arg0) {        SampleResult sr = new SampleResult(); ;         try {            //获取参数            ID = arg0.getParameter("ID");              URL = arg0.getParameter("URL");             VERSION = arg0.getParameter("VERSION");              SERVICE_NAME = arg0.getParameter("SERVICE_NAME");             //dubbo初始化            init();            //jmeter结果对象            sr.setSampleLabel(label);            sr.sampleStart();             DemoService demoService = (DemoService)object;            String hello = demoService.sayHello("tom");            sr.setResponseCode("00000");            sr.setResponseMessage(hello);            sr.setSuccessful(true);             sr.sampleEnd(); // jmeter 结束统计响应时间标记          } catch (Exception e) {            e.printStackTrace();            sr.setResponseCode("999");            sr.setResponseMessage(e.getMessage());            sr.setSuccessful(false);        }        return sr;    }    public Arguments getDefaultParameters(){          //参数定义,显示在前台,也可以不定义          Arguments params = new Arguments();          params.addArgument("ID", "");          params.addArgument("URL", "");         params.addArgument("VERSION", "");          params.addArgument("SERVICE_NAME", "");        return params;          }      public void teardownTest(JavaSamplerContext arg0){          super.teardownTest(arg0);      }  }

第一步:右击工程,点击Export标签,选择java文件夹,点击【JAR file】

使用jmeter进行dubbo协议的测试方法

第二步:输入JAR file 文件路径,点击【Finish】按钮

使用jmeter进行dubbo协议的测试方法

第三步:导致的jar放置../apache-jmeter-2.13libext目录下

使用jmeter进行dubbo协议的测试方法

jmeter使用

第一步:打开Jmeter软件

使用jmeter进行dubbo协议的测试方法

新建线程组

使用jmeter进行dubbo协议的测试方法

第二步:新建一个Java请求,选择自己编写的测试类,输入参数

第一个参数:这个参数没有特定的规定,名字取得有意义一些,比如:ID

第二个参数:输入dubbo的服务地址:dubbo://127.0.0.1:20880(是自己项目的具体情况)

第三个参数:输入dubbo的版本号:1.0.0

第四个参数:输入dubbo服务名称:com.unj.dubbotest.provider.DemoService

使用jmeter进行dubbo协议的测试方法

第三步:新建一个监听器

使用jmeter进行dubbo协议的测试方法

第四步:Jmeter导入依赖包,(包的目录是在工程(consumer)的lib下)

点击测试计划,右下方点击【浏览】按钮,选择工程下的lib目录,重启Jmeter

使用jmeter进行dubbo协议的测试方法

第五步:执行Jmeter,查看结果

使用jmeter进行dubbo协议的测试方法

QQ截图20171031083313.png

转载地址:http://ocwzl.baihongyu.com/

你可能感兴趣的文章
pycharm2017 pro激活码
查看>>
自助搭建git服务
查看>>
Vue - day1
查看>>
kvm.virsh常用命令篇
查看>>
[Hive]Hive使用指南四 客户端导入数据
查看>>
10.JUC线程高级-线程八锁
查看>>
Apache Flink轻量级异步快照机制源码分析
查看>>
PostgreSQL 11 preview - 分区表 增强 汇总
查看>>
MediaCodec在Android视频硬解码组件的应用
查看>>
HTML5跨域消息发送安全性分析
查看>>
用JAVA自己画一张二维码
查看>>
Two Bit Circus又获1500万美元融资,欲打造VR微型游乐园
查看>>
阿里巴巴宣布成立半导体公司,要自主研发芯片
查看>>
RxJava2 / RxAndroid2操作符ofType:根据类型选择输出结果
查看>>
【代码+教程】重现“世界模型”实验,无监督方式快速训练
查看>>
Flutter Engine线程管理与Dart Isolate机制
查看>>
美国泛达公司:下一代数据中心的光缆布线系统
查看>>
以太坊(ethereum)技术开发相关资料
查看>>
Pandas数据排序
查看>>
gulp常用插件
查看>>