最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

軟件測試 | Dubbo協(xié)議的接口測試

2023-06-05 11:58 作者:愛測軟件測試  | 我要投稿

Dubbo

Dubbo 解決了各服務(wù)間通信問題,是分布式服務(wù)的解決方案之一。從單一應(yīng)用架構(gòu)到流動(dòng)計(jì)算架構(gòu)的演 變,分布式服務(wù)是重中之重。隨著服務(wù)被拆分越來越細(xì),服務(wù)間的信息交互是一大痛點(diǎn)。 Dubbo 通過 注冊(cè)中心解決多服務(wù)間通訊的障礙,進(jìn)行 Dubbo 測試的關(guān)鍵是:創(chuàng)建 Dubbo 的客戶端(消費(fèi)者),使 該客戶端與服務(wù)端(生產(chǎn)者)正常通信。客戶端通過斷言函數(shù)執(zhí)行結(jié)果,完成 Dubbo 服務(wù)測試。

節(jié)點(diǎn)角色說明

調(diào)用關(guān)系說明

  1. 服務(wù)容器負(fù)責(zé)啟動(dòng),加載,運(yùn)行服務(wù)提供者。

  2. 服務(wù)提供者在啟動(dòng)時(shí),向注冊(cè)中心注冊(cè)自己提供的服務(wù)。

  3. 服務(wù)消費(fèi)者在啟動(dòng)時(shí),向注冊(cè)中心訂閱自己所需的服務(wù)。

  4. 注冊(cè)中心返回服務(wù)提供者地址列表給消費(fèi)者,如果有變更,注冊(cè)中心將基于長連接推送變更數(shù)據(jù)給消 費(fèi)者。

  5. 服務(wù)消費(fèi)者,從提供者地址列表中,基于軟負(fù)載均衡算法,選一臺(tái)提供者進(jìn)行調(diào)用,如果調(diào)用失敗, 再選另一臺(tái)調(diào)用。

  6. 服務(wù)消費(fèi)者和提供者,在內(nèi)存中累計(jì)調(diào)用次數(shù)和調(diào)用時(shí)間,定時(shí)每分鐘發(fā)送一次統(tǒng)計(jì)數(shù)據(jù)到監(jiān)控中 心。

把上述關(guān)系簡化,其中服務(wù)提供者是 QA 需要測試的對(duì)象。QA 需要搭符合注冊(cè)中心的服務(wù)消費(fèi)者,利 用服務(wù)消費(fèi)者對(duì)服務(wù)提供者進(jìn)行測試:

問題關(guān)鍵在于如何搭建服務(wù)消費(fèi)者,不同注冊(cè)中心提供不同的搭建方案,比如:

  • Nacos 注冊(cè)中心

  • Zookeeper 注冊(cè)中心

  • Multicast 注冊(cè)中心

  • Redis 注冊(cè)中心

  • Simple 注冊(cè)中心

有些公司內(nèi)部會(huì)開發(fā)自己的注冊(cè)中心,各位自行查找參考手冊(cè),下面以 Zookeeper 為例,簡述配置過 程,詳細(xì)內(nèi)容可參考 Zookeeper 官網(wǎng), Zookeeper 通過配置文件配置注冊(cè)中心的信息,比如:

# The number of milliseconds of each tick?

tickTime=2000

# The number of ticks that the initial?

# synchronization phase can take?

initLimit=10?

# The number of ticks that can pass between?

# sending a request and getting an acknowledgement?

syncLimit=5?

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just?

# example sakes.

dataDir=/tmp/zookeeper?

# the port at which the clients will connect

clientPort=2181

通過終端啟動(dòng)Zookeeper注冊(cè)中心服務(wù),下面是在2181端口啟動(dòng)單節(jié)點(diǎn)注冊(cè)中心服務(wù)的提示信息:

sudo ./zkServer.sh status

/usr/bin/java?

ZooKeeper JMX enabled by default

?Using config: /usr/local/zookeeper/apache-zookeeper-3.6.2-bin/bin/../conf/zoo.cfg Client port found: 2181. Client address: localhost. Client SSL: false.?

Mode: standalone

服務(wù)消費(fèi)者可以通過 Spring Boot 項(xiàng)目進(jìn)行搭建,編寫項(xiàng)目的 application.yaml 文件配置 Zookeeper 注 冊(cè)中心服務(wù)地址即可完成訂閱。以下是服務(wù)消費(fèi)者樣例, 通過 demoService.sayHello("mercyblitz") 調(diào)用服務(wù)提供者的函數(shù),函數(shù)的返回結(jié)果即是調(diào)用結(jié)果:

@EnableAutoConfiguration?

public class DubboAutoConfigurationConsumerBootstrap {

private final Logger logger = LoggerFactory.getLogger(getClass()); @DubboReference(version = "1.0.0", url = "dubbo://127.0.0.1:12345") private DemoService demoService; public static void main(String[] args) { SpringApplication.run(DubboAutoConfigurationConsumerBootstrap.class).close(); } @Bean public ApplicationRunner runner() { return args -> { logger.info(demoService.sayHello("mercyblitz")); }; } }

可以看出,上述 demoService.sayHello("mercyblitz") 的調(diào)用過程與一般接口測試無區(qū)別, QA 利用服務(wù)消費(fèi)者訪問服務(wù)提供者,配合 Junit 對(duì)執(zhí)行結(jié)果進(jìn)行斷言即可。


軟件測試 | Dubbo協(xié)議的接口測試的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
富民县| 绍兴市| 大宁县| 阳朔县| 呼伦贝尔市| 冷水江市| 曲周县| 大英县| 江陵县| 百色市| 县级市| 财经| 息烽县| 敦煌市| 江油市| 威远县| 金塔县| 石嘴山市| 宣武区| 内丘县| 绥阳县| 肥东县| 望城县| 巴彦县| 卢湾区| 古交市| 德钦县| 郧西县| 霍林郭勒市| 张家界市| 都安| 金沙县| 明星| 伊宁市| 隆回县| 沁水县| 崇礼县| 马边| 会昌县| 镇宁| 尉氏县|