接口测试 关于支付的功能-接口-性能测试-Dubbo 接口测试 (2)

突小突 · 2017年01月04日 · 最后由 突小突 回复于 2017年07月31日 · 2838 次阅读

简介

   DUBBO 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是阿里巴巴 SOA 服务化治理方案的核心框架

1、 需要环境工具:

需要环境:Jdk1.8、Maven
开发工具:IDEA
辅助工具:Jmeter2.13
备注:需要下载 jmeter 相关插件,便于结果分析 [监视器:"jp@gc-Loadosophia.org.Uploader"]

2、 Dubbo 接口压力测试:

通常对于 dubbbo 的压测我们有 2 种选择,一种是直接通过编码工具进行线程压测;另一种就是借助压测工具来进行,下面对两种方法分别进行陈述
1、测试环境的搭建,构建 Maven 工程



2、配置 pom.xml,引入需要的服务 jra 包和需要测试的相关服务


net.javacrumbs.json-unit
json-unit
1.12.1

3、如果是使用 jmeter 进行压测,还需要引入 jmeter 相关服务 jar


org.apache.jmeter
ApacheJMeter_core
3.0


org.apache.jmeter
ApacheJMeter_components
3.0

4、配置 dubbo 消费端的文件[src/main/resources/Dubbo.xml]

<?xml version="1.0" encoding="UTF-8"?>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
context:annotation-config/

<!-- <!— 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 —>-->


<!-- 生成远程服务代理,可以像使用本地 bean 一样使用 demoService -->

工具类编写

1、编译[IDEA]压测,引入 Executor 框架与线程池,Executor 执行 Runnable 任务的示例代码

public class ConcurrentTest {
@Test
public void test1()
{
ExecutorService executorService = Executors.newFixedThreadPool(10);
WalletService walletService = new WalletService();
BubboFacade dubboFacade = walletService.getDubboFacadeService();
ArrayList resultList = new ArrayList();
int run_Count =100;
for (int i =0;i<run_Count;i++)
{
Runnable worker = new WorkerThread(i,wumartFacade,resultList);
executorService.execute(worker);
}
executorService.shutdown();//关闭
}

2、Executor 执行 Runnable 任务

class TestRunnable implements Runnable{

public void run(){

System.out.println(Thread.currentThread().getName() + "线程被调用了。");

}

jmeter 辅助工具压测

1、数据结果图

内容实在太多了,具体代码近期开源吧!

共收到 10 条回复 时间 点赞

不错,你的数据监测是用什么工具监测的?

—— 来自 TesterHome 官方 安卓客户端

貌似没有 jvm 的监测

—— 来自 TesterHome 官方 安卓客户端

去掉截图, 其实内容很少. 所以没法加精了.

#2 楼 @hu_qingen 有,在下一期

关注中,我也想知道怎么监控数据库那一部分

学习了!刚好我们自己的支付 dubbo 接口也要压测!

既然已经用到了 jmeter 的插件来做监控,为什么不直接套用 jmeter 提供的 java 请求方式来写测试代码呢?

快开源吧

江渤洋 回复

8 月份开源

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册