python實現基于RPC協議的接口自動化測試

01

什么是RPC

RPC(Remote Procedure Call)遠程過程調用協議是一個用于建立適當框架的協議。從本質上講,它使一臺機器上的程序能夠調用另一臺機器上的子程序,而不會意識到它是遠程的。

RPC 是一種軟件通信協議,一個程序可以用來向位于網絡上另一臺計算機的程序請求服務,而不必了解網絡的細節。RPC 被用來像本地系統一樣調用遠程系統上的其他進程。過程調用有時也被稱為函數調用或子程序調用

02

RPC框架

RPC本身是一套協議規范,遵循這一套規范實現的框架比較流行的有以下幾個:

grpc框架

gRPC是由 google開發的一個高性能、通用的開源RPC框架,主要面向移動應用開發且基于HTTP/2協議標準而設計,同時支持大多數流行的編程語言。gRPC基于 HTTP/2協議傳輸

dubbo框架

Dubbo是阿里巴巴公司開源的一個高性能優秀的服務框架,使得應用可通過高性能的 RPC 實現服務的輸出和輸入功能,可以和Spring框架無縫集成。

Dubbo是一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力

① 面向接口的遠程方法調用

② 智能容錯和負載均衡

③ 服務自動注冊和發現

thrift框架

Thrift是一種接口描述語言和二進制通訊協議。原由Facebook于2007年開發,2008年正式提交Apache基金會托管,成為Apache下的開源項目。

Thrift是一個RPC通訊框架,采用自定義的二進制通訊協議設計。相比于傳統的HTTP協議,效率更高,傳輸占用帶寬更小。另外,Thrift是跨語言的

Hetty 框架

Hetty 是一款構建于?Netty??和?Hessian?基礎上的高性能的 RPC 框架

Hessian 是一款基于 HTTP 協議的 RPC 框架,采用的是二進制 RPC 協議,非常輕量級 ,且速度較快。

Netty 是一款基于事件驅動的 NIO 框架,用以快速開發高性能、高可靠性的網絡服務器和客戶端程序。Hetty 客戶端完全由 Hessian 實現,只是使用 Netty 重新實現了服務端

03

基于grpc框架服務的接口測試

01

創建一個grpc服務接口

注意在公司里你們的grpc服務可能并不是采用python去實現的,課上咱們為了測試grpc的接口,使用python先創建grpc的服務接口

安裝依賴庫

創建grpc接口協議文檔

在項目下創建一個grpc_study包,包下創建一個add.proto文件,將下述內容復制進去

生成服務代碼

終端下進入proto文件所在目錄,執行下述命令:

創建服務端

02

調用grpc接口客戶端

以下代碼就是調用第一步中的grpc接口的

need-to-insert-img

03

免費領取?碼同學軟件測試?課程筆記+超多學習資料+完整視頻+最新面試題,可以轉發文章?+?私信「碼同學666」獲取資料哦

接口框架中適配grpc封裝

1、封裝底層channel初始化

在config目錄下創建grpc.yml,其中寫上grpc接口的地址:??

在common目錄下的client中增加下述代碼:

在conftes.py中增加下述代碼:

2、封裝grpc接口調用

在api包下創建一個grpcapi的包,將grpc的定義proto文件拷貝進去,然后在終端下進入grpcapi目錄執行下述命令

該目錄下文件如下:

修改add_pb2_grpc.py中的導入如下:

need-to-insert-img

根據上述代碼封裝接口調用,創建一個api_client.py,寫上如下代碼就是grpc提供的add接口的調用方法

need-to-insert-img

3、編寫grpc接口測試用例

在testcases包下創建一個grpcapi包,創建一個test_grpc_api.py,編寫針對add接口的測試用例如下:

need-to-insert-img

執行測試

04

基于dubbo框架服務的接口測試

dubbo服務管理地址:

http://**.***.**.***:****/dubbo-admin-2.6.0

用戶名和密碼都是root

01

dubbo服務管理簡單使用

先設置為中文,右側選擇語言

選擇服務治理-->服務

點開MarketService,再點ip和端口,打開如下:

02

實戰接口說明

第1步里我們看到了兩個接口,exchange和lottery,下面是這兩個接口的業務說明

exchange

業務是積分兌換,該接口的參數是一個對象,對象類型對應后臺java代碼中的某個類cn.testfan.dubbo.model.ExchangeRequest,這個類對象對應的屬性如下,這些屬性其實就是我們的參數

need-to-insert-img

lottery

業務是抽獎,參數有兩個,都是數字,沒有參數名稱,按照順序,第一個表示參與的活動id,第二個表示用戶id

03

python調用dubbo接口

安裝第三方庫

need-to-insert-img

dubbo接口調用

04

接口框架中適配dubbo封裝

1、封裝底層dubbo初始化

在config目錄下創建dubbo.yml文件,寫上如下內容

在client.py里增加下述代碼

2、封裝api層

dubbo接口通常是按照服務進行劃分,一個服務下有多個接口,針對該服務創建對象,然后調用各個接口。

在api包下創建dubboapi的包,針對market服務創建一個market_api.py文件,寫上如下代碼:

3、測試用例層

在testcases包下創建dubboapi包,在其下創建test_market_service.py,寫上如下代碼

執行測試

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,316評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,481評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,241評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,939評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,697評論 6 409
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,182評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,247評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,406評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,933評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,772評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,973評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,516評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,638評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,866評論 1 285
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,644評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,953評論 2 373

推薦閱讀更多精彩內容