首页 > 其他分享 >【dubbo】如何测试一个dubbo服务呢?

【dubbo】如何测试一个dubbo服务呢?

时间:2024-05-31 15:45:14浏览次数:15  
标签:dubbo 服务 myDubboService annotation 测试 org import public

rpc服务框架——dubbo

https://cn.dubbo.apache.org/zh-cn/blog/2023/02/23/一文帮你快速了解-dubbo-核心能力/
自制项目:
https://github.com/Jinwenxin/rpc.git

1. 单元测试

import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

import static org.mockito.Mockito.;
import static org.junit.Assert.
;

public class MyDubboServiceTest {

@InjectMocks
private MyDubboService myDubboService;

@Mock
private DependencyService dependencyService;

@Before
public void setUp() {
    MockitoAnnotations.initMocks(this);
}

@Test
public void testServiceMethod() {
    // Arrange
    when(dependencyService.someMethod()).thenReturn("Mocked Result");

// 当你这几个接口里,调用什么依赖的服务的方法,那么我们用这个句话让那个方法按照预期的返回,也就是假定依赖正常工作的情况下。

    // Act
    String result = myDubboService.serviceMethod();

    // Assert
    assertEquals("Expected Result", result);
}

}

2. 集成测试

import org.apache.dubbo.config.annotation.DubboReference;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import static org.junit.jupiter.api.Assertions.assertEquals;

@SpringBootTest
public class MyDubboServiceIntegrationTest {

@DubboReference
private MyDubboService myDubboService;

@Test
public void testServiceMethod() {
    String result = myDubboService.serviceMethod();
    assertEquals("Expected Result", result);
}

}
怎么理解这个和集成的区别呢?就是让dubbo接口去调用真实环境的依赖,而不是像单元测试中的mock。

3. 写个APIGateway项目(consumer)去测试

另外写一个项目,写个controller,方法中去调用dubbo service的API。
跟我在其他项目中去调用该服务是一样的。
package com.jinwenxin.controller;

import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.springboot.demo.DemoService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/anotherApi")
public class AnotherDubboController {

@DubboReference
private DemoService myDubboService;

@GetMapping("/serviceMethod/{param}")
public String callServiceMethod(@PathVariable String param) {
    return myDubboService.sayHello(param);
}

}
然后就可以在postman或者jmeter里发请求了。

标签:dubbo,服务,myDubboService,annotation,测试,org,import,public
From: https://www.cnblogs.com/jin-wen-xin/p/18224660

相关文章

  • django项目部署到服务器
     1.安装python[root@dsc1nginx]#python-VPython3.6.5 2.安装数据库yuminstallmysqlmysql-develyuminstallsqlite-devel 3.安装django[root@dsc1mydjango]#pip3installdjangopipisconfiguredwithlocationsthatrequireTLS/SSL,howeverthesslmodu......
  • 轻兔推荐 —— 一个好用的软件服务推荐平台
    给大家推荐一个好用的的软件服务推荐平台:轻兔推荐-https://app.lighttools.net/界面网站界面简洁大方,没有太多杂七杂八的功能和页面,有明暗主题色可以选择,默认为亮色,可在网站上方手动切换。内容每工作日都会推荐一款软件,如Pake、code-server、vfox等,有时会加更,大部分偏向......
  • 521源码-游戏源码-2024卡牌回合自走棋手游《梦间集》推出全新Linux手工服务端
    首款稀有卡牌回合自走棋手游《梦间集》推出全新Linux手工服务端整理更多网站源码,游戏源码,学习教程,请点击......
  • C# 检测并重启windows服务,IIS应用池
      usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Diagnostics;usingSystem.Linq;usingSystem.ServiceProcess;usingSystem.Text;usinglog4net;usingSystem.Timers;usingSystem.Configurati......
  • 大模型应用之基于Langchain的测试用例生成
    一用例生成实践效果在组内的日常工作安排中,持续优化测试技术、提高测试效率始终是重点任务。近期,我们在探索实践使用大模型生成测试用例,期望能够借助其强大的自然语言处理能力,自动化地生成更全面和高质量的测试用例。当前,公司已经普及使用JoyCoder,我们可以拷贝相关需求及设计文......
  • 混沌测试介绍
    混沌测试介绍1.混沌测试简介混沌测试(ChaosEngineering)是一种测试方法,通过在生产环境中故意引入故障,测试系统在异常情况下的表现,以提高系统的弹性和鲁棒性。其目标是确保系统能够在面对不可预见的事件或故障时,继续保持正常运行或快速恢复。2.混沌测试的基本原理混沌测试的核......
  • ChaosBlade混沌测试实践
    !https://zhuanlan.zhihu.com/p/700914220ChaosBlade:一个简单易用且功能强大的混沌实验实施工具官方仓库:https://github.com/chaosblade-io/chaosblade1.项目介绍ChaosBlade是阿里巴巴开源的一款遵循混沌工程原理和混沌实验模型的实验注入工具,帮助企业提升分布式系统的容......
  • 两台windowserver服务器配置Redis哨兵集群
    十年河东,十年河西,莫欺少年穷学无止境,精益求精redis下载地址:https://github.com/tporadowski/redis/releases 这里选择压缩版,不选择安装版1、集群环境 主机master:局域网IP  172.27.40.27从机slave:局域网IP  172.27.40.29 2、修改主从相关配置-两台服务器均需修改......
  • 途虎养车测试一面二面HR面面试经历
    一面35分钟1、手写代码题2、自我介绍3、UI自动化平台是什么4、怎么定位元素的5、怎么解决元素定位不到的问题?元素无法定位有什么原因?6、游戏测试过程中,有没有印象深刻的缺陷7、功能测试流程8、点击搜索按钮没有反应,可能有哪些原因9、接口之间调用咋做的10、SQL题反......
  • 家政预约小程序06服务展示
    目录1首页展示2团购详情总结在家政小程序中,最重要的信息就是各项服务的内容。顾客通过服务的信息,了解家政公司可以提供什么样的服务以及相关的收费。本篇我们介绍一下服务展示功能如何开发。1首页展示在首页我们已经开发了活动展示、服务分类展示,在服务分类下......