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

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

python實(shí)現(xiàn)基于RPC協(xié)議的接口自動化測試

2023-04-03 09:17 作者:碼同學(xué)軟件測試  | 我要投稿


01什么是RPC

RPC(Remote Procedure Call)遠(yuǎn)程過程調(diào)用協(xié)議是一個用于建立適當(dāng)框架的協(xié)議。從本質(zhì)上講,它使一臺機(jī)器上的程序能夠調(diào)用另一臺機(jī)器上的子程序,而不會意識到它是遠(yuǎn)程的。


RPC 是一種軟件通信協(xié)議,一個程序可以用來向位于網(wǎng)絡(luò)上另一臺計(jì)算機(jī)的程序請求服務(wù),而不必了解網(wǎng)絡(luò)的細(xì)節(jié)。RPC 被用來像本地系統(tǒng)一樣調(diào)用遠(yuǎn)程系統(tǒng)上的其他進(jìn)程。過程調(diào)用有時也被稱為函數(shù)調(diào)用或子程序調(diào)用



02RPC框架

RPC本身是一套協(xié)議規(guī)范,遵循這一套規(guī)范實(shí)現(xiàn)的框架比較流行的有以下幾個:

  • grpc框架


每天進(jìn)步一點(diǎn)點(diǎn),關(guān)注我們哦,每天分享測試技術(shù)文章

本文章出自【碼同學(xué)軟件測試】

碼同學(xué)公眾號:自動化軟件測試,領(lǐng)取資料可加:Matongxue_10

碼同學(xué)抖音號:小碼哥聊軟件測試



gRPC是由 google開發(fā)的一個高性能、通用的開源RPC框架,主要面向移動應(yīng)用開發(fā)且基于HTTP/2協(xié)議標(biāo)準(zhǔn)而設(shè)計(jì),同時支持大多數(shù)流行的編程語言。gRPC基于 HTTP/2協(xié)議傳輸

  • dubbo框架

Dubbo是阿里巴巴公司開源的一個高性能優(yōu)秀的服務(wù)框架,使得應(yīng)用可通過高性能的 RPC 實(shí)現(xiàn)服務(wù)的輸出和輸入功能,可以和Spring框架無縫集成。


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

① 面向接口的遠(yuǎn)程方法調(diào)用

② 智能容錯和負(fù)載均衡

③ 服務(wù)自動注冊和發(fā)現(xiàn)

  • thrift框架

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


Thrift是一個RPC通訊框架,采用自定義的二進(jìn)制通訊協(xié)議設(shè)計(jì)。相比于傳統(tǒng)的HTTP協(xié)議,效率更高,傳輸占用帶寬更小。另外,Thrift是跨語言的

  • Hetty 框架

Hetty 是一款構(gòu)建于?Netty??和?Hessian?基礎(chǔ)上的高性能的 RPC 框架

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


Netty 是一款基于事件驅(qū)動的 NIO 框架,用以快速開發(fā)高性能、高可靠性的網(wǎng)絡(luò)服務(wù)器和客戶端程序。Hetty 客戶端完全由 Hessian 實(shí)現(xiàn),只是使用 Netty 重新實(shí)現(xiàn)了服務(wù)端



03基于grpc框架服務(wù)的接口測試

01創(chuàng)建一個grpc服務(wù)接口


注意在公司里你們的grpc服務(wù)可能并不是采用python去實(shí)現(xiàn)的,課上咱們?yōu)榱藴y試grpc的接口,使用python先創(chuàng)建grpc的服務(wù)接口

  • 安裝依賴庫

  • 創(chuàng)建grpc接口協(xié)議文檔

    在項(xiàng)目下創(chuàng)建一個grpc_study包,包下創(chuàng)建一個add.proto文件,將下述內(nèi)容復(fù)制進(jìn)去

  • 生成服務(wù)代碼

    終端下進(jìn)入proto文件所在目錄,執(zhí)行下述命令:

  • 創(chuàng)建服務(wù)端


02調(diào)用grpc接口客戶端


以下代碼就是調(diào)用第一步中的grpc接口的


03接口框架中適配grpc封裝


1、封裝底層channel初始化

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

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

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


2、封裝grpc接口調(diào)用

在api包下創(chuàng)建一個grpcapi的包,將grpc的定義proto文件拷貝進(jìn)去,然后在終端下進(jìn)入grpcapi目錄執(zhí)行下述命令

該目錄下文件如下:

修改add_pb2_grpc.py中的導(dǎo)入如下:


根據(jù)上述代碼封裝接口調(diào)用,創(chuàng)建一個api_client.py,寫上如下代碼就是grpc提供的add接口的調(diào)用方法

免費(fèi)領(lǐng)取碼同學(xué)軟件測試課程筆記+超多學(xué)習(xí)資料+完整視頻+面試題,可加微信:Matongxue_10



3、編寫grpc接口測試用例

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

執(zhí)行測試



04基于dubbo框架服務(wù)的接口測試

dubbo服務(wù)管理地址:

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

用戶名和密碼都是root


01dubbo服務(wù)管理簡單使用


先設(shè)置為中文,右側(cè)選擇語言

選擇服務(wù)治理-->服務(wù)

點(diǎn)開MarketService,再點(diǎn)ip和端口,打開如下:


02實(shí)戰(zhàn)接口說明


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

  • exchange

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


  • lottery

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


03python調(diào)用dubbo接口


  • 安裝第三方庫


  • dubbo接口調(diào)用

04接口框架中適配dubbo封裝


1、封裝底層dubbo初始化

在config目錄下創(chuàng)建dubbo.yml文件,寫上如下內(nèi)容

在client.py里增加下述代碼


2、封裝api層

dubbo接口通常是按照服務(wù)進(jìn)行劃分,一個服務(wù)下有多個接口,針對該服務(wù)創(chuàng)建對象,然后調(diào)用各個接口。

在api包下創(chuàng)建dubboapi的包,針對market服務(wù)創(chuàng)建一個market_api.py文件,寫上如下代碼:


3、測試用例層

在testcases包下創(chuàng)建dubboapi包,在其下創(chuàng)建test_market_service.py,寫上如下代碼

執(zhí)行測試

免費(fèi)領(lǐng)取碼同學(xué)軟件測試課程筆記+超多學(xué)習(xí)資料+學(xué)習(xí)完整視頻 ? 可加:Matongxue_8/關(guān)注碼同學(xué)公眾號:自動化軟件測試

本文著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處。


python實(shí)現(xiàn)基于RPC協(xié)議的接口自動化測試的評論 (共 條)

分享到微博請遵守國家法律
晋江市| 红安县| 稻城县| 马公市| 定兴县| 开封县| 安徽省| 双辽市| 图木舒克市| 安溪县| 鹤庆县| 邵阳县| 威海市| 江阴市| 孟村| 郁南县| 彭阳县| 宁明县| 无为县| 历史| 封开县| 土默特左旗| 错那县| 临沭县| 黔西| 玉溪市| 通州市| 易门县| 阜南县| 达孜县| 北安市| 资阳市| 邯郸县| 安庆市| 日土县| 开鲁县| 德兴市| 雷州市| 东乡族自治县| 柘城县| 武宣县|