python socket,從0到1實現python基于RPC協議的接口自動化測試

 2023-11-19 阅读 41 评论 0

摘要:01、什么是RPC RPC(Remote Procedure Call)遠程過程調用協議是一個用于建立適當框架的協議。從本質上講,它使一臺機器上的程序能夠調用另一臺機器上的子程序,而不會意識到它是遠程的。 RPC 是一種軟件通信協議,一個程序可以用來向位于網絡

01、什么是RPC

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

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

02、RPC框架

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

  • python socket,grpc框架

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

  • dubbo框架

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

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

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

② 智能容錯和負載均衡

③ 服務自動注冊和發現

  • thrift框架

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

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

  • Hetty 框架

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

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

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

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

01、創建一個grpc服務接、

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

  • 安裝依賴庫

  • 創建grpc接口協議文檔

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

  • 生成服務代碼

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

  • 創建服務端

02、調用grpc接口客戶端

python批量合同?以下代碼就是調用第一步中的grpc接口的

03、接口框架中適配grpc封裝

1、封裝底層channel初始化

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

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

python開源協議。在conftes.py中增加下述代碼:

2、封裝grpc接口調用

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

該目錄下文件如下:

python 排序。修改add_pb2_grpc.py中的導入如下:

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

3、編寫grpc接口測試用例

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

python協議,執行測試

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

dubbo服務管理地址:

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

用戶名和密碼都是root

01、dubbo服務管理簡單使用

python應用?先設置為中文,右側選擇語言

選擇服務治理-->服務

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

02、實戰接口說明

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

  • python+pytest接口自動化。exchange

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

  • lottery

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

03、python調用dubbo接口

  • 安裝第三方庫

  • python做什么的,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,寫上如下代碼

執行測試


?最后感謝每一個認真閱讀我文章的人,看著粉絲一路的上漲和關注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走

面試資料

我們學習軟件測試必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節等一線互聯網大廠最新的面試資料,并且有阿里大佬給出了權威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。

上面是我整理的配套資源,這些資源對于軟件測試的的朋友來說應該是最全面最完整的備戰倉庫,為了更好地整理每個模塊,我也參考了很多網上的優質博文和項目,力求不漏掉每一個知識點,很多朋友靠著這些內容進行復習,拿到了BATJ等大廠的offer,這個倉庫也已經幫助了很多的軟件測試的學習者,希望也能幫助到你。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/184694.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息