Python + pytest インターフェイスの自動化: インターフェイスのテスト

インターフェースの定義

一般に、私たちが呼ぶインターフェースは API ですが、API とは何ですか? Baidu では、API を次のように定義しています。

API (アプリケーション プログラミング インターフェイス) は、事前に定義されたインターフェイス (関数、HTTP インターフェイスなど) であり、ソフトウェア システムのさまざまなコンポーネントを接続するための取り決めを指します。アプリケーションや開発者が、ソース コードにアクセスしたり、内部動作の詳細を理解したりすることなく、ソフトウェアやハードウェアにアクセスできるようにするために使用される一連のルーチン。

少し複雑ですが、定義内の次のキーワードを見てみましょう: 定義済みインターフェイス (関数、HTTP インターフェイスなど)、ソフトウェアまたはハードウェアに基づくアクセス、ソース コードにアクセスする必要がない、内部動作を理解する必要がないメカニズムはおそらく理解できるでしょう。

例えば:

  1. コンピュータまたは携帯電話は、USB インターフェイス、充電インターフェイス、ヘッドフォン インターフェイス、マイク インターフェイスなどのさまざまな物理ハードウェア インターフェイスを提供します。これらのインターフェイスにはそれぞれ異なる機能があり、たとえば、USB インターフェイスに U ディスクを挿入するとデータをコピーでき、ヘッドフォン インターフェイスに挿入すると音楽を聴くことができ、これらの動作原理を気にする必要はありません。インターフェイスを使用する必要がある場合は、使用上のニーズを満たすためにのみこれらのインターフェイスを使用する必要があります。

  2. 中国気象網で特定の都市の天気をオンラインで確認し、都市名を入力すると、対応する都市の天気が表示されます。クエリの背後にある本質は、データを取得するために Web サイトのバックエンド インターフェイスを呼び出すことであり、ここでのインターフェイスは Web サービス ソフトウェア インターフェイスです。ユーザーは、Web サイトのバックグラウンドでデータがどのようにクエリされるかに注意を払う必要はなく、返された結果を取得することだけが必要です。

インターフェースの分類

ソフトウェア インターフェイスの分類には多くの側面があり、タイプを定義するのは難しく、混同されることがよくあります。

インターフェイスで使用されるさまざまなプロトコルは次のように分類できます。

  • HTTP インターフェース、HTTP プロトコルを使用

  • Web サービス インターフェイス、SOAP を使用

  • TCP、UDP プロトコルを使用した WebSocket インターフェイス

  • Dubbo インターフェース、Dubbo プロトコルを使用

もちろん、プロトコルによる分類は厳密なものではなく、たとえば、soap プロトコルも HTTP プロトコルのカプセル化に基づいており、Dubbo プロトコルも TCP プロトコルに基づいているため、この分類は参考程度にすぎません。

さまざまなインターフェイス設計スタイルは次のように分類できます。

  • RPC タイプのインターフェイス。RPC はプロシージャ コール (リモート プロシージャ コール プロトコル) を指向しており、主に TCP/IP プロトコルに基づいています。

  • REST タイプのインターフェイス。REST は主に HTTP プロトコルに基づいたリソース呼び出し (Representational State Transfer) を目的としています。

この 2 つのスタイルの具体的な内容については、ここではあまり説明しませんので、興味のある方はご自身で検索してみてください。

   自動テストに関連する推奨チュートリアル:

2023 年最新の自動テスト独習チュートリアルは、初心者向けに 26 日間で始められる最も詳細なチュートリアルで、現在、このチュートリアルを学習して大手企業に入社した人が 300 名を超えています。 ! _bilibili_ビリビリ

Python自動テスト開発フレームワークの2023年最新集【フルスタック/実践/チュートリアル】集エッセンス、学習後の年収40W+_bilibili_bilibili

テスト開発に関連する推奨チュートリアル

2023 年にネットワーク全体で最高の Byte テスト開発責任者が現場で指導し、ゼロから年収 100 万のテスト開発エンジニアになれるよう指導します_bilibili_bilibili

postman/jmeter/fiddler テスト ツールのチュートリアルの推奨事項

JMeter インターフェイス テスト/インターフェイス自動テスト プロジェクトに関する実践的なチュートリアルの最も詳細なコレクション。jmeter インターフェイス テストを学習するには、一連のチュートリアルで十分です。 ! _bilibili_ビリビリ

2023 年に Fiddler でパケットをキャプチャする方法を独学するには、インターネット上で最も詳細なビデオ チュートリアル [Fiddler で 1 日でパケットをキャプチャする方法を学ぶ方法] を必ずご覧ください。 ! _bilibili_ビリビリ

2023 年には、ネットワーク全体が表彰されます。ステーション B でのポストマン インターフェイス テストの最も詳細な実践的な指導は、novices_bilibili_bilibili で学ぶことができます。

共通インターフェース

インターフェイス テストはインターフェイスの検証テストです。テスト プロセス中によく遭遇するインターフェイスは HTTP と Dubbo です。この 2 つの比較は次のとおりです (理解が間違っている場合はコメントして修正してください):

現在、ほとんどの企業のインターフェイス テストは HTTP インターフェイスを対象としています。

TesterHome の Web サイトにログインする場合を例に挙げると、Web ページ上でユーザー名とパスワードを入力し、[ログイン] ボタンをクリックすると、Web ページはログイン インターフェイス (インターフェイスは HTTP インターフェイス) を要求してログインを開始します。サーバーへのログイン要求。

間違ったユーザー名を入力するかエラーを入力すると、ログイン インターフェイス (sign_in) は次のようなエラーを返します。

正しいユーザー名とパスワードを入力すると、ログイン インターフェイスの検証が成功し、ログインが成功し、次のようにホームページにジャンプします。

例を通じて、クライアントとサーバーがインターフェイスを介してデータとどのように対話するかについての一般的な印象を得ることができます。

テストの階層化

ソフトウェア テストは通常​​、上から UI テスト、インターフェイス テスト、単体テストの 3 層ピラミッド モデルに分割されます。

プロジェクトの品質に関しては、ピラミッドの各層を置き換えることはできません。通常のテストでは UI テストに重点を置く場合がありますが、テスト対象のシステムの品質を満たすことができないことがよくあります。また、インターフェイスもテスト済み (単体テストは通常​​、開発によって完了します)。

インターフェイステストの必要性と利点は次のとおりです。

  • UI テストよりも最下層に近いため、根本的な問題が早期に発見されるほど、問題解決にかかるコストが低くなります。

  • UI テストと比較して、インターフェイス テストはバックエンドの隠れたバグを見つけるのが簡単です。

  • フロントエンドとバックエンドが分離されている設計モードでは、フロントエンドのデータの改ざんや偽造をバイパスしてインターフェイス要求を行うのが簡単であるため、インターフェイスの例外処理機能とセキュリティをテストする必要があります。

  • 同時実行の場合、インターフェイスの安定性のパフォーマンスをテストする必要があります。そうしないと、システムの問題が発生しやすくなります。

  • 単体テストと比較して、インターフェイス テストはユーザーの使用シナリオに近く、投資コストが低くなります。

  • UI テストと比較して、インターフェイス テストは、メンテナンス コストを削減し、効率よく自動テストを実行できます。

左右のシフトをテストする

近年、テスト業界ではテストのシフトレフトとシフトライトについて言及することが増えており、それらは次のように定義されています。

左シフトをテストする

テストを左にシフトします。つまり、開発とテストの前に、一部のテスト作業にテストを介入させます。たとえば、アーキテクチャ設計フェーズまたは開発フェーズ中に、テスターが介入して製品のテスト容易性を検討し、開発セルフテストなどを管理します。さらに、テストを要件レビュー段階までさらに拡張することで、テスターが要件を理解するだけでなく、要件の品質も評価できるようになります。

テスト右シフト

テストは右側に移動しています。これは、アプリケーションの起動後の作業の一部にテストが関与していることを意味します。たとえば、テスターは製品の発売中および発売後にオンライン検査を実施できます。また、製品の発売後もテスターはオンラインの状況に注意を払い、問題が見つかった場合は速やかにフォローして影響を最小限に抑える必要があります。

テストを左右に移動する目的は、プロジェクトの品質をより適切に管理することですが、左右どちらに移動しても、実践の過程ではインターフェイスの品質に重点が置かれます。

要約する

現在の市場の需要とソフトウェア テストの採用トレンドの観点から見ると、インターフェイス テストはテスト担当者が習得しなければならないスキルであり、インターフェイスの自動テストは給与を増やすためのツールです。

作業プロセスでは、HTTP プロトコル インターフェイスのインターフェイス テストがさらに行われ、その後のブログでも HTTP タイプのインターフェイスに焦点を当てます。

  要約:

 光学理論は役に立ちません。学んだことを実際に適用するには、それに従って練習する必要があります。このとき、いくつかの実際の事例から学ぶことができます。

お役にたてましたら、いいね、保存していただけると作者の励みになります。次回から素早く検索することも容易になります。

理解できない場合は、下の小さなカードを参照してください。ブロガーは、同じ考えを持つテスターと一緒に学び、改善することも望んでいます。

適切な年齢で、適切なポジションを選択し、自分の長所を最大限に発揮するように努めてください。

私は計画と要約が好きなので、自動テスト開発への道は各段階の計画と切り離すことができません。

テスト開発ビデオチュートリアルと学習ノート収集ポータル! !

おすすめ

転載: blog.csdn.net/m0_59868866/article/details/134598777