インターフェース自動テスト - プロトコル、リクエストプロセス

1. アーキテクチャ

CRM顧客関係管理システム

SAAS ソフトウェア・アズ・ア・サービス ソフトウェア・アズ・ア・サービス

PAAS サービスとしてのプラットフォーム サービスとしてのプラットフォーム

短納期→早い:自分でやって、結果を出し、すべてに対応し、改善し続ける

モノリシック アーキテクチャ—「垂直アーキテクチャ—」サービス指向アーキテクチャ—「マイクロサービス アーキテクチャ (分散型)」

2.インターフェーステスト

インターフェース:システム間、コンポーネントとコンポーネント間のデータ送信と対話のためのチャネル。

(システム間:複数の内部システム間、内部システムと外部システム間、プログラム間:メソッド間、関数間、関数間、モジュール間)

インターフェーステスト:システムやコンポーネント間のインターフェースをテストし、送信されるデータの正しさや論理的な依存関係の正しさを検証することです

原則:主なテスト対象はサーバーです。(クライアントがサーバーにリクエストを送信することをシミュレートし、サーバーからクライアントのリクエストに返された応答データが予期された結果と一致するかどうかをテストします)

方法論:アナロジー、異なる物事の間で共通点を見つけること。

学習の次元:

协议:本质是什么?
​
主流工具:
​
代码框架:
​
MockServer

3. APIの自動テスト

インターフェーステストはAPIテストとも呼ばれ、ソフトウェアテストのテストモードの一つで、2つの次元が含まれます。狭義には、アプリケーションプログラミングインターフェースの機能をテストすることを指します。次元的には、完成度、信頼性、セキュリティ、パフォーマンスを指します。 API を呼び出して機能全体をテストすることで、統合テストを実行します。

ツールとコードを使用して、クライアントがサーバーにリクエストを送信する様子をシミュレートし、アサーションを使用して、期待される結果が実際の結果と一致するかどうかを自動的に判断します。

過去 2 年間でインターフェイス テストがこれほど人気になったのはなぜですか?

SAAS アーキテクチャは完全に実装されており、サーバーの安定性が特に重要です

開発モードの変化は主にフロントエンドとバックエンドの分離モードに反映されます。

テストジョブ: (面接の質問!!)

品質管理+テスト効率向上

品質管理とは、問題解決と品質の継続的改善を積極的に推進する能力を指します。

テスト効率の向上とは、技術的手段により研究開発効率を向上させ、テスト効率をさらに向上させることと言えます。

朝の会:昨日は何をしましたか?今日は何をしますか?

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

 

4 番目に、ピラミッド モデル:

低いものはそれに多くのエネルギーを注ぎ、高いものはそれに少しのエネルギーを注ぐ必要があります。

UI 層: 機能テストとして理解できます。

サービス: インターフェイス テスト (API);

ユニット (単体テスト)。

5. ツール:

PostMan、JMeter、SoupUi など、インターフェイス テストを実行できる主流のテスト ツールが多数あります。ツールに加えて、インターフェイス テストに使用できる Python 言語のサードパーティ ライブラリも多数ありますurllib、リクエスト、aiohttp など。

6. 合意 (重要な点!!!)

1. 合意: コミュニケーションの両当事者が厳密に従うことを要求する一連の基準と規則です。

「ハイパーテキスト転送プロトコルとしても知られる HTTP プロトコルは、要求および応答モードに基づくアプリケーション層プロトコルであり、インターネット上で最も広く使用されているネットワーク プロトコルでもあります。

2. デフォルトのポートは 80 です。http:80; https:443。

3. HTTP の現在のバージョンはHTTP/1.1 で、最新バージョンは HTTP/2.0 です。

ネットワークリクエストを表示する手順: (開発者ツール)

Webサイトを開く(Google Chromeを使用)→チェック→ネットワーク、すべて→Webページを更新

HTTP/2.0 バージョンでは以下が使用されます。

分散アーキテクチャおよびマイクロサービス アーキテクチャでは、gRPC プロトコルは HTTP/2.0 バージョンに基づいて設計された新世代アーキテクチャに基づいて設計されています。(gRPCプロトコル:インターネット金融などに応用されているプロトコル)

書籍: TCP/IP の図解

ネットワーク階層化

TCP/IP プロトコルは主に、アプリケーション層、トランスポート層、ネットワーク層、データリンク層の層に分かれています。

アプリケーション層:

アプリケーション層は、アプリケーション サービスをユーザーに提供する際の通信アクティビティを決定します。HTTP プロトコルと gRPC プロトコルはアプリケーション層プロトコルに属します。

トランスポート層:

アプリケーション層の下位層はネットワーク トランスポート層で、ネットワーク接続内の 2 台のコンピュータ間のデータ送信を提供します。

ネットワーク層:

主にネットワーク上を流れるデータパケットの処理に使用されます. いわゆるデータパケットはネットワーク伝送の最小単位です. この層のプロトコルでは、ターゲットコンピュータに到達する経路が規制され、データパケットはネットワークに送信されますターゲット コンピューター。正方形。ネットワーク層: 1. データ送信の保証 2. データ送信の宛先の把握

リンク層:

主に、オペレーティング システムやハードウェア デバイスのドライバーなど、ネットワークに接続されるハードウェア部分を扱います。

3回の握手(面接では必ず質問する必要があります!!!)

スリーウェイ ハンドシェイクによって解決される問題:データ送信のセキュリティと可用性の確保

3 ウェイ ハンドシェイクは、TCP ハンドシェイク プロトコルとも呼ばれます。毎回送信されるデータ量を追跡してネゴシエートするために、送受信データ セグメントの同期を確保し、受信したデータ量に応じてデータ送信を確認し、受信後に連絡をキャンセルするタイミングを確認し、仮想接続を確立します。データをターゲット サーバーに確実に送信できるようにするために、TCP プロトコルは内部で 3 ウェイ ハンドシェイク戦略メカニズムを使用します。つまり、TCP プロトコルでは、TCP がデータ パケットを送信した後、TCP はデータ パケットが送信されたかどうかを確認します。相手がメッセージを受信したか、またはメッセージが正常に配信されたかどうかを確認する場合、スリーウェイ ハンドシェイクでは主に TCP フラグ、具体的には SYN と ACK が使用されます。まず、クライアントは接続要求メッセージ (SYN) を送信し、サーバーは接続を受け入れた後に ACK メッセージで応答し、この接続にリソースを割り当てます (SYN+ACK)。クライアントは ACK メッセージを受信した後、サーバー セグメントに ACK メッセージを送信し、リソースを割り当てます。これにより、TCP 接続が確立されます。(SYN=同期シーケンス番号 ACK=確認メッセージ)

スリーウェイ ハンドシェイクは次のように要約されます。

  • 最初のハンドシェイク: 最初は両端が CLOSED 状態にあり、クライアントはフラグ ビット SYN を 1 に設定し、ランダムに値 seq=x を生成し、データ パケットをサーバーに送信し、クライアントは SYN-SENT 状態に入ります。 、サーバーの確認を待っています。
  • 2 番目のハンドシェイク: サーバーがデータ パケットを受信した後、フラグ ビット SYN=1 によりクライアントが接続の確立を要求していることがわかり、サーバーはフラグ ビット SYN と ACK を 1 (ack=x+1) に設定し、ランダムに値 seq=y を指定し、データ パケットをクライアントに送信して接続要求を確認すると、サーバーは SYN-RCVD 状態になり、この時点でオペレーティング システムが TCP 接続に TCP バッファと変数を割り当てます。
  • 3 回目のハンドシェイク: 確認を受信した後、クライアントは ack が x+1 であるかどうか、および ACK が 1 であるかどうかを確認します。それが正しい場合、フラグ ビット ACK は 1 (ack=y+1) に設定され、この時点でオペレーティング システムは TCP 接続は TCP キャッシュと変数を割り当て、データ パケットをサーバーに送信します サーバーは ACK が y+1 であるかどうか、および ACK が 1 であるかどうかを確認します。それが正しければ、接続は正常に確立されますクライアントとサーバーは ESTABLISHED 状態になり、スリーウェイ ハンドシェイクが完了すると、クライアントとサーバーはデータの転送を開始できるようになります。

TCP は接続指向のプロトコルであるため、各リクエストは相手側によって確認される必要があります。TCP クライアントと TCP サーバーは、通信して接続を確立する前に、3 ウェイ ハンドシェイクを完了する必要があります。

以下は、3 ウェイ ハンドシェイク プロセスの詳細な説明です。

1回目の握手

最初のハンドシェイクで接続が確立されると、図に示すように、クライアントは SYN メッセージ (SEQ=x、SYN=1) をサーバーに送信し、SYN_SENT 状態に入り、サーバーの確認を待ちます。

2回目の握手

2 回目のハンドシェイクは実際には 2 つの部分、つまり SYN+ACK (要求と確認) メッセージで完了します。

  • サーバーはクライアントのリクエストを受信し、確認メッセージ (ACK=x+1) をクライアントに返します。
  • 次に、サーバーは SYN パケット (SEQ=y) 要求を送信してクライアントへの接続を確立します。この時点で、図に示すように、サーバーは SYN_RECV 状態に入ります。

3回目の握手

3 番目のハンドシェイクは、クライアントがサーバーからの応答 (SYN+ACK メッセージ) を受信したときです。このとき、クライアントはサーバーに確認パケット (ACK) も送信します。図に示すように、パケットが送信された後、クライアントとサーバーは ESTABLISHED 状態になり、3 ウェイ ハンドシェイクを完了します。

要約:

1. クライアントは SYN 要求メッセージをサーバーに送信し、SYN_SENT 状態に入り、サーバーが確認するのを待ちます。
2. サーバーはリクエストを受信して​​確認し、確認メッセージと接続確立要求をクライアントに送信し、この時点でサーバーは SYN_RECV 状態になります。
3. リクエストと確認メッセージを受信したクライアントは、サーバーに確認メッセージを送信し、接続が成功すると、クライアントとサーバーは ESTABLISHED 状態になり、3 ウェイ ハンドシェイクが完了します。

SYN と ACK は、TCP/IP が接続を確立するために使用するハンドシェイク信号です。クライアントとサーバーの間で通常の TCP ネットワーク接続を確立するときクライアントは最初に SYN メッセージを送信し、サーバーは SYN+ACK (要求と確認) を使用します。 message)応答はメッセージが受信されたことを示し、最後にクライアントはACKメッセージで応答します。このようにして、クライアント コンピューターとサーバーの間で信頼性の高い TCP 接続を確立でき、クライアント コンピューターとサーバーの間でデータを送信できます。

質問:なぜ 2 ウェイ ハンドシェイクではなく 3 ウェイ ハンドシェイクなのか:
3 ウェイ ハンドシェイクにより、双方が自分と相手の送受信機能が正常であることを確認できるからです。

URI和URL

URI は、Uniform Resource Identifier と呼ばれる一方、URL は、Uniform Resource Locator と呼ばれます。URI はインターネット上のリソースを識別するものとして理解できますが、URL はリソースの場所を表します。URI は、インターネット上のリソースを見つけるために HTTP プロトコルで使用されるため、インターネット上のどこからでもリソースを取得できます。URL は、リソースを見つけるのに十分な情報を含む特別なタイプの URI です。

HTTPプロトコル

マイクロサービスのアーキテクチャモードでは、軽量通信モード(REST API)も使用されますが、マイクロサービスのアーキテクチャモードでは、その通信が同期通信モードと非同期通信モードに分けられることを明確にする必要があります。それは、リクエスト/レスポンスと非同期リクエスト/レスポンス (パブリッシュ/サブスクライブ モード) です。

HTTP リクエスト プロセス: (強調!!!)

1. クライアントとサーバー間の TCP 接続要求を確立します。

2. クライアントはサーバーに Request リクエストを送信します。

3. サーバーはクライアントのリクエストに応答するために Response を返します。

4. クライアントとサーバー間の TCP 接続要求を閉じます。

永続的な接続: 接続:キープアライブ

永続的な接続 初期バージョンの HTTP では、リクエストが送信されるたびに TCP の接続と切断 (上図の手順 1 と 4 に相当) が必要であり、これは明らかにサーバーのパフォーマンスに非常に大きな損失を与えます。ただし、通信オーバーヘッドも増加します。HTTP/1.0 以降のバージョンでは、永続的な接続、つまりキープアライブがあり、クライアントまたはサーバーが明示的に切断しない限り、TCP 接続は常に維持される必要があるという特徴があります。 TCP 接続の接続と切断の繰り返しによるパフォーマンスの損失を軽減し、サーバーの負荷を軽減し、全体的な応答時間のパフォーマンスを向上させます。


以下はサポート学習教材です。[ソフトウェア テスト] を行う友人にとって、これは最も包括的で完全な準備倉庫となるはずです。この倉庫は、最も困難な旅を私に同行させてくれました。あなたにも役立つことを願っています。

ソフトウェアテストインタビューアプレット

ソフトウェア テストの質問バンクには、何百万人もの人が参加しました。誰が知っているのか!ネットワーク全体で最も包括的なクイズ ミニ プログラムです。携帯電話を使用して、地下鉄やバスの中でもクイズに答えることができます。

次の面接の質問セクションが取り上げられます。

1. ソフトウェアテストの基礎理論、2. Web、アプリ、インターフェース機能テスト、3. ネットワーク、4. データベース、5. Linux

6. Web、アプリ、インターフェイスの自動化、7. パフォーマンス テスト、8. プログラミングの基本、9. 時間面接の質問、10. 公開テストの質問、11. セキュリティ テスト、12. コンピューターの基本

情報取得方法:

おすすめ

転載: blog.csdn.net/jiangjunsss/article/details/132604962
おすすめ