本發明涉及RPC(Remote Procedure Call Protocol,遠程過程調用協議,通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議)接口測試領域,具體涉及一種RPC接口測試方法及系統。
背景技術:
接口測試(對系統組件間接口進行測試)主要用于檢測外部系統與系統(包括各個子系統)之間的交互點,接口測試重點為檢查數據的交換、傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。
目前,Web測試中的接口測試主要關注前端服務中基于http協議的post(傳送數據)和get(獲取數據)請求,而對后端服務中較通用的RPC接口測試研究不多,RPC接口的測試方法尚無,進而會使得RPC服務使用時存在以下缺陷:
RPC服務在創建和初期使用時出現的問題比較隱蔽,無法及時修復,若該問題在RPC服務完善后再來修復,則會重新大幅度修整RPC服務,不僅操作過程比較復雜,而且修復成本較高。
技術實現要素:
針對現有技術中存在的缺陷,本發明解決的技術問題為:提供一種RPC接口測試方法及系統,本發明能夠在RPC服務出現問題時及時發現并修復,簡化了后期的操作過程和維修成本。
為達到以上目的,本發明提供的RPC接口測試方法,包括以下步驟:
S1:在服務器上建立Socket連接,通過Socket與RPC接口進行通信,讀取預先設置的RPC服務的服務器配置信息、測試數據配置文件和數據庫配置文件,轉到S2;
所述服務器配置信息包括用于寫入RPC調用語言的命令行終端和公共RPC的調用方法;
S2:運行測試所需的驅動數據后,加載所述測試數據配置文件和數據庫配置文件,通過公共RPC的調用方法在服務器上進行RPC服務登錄,轉到S3;
S3:在命令行終端上寫入測試數據配置文件的測試參數,根據測試參數進行測試。
在上述技術方案的基礎上,S3中所述根據測試參數進行測試的具體流程為:讀取測試數據配置文件中預先定義的不正確或正確的用戶數據;執行S3的過程中,若出現異常,則捕獲異常信息。
在上述技術方案的基礎上,S3之后還包括以下步驟:根據預先設置的測試場景恢復配置,進行測試場景恢復。
在上述技術方案的基礎上,S1中所述通過Socket與RPC接口進行通信之后,還包括以下步驟:讀取預先設置的Socket的服務器配置信息。
在上述技術方案的基礎上,S1中所述服務器配置信息還包括服務器ip、RPC服務的端口號和RPC服務的消息碼。
本發明提供的實現上述方法的RPC接口測試系統,包括測試連接建立模塊、測試驅動登陸模塊和RPC接口測試模塊;
測試連接建立模塊用于:在服務器上建立Socket連接,通過Socket與RPC接口進行通信,讀取預先設置的RPC服務的服務器配置信息、測試數據配置文件和數據庫配置文件,向測試驅動登陸模塊發送測試驅動登陸信號;
所述服務器配置信息包括用于寫入RPC調用語言的命令行終端和公共RPC的調用方法;
測試驅動登陸模塊用于:收到測試驅動登陸信號后,運行測試所需的驅動數據,加載所述測試數據配置文件和數據庫配置文件,通過公共RPC的調用方法在服務器上進行RPC服務登錄,向RPC接口測試模塊發送RPC接口測試信號;
RPC接口測試模塊用于:收到RPC接口測試信號后,在命令行終端上寫入測試數據配置文件的測試參數,根據測試參數進行測試。
在上述技術方案的基礎上,所述RPC接口測試模塊根據測試參數進行測試的具體流程為:讀取測試數據配置文件中預先定義的不正確或正確的用戶數據;測試過程中,若出現異常,則捕獲異常信息。
在上述技術方案的基礎上,該系統還包括測試測試場景恢復模塊,其用于:在RPC接口測試模塊測試完成后,根據預先設置的測試場景恢復配置,進行測試場景恢復。
在上述技術方案的基礎上,所述測試連接建立模塊通過Socket與RPC接口進行通信之后,還包括以下工作流程:讀取預先設置的Socket的服務器配置信息。
在上述技術方案的基礎上,所述測試連接建立模塊讀取的服務器配置信息,還包括服務器ip、RPC服務的端口號和RPC服務的消息碼。
與現有技術相比,本發明的優點在于:
本發明根據自行創造的測試方式,能夠完成RPC接口的測試,進而使得RPC服務出現問題時能夠及時發現并修復,簡化了后期的操作過程和維修成本。
附圖說明
圖1為本發明實施例中RPC接口測試方法的流程圖。
具體實施方式
以下結合附圖及實施例對本發明作進一步詳細說明。
本發明實施例中的RPC接口測試方法,借鑒了數據驅動的測試自動化思想(以數據來控制自動化測試的流程和動作的測試,其中數據是獨立于測試用例腳本的,通常以文本文件形式、Excel文件形式、XML文件等形式存在),以Python語言(面向對象、解釋型計算機程序設計語言)為主實現了后端服務器的Socket通信和RPC調用,并結合軟件測試中的邊界值、等價類、正交試驗設計等方法編寫接口測試用例。
其中Socket通信通常也稱作"套接字",用于描述IP地址和端口,是一個通信鏈的句柄,可以用來實現不同虛擬機或不同計算機之間的通信。在Internet上的主機一般運行了多個服務軟件,同時提供幾種服務。每種服務都打開一個Socket,并綁定到一個端口上,不同的端口對應于不同的服務。
本發明實施例進行RPC接口測試之前,需要實現與后端服務器的Socket進行通信、以及通過Python語言調用具體的RPC服務(RPC接口承載的是RPC服務)。
與后端服務器的Socket進行通信的流程為:
(1)定義socket管理類,包括創建連接-create Socket()、發送數據-send Data()、接收數據-recvData()、和關閉連接-close Socket()。
(2)定義數據包處理類,包括數據包解碼-decode()、編碼-encode()、字符過濾-filter()。
(3)定義RPC調用類,RPC調用類包括讀取后端服務器配置信息:-processServerInfo()、讀取測試數據配置-processYaml()、讀取數據庫配置-processMysql()、后端服務登錄-loginClient()、公共的RPC調用方法-callRPC()。
通過Python語言調用具體的RPC的流程為:
(1)定義具體RPC的調用方法:call_RPC_A(args[])。
(2)定義執行RPC調用類,執行RPC調用類類包括場景初始化-init()、執行具體RPC調用-test_RPC_A()、測試場景恢復配置-cover()。
(3)定義驅動數據。
在此基礎上,本發明實施例中的RPC接口測試方法,包括以下步驟:
S1:在后臺服務器上建立Socket連接,通過Socket與RPC接口進行通信,分別讀取預先設置的RPC服務的服務器配置信息、RPC服務的測試數據配置文件、RPC服務的數據庫配置文件、以及Socket的服務器配置信息,轉到S2。
S1中RPC服務的服務器配置信息包括服務器ip、RPC服務的端口號port、RPC的消息碼、用于寫入RPC調用語言的命令行終端和公共的RPC調用方法。
S2:運行測試所需的驅動數據后,加載S1中的測試數據配置文件和數據庫配置文件,通過公共的RPC調用方法在后臺服務器上進行RPC服務登錄,轉到S3。
S3:在命令行終端上寫入測試數據配置文件的實際測試參數,根據測試參數進行測試test_RPC_get_member_ban_info(),轉到S4。
S3中根據測試參數進行測試可以為以下2種中的任意1種流程:
(1)test_case_error_uid:讀取測試數據配置文件中預先定義的不正確的用戶數據;
(2)test_case_correct_uid:讀取測試數據配置文件中預先定義的正確的用戶數據。
S3中若測試過程中出現異常(例如讀取測試數據配置文件錯誤等),則捕獲并打印異常信息。
S4:根據預先設置的測試場景恢復配置,進行測試場景恢復(例如將測試場景恢復為RPC的正常工作場景等)。
本發明實施例提供的實現上述方法的RPC接口測試系統,包括測試連接建立模塊、測試驅動登陸模塊、RPC接口測試模塊和測試測試場景恢復模塊。
測試連接建立模塊用于:在服務器上建立Socket連接,通過Socket與RPC接口進行通信,讀取預先設置的RPC服務的服務器配置信息、測試數據配置文件、數據庫配置文件、以及Socket的服務器配置信息,向測試驅動登陸模塊發送測試驅動登陸信號。
所述服務器配置信息包括服務器ip、RPC服務的端口號port、RPC的消息碼、用于寫入RPC調用語言的命令行終端和公共的RPC調用方法。
測試驅動登陸模塊用于:收到測試驅動登陸信號后,運行測試所需的驅動數據,加載所述測試數據配置文件和數據庫配置文件,通過公共RPC的調用方法在服務器上進行RPC服務登錄,向RPC接口測試模塊發送RPC接口測試信號。
RPC接口測試模塊用于:收到RPC接口測試信號后,在命令行終端上寫入測試數據配置文件的測試參數,根據測試參數進行測試,測試的具體工作流程為:讀取測試數據配置文件中預先定義的不正確或正確的用戶數據;測試過程中,若出現異常,則捕獲異常信息。
測試測試場景恢復模塊用于:在RPC接口測試模塊測試完成后,根據預先設置的測試場景恢復配置,進行測試場景恢復。
本發明不局限于上述實施方式,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發明的保護范圍之內。本說明書中未作詳細描述的內容屬于本領域專業技術人員公知的現有技術。