dubbo jmeter免代码调用

资源下载地址:

https://download.csdn.net/download/u010627840/12035672

1. 需求

dubbo虽然提供了telnet命令连接的调用方式,但是这种方式本身存在很多不便之处。

比如,一段时间不使用就自动断开,支持的命令比较单一,无法复用接口等

2. 解决方法

利用dubbo的generic调用机制+jmeter插件

3. 实现方式

 泛化调用方式

优点: 不需要引入api jar包,实现免代码调用

  ReferenceConfigCache cache = ReferenceConfigCache.getCache(getAddress(), (referenceConfig) ->
                    referenceConfig.toString());
            GenericService genericService = (GenericService) cache.get(reference);
            if (genericService == null) {
                res.setSuccessful(false);
                return MessageFormat.format(ErrorCode.GENERIC_SERVICE_IS_NULL.getMessage(), interfaceName);
            }
            List args = getMethodArgs();
            List paramterTypeList = new ArrayList<>();
            List parameterValuesList = new ArrayList<>();
            for (MethodArgument arg : args) {
                ClassUtils.parseParameter(paramterTypeList, parameterValuesList, arg);
            }
            String[] parameterTypes = paramterTypeList.toArray(new String[paramterTypeList.size()]);
            Object[] parameterValues = parameterValuesList.toArray(new Object[parameterValuesList.size()]);
            Object result;
            try {
                result = genericService.$invoke(methodName, parameterTypes, parameterValues);
                res.setSuccessful(true);
            } catch (Exception e) {
                log.error("RpcException:", e); 
  

 jmeter引入插件jar

dubbo jmeter免代码调用_第1张图片

jmeter内存配置

在jmeter.bat中加入一行

set HEAP=-Xms2g -Xmx2g -XX:MaxMetaspaceSize=512m
 

4. 调用dubbo接口测试 

dubbo jmeter免代码调用_第2张图片

dubbo jmeter免代码调用_第3张图片

 

你可能感兴趣的:(dubbo总结,java,jmeter)