1. 程式人生 > 實用技巧 >在自動化測試中使用TestNG【第 5 章 RPC 介面自動化測試 5.1RPC簡介5.2部署待測程式】

在自動化測試中使用TestNG【第 5 章 RPC 介面自動化測試 5.1RPC簡介5.2部署待測程式】

5.1 RPC 簡介

RPC(Remote Procedure Call,遠端過程呼叫)協議是一種計算機通訊協議,該協議允許本地計算機上的程式遠端呼叫另一臺計算機上的程式,而在此過程中,開發人員不需要額外程式設計。另外,在面向物件程式設計的程式中,遠端過程呼叫又可稱為遠端呼叫或遠端方法呼叫。常見的 RPC 協議實現如下

Java RMI:Java Remote Method Invocation,即 Java 遠端方法呼叫,採用了 JDK 中標準的 java.rmi.*實現

Apache Dubbo(以下簡稱 Dubbo:是阿里巴巴開源的一款高效能、輕量級的 Java RPC 框架。Dubbo 的特點包括可面向介面的遠端方法呼叫、智慧容錯、負載均衡和服務自動註冊及發現等

Hessian:Hessian 是一種二進位制協議,它非常適合傳送二進位制資料,且無須通過附件的形式對該協議進行任何擴充套件

XML-RPC:XML-RPC 是一個規範和一組實現,它允許程式執行在不同的作業系統和環境中,以通過 Internet 進行過程呼叫。它是一種基於 HTTP 和 XML 實現的遠端過程呼叫。XML-RPC 的設計雖然非常簡單,但它支援傳輸、處理和返回複雜的資料結構

Apache Thrift:是一種 RPC 協議實現的框架,適用於跨語言服務的開發,它將軟體堆疊與程式碼生成引擎結合起來構建高效的服務,且可無縫連線 Java、Python、C++、JavaScript、C#和 PHP 等程式語言

在眾多 RPC 協議的實現中,Dubbo 作為分散式微服務的主流框架之一,在企業級應用開發中使用頻率較高,因此本章使用 Dubbo 作為 RPC 介面自動化測試的示例

Dubbo 中的重要角色如圖 5-1 所示

圖 5-1

服務提供者:提供遠端呼叫的介面

容器:執行服務提供者

服務消費者:呼叫服務提供者提供的介面

註冊中心:服務提供者將服務註冊到註冊中心,服務消費者從註冊中心獲取需要使用的服務

監控中心:監控服務提供者和服務消費者的呼叫過程。監控中心是可選的

5.2 部署待測程式

1.安裝 JDK

在即將部署待測程式的伺服器上安裝 JDK,並配置系統變數如下。這裡以 Windows 為例

① 新建 JAVA_HOME,變數值填寫如下

C:\Program Files\Java\jdk1.8.0_212

② 新建 CLASSPATH,變數值填寫如下

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

③ 編輯 Path,變數值追加如下

;%JAVA_HOME%\bin

2.安裝 ZooKeeper

在 Dubbo 中,註冊中心只是一個角色,可以充當該角色的中介軟體有很多,ZooKeeper 就是其中最常用的一個,同時也是官方推薦使用的。ZooKeeper 可以部署為單機模式或分散式模式,為簡明步驟,示例部署為單機模式。這裡以 Windows 為例

① 從官網下載 ZooKeeper

② 解壓縮到指定目錄,筆者解壓縮到 D:\Program Files 目錄

③ 將 conf 目錄下的 zoo_sample.cfg 檔案重新命名為 zoo.cfg,編輯 zoo.cfg 檔案,在檔案最後加上 admin.serverPort=8081

# 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=D:\javaweb\apache-zookeeper-3.5.8\data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

admin.serverPort=8081
zoo.cfg

④ 雙擊 bin 目錄下的 zkServer.cmd 檔案,執行成功後如圖 5-2 所示

3.部署待測程式

從筆者的 GitHub 中下載待測程式,程式名為 rpcinterface-0.0.1-SNAPSHOT.jar,下載後放在伺服器上,執行以下命令執行即可

java-jar E:\rpcinterface-0.0.1-SNAPSHOT.jar

這裡把本地電腦作為伺服器,且待測程式放在了 E 盤根目錄,讀者需要根據實際情況替換以上路徑。執行成功後如圖 5-3 所示


參考資料:

apache-zookeeper-3.5.8-bin.tar.gz

https://github.com/lujiatao2/rpcinterface