テスト自動化サービスモックアイデアのディスカッション

製品のテストは、我々は次のような状況が発生した場合:

  1. インターフェイス障壁に依存。例えば、私のテストオーダーシステムでは、我々は、商品の製品情報インタフェースシステムコールを取得する必要があります。インターフェイスは、商品を破損している場合は、私が商品復旧後インタフェースのテストを継続して待つ必要があります。私たちは、すべての感情を持っている、これは、テスト環境では特にそうです。インターフェースは、それのいくつかの安定に頼ることはできませんか?
  2. 異常なデータが難しく、シミュレーション。私は商品のシステムをテストしたときのビジネスが違法であるとき、別の例として、あなたは、通常の状況下では、インタフェースは、このようなデータを提供することができない、商人インターフェース認証システム事業を呼び出す必要があります。あなたは、このようなテストはより困難になる行うことができます。行うためのシンプルなインターフェイスを構築する方法を外れ値たちそれ?
  3. 依存界面性能パラメータは保証されません。この例では、このです。私は、企業がコール頻度のコモディティ側を満たすために、タイムリーなリターンデータ・インタフェースを必要とする、コモディティシステムストレステストにありました。さて実際には、高性能マシンの商品の圧力試験の要件を満たすためにビジネスシステムの導入を検討しています。依存インターフェースよりの場合は、これは偉大な追加のワークロードであろう場合。どのようにこの作業を省略することができますか?

あなたは、ネットワークのインタフェースをシミュレートするモックの方法を使用して考えることがあります。このようなプロセスがあります。私は、テスト中のシステムの出力で取得したいです。テスラは、テスト対象のシステムです。テスラを介してデータ入力後、テスラは、スタブインタフェースを呼び出し、そのデータを返します。前の例と同じように、私たちは、引用している:コモディティ・マーチャントシステムコールインタフェースを。スタブインタフェースがハングアップした場合、我々はモックサービスと、このインターフェイスを交換し、カスタムのリターンの良いデータ出力を取得し、その後、データの正常な流れを完了します。

これは、モックは完全にそれの冒頭で述べた三つの問題を解決するサービスではありませんか?私はないと思います。私たちは、業界モックプログラムの多数を研究し、例えば、HTTPプロトコルWireMock、MockService内部SOAPUIのWebサービスのサポート、ジャーパッケージとjarパッケージとのインターフェースの必要性を呼び出すために、独自のインタフェースを記述するためにダボの必要性をサポートしています。私たちは、この欠点から、次を参照してください。異なるプラットフォームの異なるプロトコルに属しプログラムは、複数のモックサービスを効果的に管理することはできません。

モックサービスプラットフォーム管理部は、実際には、主に参照するには、各種プログラムの家は、便利ではありません。モックプログラムについて、実際には、異なるスキームが大きく異なります。アナログインターフェイスルックスがあるために、基礎となるプロトコルからではない場合、それは素晴らしいスケーラビリティではないかもしれません。

近代的なRPCの性質は、実際にネットワーク・データ・パケットを介して送信され、パケットの特性は、ヘッダ+ボディです。ヘッダプロトコルヘッダは、設計者のプロトコルに応じて、固定長または可変長に分割されます。たとえばダボ契約は、固定長です。そして、いくつかの契約は長さが異なります。本体は、実際には、体内のウェルに直列化データの処理対象の配列メッセージボディです。今人気のシリアル化されたプログラムがありますようにヘッセ、ジャワ、JSON、msgpackと。

このような性質を持つ、ネットワークからのパケットの双方向伝送の種類で見てみましょう。
NIO /ネッティーフレームのボトムフレーム。通信は非同期であるため、高性能、高並行性のサポートは、ネッティーフレームを行うことができます。
通信を確立した後、クライアントは、要求を開始サーバにデータパケットを送信します。データパケットを取得するには、サーバーの後に操作をデコードします。
コンフィギュレーションサーバ応答結果は、シーケンスが完了すると、クライアントへのプロトコルヘッダ情報バックを追加します。
このプロセスは簡単ですが、実際の開発プロセスにおけるいくつかの問題が発生する可能性がありますが。ここではいくつかのピットは、ご参考のために記載されているときに私が実際に遭遇したものです。

  1. ハートビートパケットが処理されます。ハートビートパッケージは、実際には、接続を維持するために何がされ、サーバーへのクライアントはちょうど私がまだ生きていたことをサーバーに伝えるために使用され、任意の詳細を持っていない開始テストキットを、タイムアウトしました。何体が存在しないので、そんなに特別な処理は、本体に直接類似した応答パケットを持っていないこと。
  2. クライアントは、パケットがリンクされ、再送要求を取り付け終了する最後の要求にバイトの長さを決定することが必要であることができる、それが次の要求が続くべきです。これは、データパケットの合理的なカットが必要です。
  3. 認証情報付きパケットのプロトコルヘッダ部分は、例えば、リターンする必要がありますが、このIDを配置する必要がありますが、クライアントに返されたときに、同じようrequestIDことがあります。idが同じでない場合は、一般的なクライアントは、認証メカニズムを持つことになりますので、この応答を解決されません。

剥離依存関係を支援するために、良い取引をより便利に根本的な拡張プロトコルの開始から、モックインターフェイスのため、要約すると、より便利に、乗数効果を達成するため、独自の検査システムに集中します。

おすすめ

転載: www.cnblogs.com/dayiran1222/p/12565895.html