每天進(jìn)步一點(diǎn)點(diǎn),關(guān)注我哦,每天分享測試技術(shù)文章,文末有福利!
目錄:導(dǎo)讀
前言
一、什么是RPC
二、RPC框架
三、基于grpc框架服務(wù)的接口測試
01創(chuàng)建一個(gè)grpc服務(wù)接口
02調(diào)用grpc接口客戶端
03接口框架中適配grpc封裝
四、基于dubbo框架服務(wù)的接口測試
01、dubbo服務(wù)管理簡單使用
02、實(shí)戰(zhàn)接口說明
03、python調(diào)用dubbo接口
04、接口框架中適配dubbo封裝
結(jié)語
前言
當(dāng)我們進(jìn)行接口測試時(shí),手動(dòng)測試成本高且易錯(cuò),因此自動(dòng)化測試成為了提高效率和準(zhǔn)確性的重要手段。而RPC協(xié)議在分布式系統(tǒng)中很常見,對其進(jìn)行自動(dòng)化測試能夠更好地保障在各節(jié)點(diǎn)之間的通信質(zhì)量。
今天我想和大家分享一下,我是如何用Python來實(shí)現(xiàn)自動(dòng)化測試并輕松完成RPC協(xié)議接口測試的,讓我們一起來看看!
一、什么是RPC
RPC(Remote Procedure Call)遠(yuǎn)程過程調(diào)用協(xié)議是一個(gè)用于建立適當(dāng)框架的協(xié)議。從本質(zhì)上講,它使一臺機(jī)器上的程序能夠調(diào)用另一臺機(jī)器上的子程序,而不會(huì)意識到它是遠(yuǎn)程的。
RPC 是一種軟件通信協(xié)議,一個(gè)程序可以用來向位于網(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í)也被稱為函數(shù)調(diào)用或子程序調(diào)用
二、RPC框架
RPC本身是一套協(xié)議規(guī)范,遵循這一套規(guī)范實(shí)現(xiàn)的框架比較流行的有以下幾個(gè):
-
grpc框架
gRPC是由 google開發(fā)的一個(gè)高性能、通用的開源RPC框架,主要面向移動(dòng)應(yīng)用開發(fā)且基于HTTP/2協(xié)議標(biāo)準(zhǔn)而設(shè)計(jì),同時(shí)支持大多數(shù)流行的編程語言。gRPC基于 HTTP/2協(xié)議傳輸
-
dubbo框架
Dubbo是阿里巴巴公司開源的一個(gè)高性能優(yōu)秀的服務(wù)框架,使得應(yīng)用可通過高性能的 RPC 實(shí)現(xiàn)服務(wù)的輸出和輸入功能,可以和Spring框架無縫集成。
Dubbo是一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:
① 面向接口的遠(yuǎn)程方法調(diào)用
② 智能容錯(cuò)和負(fù)載均衡
③ 服務(wù)自動(dòng)注冊和發(fā)現(xiàn)
-
thrift框架
Thrift是一種接口描述語言和二進(jìn)制通訊協(xié)議。原由Facebook于2007年開發(fā),2008年正式提交Apache基金會(huì)托管,成為Apache下的開源項(xiàng)目。
Thrift是一個(gè)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ū)動(dòng)的 NIO 框架,用以快速開發(fā)高性能、高可靠性的網(wǎng)絡(luò)服務(wù)器和客戶端程序。Hetty 客戶端完全由 Hessian 實(shí)現(xiàn),只是使用 Netty 重新實(shí)現(xiàn)了服務(wù)端
三、基于grpc框架服務(wù)的接口測試
01創(chuàng)建一個(gè)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)建一個(gè)grpc_study包,包下創(chuàng)建一個(gè)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)建一個(gè)grpcapi的包,將grpc的定義proto文件拷貝進(jìn)去,然后在終端下進(jìn)入grpcapi目錄執(zhí)行下述命令
免費(fèi)領(lǐng)取碼同學(xué)軟件測試課程筆記+超多學(xué)習(xí)資料+完整視頻+面試題,可加微信:Matongxue_10
該目錄下文件如下:
修改add_pb2_grpc.py中的導(dǎo)入如下:
根據(jù)上述代碼封裝接口調(diào)用,創(chuàng)建一個(gè)api_client.py,寫上如下代碼就是grpc提供的add接口的調(diào)用方法
(3)編寫grpc接口測試用例
在testcases包下創(chuàng)建一個(gè)grpcapi包,創(chuàng)建一個(gè)test_grpc_api.py,編寫針對add接口的測試用例如下:
執(zhí)行測試
四、基于dubbo框架服務(wù)的接口測試 ?
dubbo服務(wù)管理地址:
http://**.***.**.***:****/dubbo-admin-2.6.0
用戶名和密碼都是root
01、dubbo服務(wù)管理簡單使用 ?
先設(shè)置為中文,右側(cè)選擇語言
選擇服務(wù)治理-->服務(wù)
點(diǎn)開MarketService,再點(diǎn)ip和端口,打開如下:
02、實(shí)戰(zhàn)接口說明
第1步里我們看到了兩個(gè)接口,exchange和lottery,下面是這兩個(gè)接口的業(yè)務(wù)說明
-
exchange
業(yè)務(wù)是積分兌換,該接口的參數(shù)是一個(gè)對象,對象類型對應(yīng)后臺java代碼中的某個(gè)類cn.testfan.dubbo.model.ExchangeRequest,這個(gè)類對象對應(yīng)的屬性如下,這些屬性其實(shí)就是我們的參數(shù)
-
lottery
業(yè)務(wù)是抽獎(jiǎng),參數(shù)有兩個(gè),都是數(shù)字,沒有參數(shù)名稱,按照順序,第一個(gè)表示參與的活動(dòng)id,第二個(gè)表示用戶id
03、python調(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)行劃分,一個(gè)服務(wù)下有多個(gè)接口,針對該服務(wù)創(chuàng)建對象,然后調(diào)用各個(gè)接口。
在api包下創(chuàng)建dubboapi的包,針對market服務(wù)創(chuàng)建一個(gè)market_api.py文件,寫上如下代碼:
(3)測試用例層
在testcases包下創(chuàng)建dubboapi包,在其下創(chuàng)建test_market_service.py,寫上如下代碼
執(zhí)行測試
結(jié)語
這篇貼子到這里就結(jié)束了,最后,希望看這篇帖子的朋友能夠有所收獲。
?Python自動(dòng)化測試教程獲取方式:留言【Python自動(dòng)化測試】即可文章來源:http://www.zghlxwxcb.cn/news/detail-427754.html
如果你覺得文章還不錯(cuò),請大家 點(diǎn)贊、分享、留言 下,因?yàn)檫@將是我持續(xù)輸出更多優(yōu)質(zhì)文章的最強(qiáng)動(dòng)力!文章來源地址http://www.zghlxwxcb.cn/news/detail-427754.html
到了這里,關(guān)于用Python搞定接口自動(dòng)化測試:輕松實(shí)現(xiàn)RPC協(xié)議接口測試的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!