Python は、RPC プロトコルに基づいてインターフェイスの自動テストを実装します。

RPCとは

RPC(Remote Procedure Call)リモートプロシージャコールプロトコルは、適切な枠組みを構築するためのプロトコルである。基本的に、あるマシン上のプログラムが、それがリモートであることを認識せずに別のマシン上のサブルーチンを呼び出すことができるようになります。

RPC は、ネットワークの詳細を知らなくても、プログラムがネットワーク上の別のコンピューターにあるプログラムにサービスを要求するために使用できるソフトウェア通信プロトコルです。RPC は、ローカル システムと同様に、リモート システム上の他のプロセスを呼び出すために使用されます。プロシージャ呼び出しは、関数呼び出しまたはサブルーチン呼び出しと呼ばれることもあります。

02 RPCフレームワーク

RPC 自体は一連のプロトコル仕様であり、この一連の仕様に従って次のフレームワークを実装するのが一般的です。

grpcフレームワーク

gRPC は、Google が開発した高性能の汎用オープンソース RPC フレームワークで、主にモバイル アプリケーション開発用に設計され、HTTP/2 プロトコル標準に基づいており、最も一般的なプログラミング言語をサポートしています。gRPC は HTTP/2 プロトコル送信に基づいています

ダボフレームワーク

Dubbo は Alibaba がオープンソース化した高性能で優れたサービス フレームワークで、アプリケーションは高性能 RPC を通じてサービスの入出力機能を実現でき、Spring フレームワークとシームレスに統合できます。

Dubbo は、高性能かつ軽量のオープンソース Java RPC フレームワークであり、次の 3 つのコア機能を提供します。

① インターフェース指向のリモートメソッド呼び出し

② インテリジェントなフォールトトレランスとロードバランシング

③ サービスの自動登録と検出

倹約フレームワーク

Thrift は、インターフェイス記述言語およびバイナリ通信プロトコルです。元々は 2007 年に Facebook によって開発されましたが、2008 年にホスティングのために Apache Foundation に正式に提出され、Apache の下でオープンソース プロジェクトになりました。

Thrift は、カスタム バイナリ通信プロトコルを使用して設計された RPC 通信フレームワークです。従来の HTTP プロトコルと比較して、効率が高く、送信に必要な帯域幅が少なくなります。また、Thrift は言語を超えたものです

ヘティフレーム

Hetty は、Netty と Hessian に基づいて構築された高性能 RPC フレームワークです。

Hessian は、HTTP プロトコルに基づく RPC フレームワークで、非常に軽量で高速なバイナリ RPC プロトコルを使用します。

Netty は、高性能、高信頼性の Web サーバーおよびクライアント プログラムを迅速に開発するためのイベント駆動型 NIO フレームワークです。Hetty クライアントは Hessian によって完全に実装されていますが、サーバーは Netty を使用して再実装されています。
 

03 grpcフレームワークサービスに基づくインターフェーステスト

01 grpcサービスインターフェースの作成

社内の grpc サービスは Python を使用して実装されていない可能性があることに注意してください。クラスで grpc インターフェイスをテストするために、最初に Python を使用して grpc サービス インターフェイスを作成します。

依存ライブラリをインストールする

 

grpcインターフェースプロトコルドキュメントの作成

プロジェクトの下に grpc_study パッケージを作成し、そのパッケージの下に add.proto ファイルを作成し、そこに次の内容をコピーします。

 

サービスコードを生成する

ターミナルで、proto ファイルが配置されているディレクトリを入力し、次のコマンドを実行します。

サーバーを作成する

 

 

02 grpcインターフェースクライアントを呼び出します

次のコードは、最初のステップで grpc インターフェイスを呼び出します。

 

03 インターフェースフレームワークでの grpc カプセル化の適応

1. 基礎となるチャネルの初期化をカプセル化します。

config ディレクトリに grpc.yml を作成し、その中に grpc インターフェイスのアドレスを書き込みます。

 次のコードを共通ディレクトリのクライアントに追加します。

 conftes.py に次のコードを追加します。

 

2. grpc インターフェース呼び出しをカプセル化する

api パッケージの下に grpcapi パッケージを作成し、その中に grpc の定義 proto ファイルをコピーし、ターミナルの下の grpcapi ディレクトリに入って次のコマンドを実行します。

 このディレクトリ内のファイルは次のとおりです。

 add_pb2_grpc.py のインポートを次のように変更します。

上記のコードに従ってインターフェイス呼び出しをカプセル化し、api_client.py を作成し、grpc によって提供される追加インターフェイスを呼び出す次のコードを記述します。 

 3. grpc インターフェイスのテスト ケースを作成する

testcases パッケージの下に grpcapi パッケージを作成し、test_grpc_api.py を作成して、次のように追加インターフェイスのテスト ケースを作成します。

 テストを実行する

04 dubboフレームワークサービスに基づくインターフェーステスト

ダボサービス管理アドレス:

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

ユーザー名とパスワードは両方とも root です

01 Dubboのサービス管理は使いやすい

最初は中国語に設定し、右側で言語を選択します

サービス ガバナンス - サービスの選択 

 クリックして MarketService を開き、次に [IP とポート] をクリックして、次のように開きます。

 

02 実際のインターフェースの説明
最初のステップでは、交換と宝くじの 2 つのインターフェースを見ましたが、これら 2 つのインターフェースのビジネスの説明は次のとおりです。

交換

ビジネスはポイント交換です。このインターフェイスのパラメータはオブジェクトです。オブジェクト タイプは、バックグラウンド Java コード内の特定のクラス cn.testfan.dubbo.model.ExchangeRequest に対応します。このクラス オブジェクトに対応するプロパティは次のとおりです。プロパティは実際にはパラメータです。

宝くじ

ビジネスは宝くじです。パラメータが 2 つあり、どちらも数字です。パラメータ名はありません。順番に、最初のパラメータは参加アクティビティ ID、2 番目のパラメータはユーザー ID を表します。

03 Python は dubbo インターフェイスを呼び出します

サードパーティのライブラリをインストールする 

 ダボインターフェース呼び出し

 

04 dubbo パッケージをインターフェースフレームワークに適応させる

1. 基礎となるダボ初期化をカプセル化します。

config ディレクトリに dubbo.yml ファイルを作成し、次の内容を記述します

client.py に次のコードを追加します。 

 

2. API 層をカプセル化する

通常、ダボインターフェースはサービスごとに分かれており、一つのサービスの下に複数のインターフェースがあり、サービスに対してオブジェクトが作成され、それぞれのインターフェースが呼び出されます。

api パッケージの下に dubboapi パッケージを作成し、マーケット サービスのmarket_api.py ファイルを作成して、次のコードを記述します。

 

3. テストケース層

testcases パッケージの下に dubboapi パッケージを作成し、その下に test_market_service.py を作成して、次のコードを記述します

 

情報の共有

以下の完全なソフトウェア テスト ビデオ学習チュートリアルには、CSDN によって正式に認定された QR コードがアップロードされています。必要な場合は、無料で入手できます。 【保证100%免费】

おすすめ

転載: blog.csdn.net/lzz718719/article/details/130683246