基于Jmeter的Dubbo API自动化测试实战(六)

前面的章节只是讲解了单个插件的使用方法,接下来的章节才是真正的混合使用的实战部分。

首先必须确保Dubbo服务已正常开启,然后拿到接口文档或项目源码,最后还要拿到服务器的地址和端口号(即Dubbo服务所在的地址而不是ZK等中间件的地址)。

假设接口类名为TestService,方法名为createTestCustomer,入参对象为RequestDTO,返回对象为Response,那么一般我们所说的接口名就为TestService.createTestData,主要功能为开户,至于具体实现是怎样在这里我们就不管了,代码看起来会像这样:

public interface TestService {
    /**
     * 开户
     */
    Response createTestCustomer(RequestDTO);
}
@Setter
@Getter
@ToString
public class RequestDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    private String reqData;
    private String logId;
}
@Setter
@Getter
@ToString
public class Response<T> implements Serializable {
    private static final long serialVersionUID = 1L;
    private boolean success;
    private T result;
    private String errorCode;
    private String errorMsg;
}

一、组装报文

首先要Telnet调用接口的话,我们还需要接口报文,其实只要有接口文档或源码,根据Java对象的类型和Json的转换规则就能知道接口报文,直接上例子,我们TestService.createTestData接口的报文会像这样子:

TestService.createTestCustomer({"reqData":"xxx","logId":"xxx"})

如果入参是多个对象的话,代码像这样:

public interface TestService {
    Response createTestCustomer(RequestDTO, RequestDTO, String someData);
}

那么接口报文就为如下:

TestService.createTestCustomer({"reqData":"xxx","logId":"xxx"},{"reqData":"xxx","logId":"xxx"},"dataxxx")

 

二、手动Telnet调用接口

以Windows平台为例,首先确保Windows打开了Telnet服务,打开终端软件(cmd、Xshell等)。

第一步连接服务器:

telnet 127.0.0.1 20880

telnet成功将出现如下提示符:

dubbo>

第二步发送接口报文:

invoke TestService.createTestCustomer({"reqData":"xxx","logId":"xxx"})

调用成功之后就能看到响应报文了。

 

三、使用JMeter调用接口

全文将基于JMeter 3.1版本进行讲解,截至发稿为止JMeter最高版本为5.0,如使用高版本的JMeter可能会有jar包冲突或不兼容的情况。以下将逐步讲解:

1)确保DubboTelnet、ENV Data Set和Local Html Report的插件jar包已经放到JMeterHome/lib/ext目录下。

2)在JMeterHome目录下新建config目录,在config目录下新建test-1.env配置文件和test-2.env配置文件,配置文件内容如下:

test-1.env配置文件:
{
    "service_address":"127.0.0.1:20880",
    "db_url_cif":"xxx",
    "db_user_khtx":"xxx",
    "db_pwd":"xxx"
}


test-2.env配置文件:
{
    "service_address":"127.0.0.2:20880",
    "db_url_cif":"xxx",
    "db_user_khtx":"xxx",
    "db_pwd":"xxx"
}

3)打开JMeter,右键【测试计划(TestPlan)】添加以下组件:

  • 【配置元件 - ENV Data Set】
  • 【监听器 - Local Html Report】
  • 【Threads(Users) - 线程组】
  • 线程组下添加【Sampler - Java请求】和【监听器 - 察看结果树】

现在界面看起来像这样:

4)点击ENV Data Set组件,ConfigName选择test-1.env,现在界面看起来像这样:

5)点击Local Html Report组件,ReportName填入testreport.html,IsAppend选择false,现在界面看起来像这样:

 6)点击Java请求组件,类名称选择【org.apache.jmeter.samplers.DubboTelnet】,依次填写各个属性值

  • address=${service_address}
  • interface=TestService.createTestData
  • params={"reqData":"xxx","logId":"xxx"}
  • expection="success":true

现在界面看起来像这样:

7)最后右键【线程组】点击【start】 就开始运行了,运行成功后,在【查看结果树】组件里就能查看详细的测试数据了。

8)如果添加了【Local Html Report】组件,在执行完jmx脚本后,在JMeterHome/htmlreport目录下会生产当前脚本的测试报告,测试报告名称就是第5步我们设置的ReportName,打开测试报告就能查看所有线程组的测试数据:

以上就是一个完整的JMeter dubbo接口脚本编写步骤。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值