初心者のためのAPIのテストのヒント

API(アプリケーションプログラミングインターフェイス)は、ソフトウェアのテストの妥当性検査を実行するためにAPIレベルで直接試験です。それはAPIのテスターは機能性、信頼性、パフォーマンス、セキュリティの期待を満たして確認し、統合テストの一部です。異なる試験UIと、API試験を全くGUIレイヤ操作で行われていません。

APIのテストのヒント

SOAPとREST:ウェブAPI Webサービスの2種類があります。SOAP(シンプルオブジェクトアクセスプロトコル)は、Webサービス要求と応答を送受信するためのW3C規格で定義された標準プロトコルです。標準のHTTPのWebベースのアーキテクチャを使用してREST(のRepresentational State転送)。別のSOAPベースのWebサービスは、RESTfulなWeb APIのための公式の標準はありません。

以下は、10の基本的なスキルのテストAPIです:

理解APIの要件

APIをテストする前に、以下の質問を徹底的APIの要件を理解する必要が答えます。

  • API関数とは何ですか?ビジネスプロセスとは何ですか?シーンとは何でしょうか?

一般的に、APIのアプリケーションでは、リソースを操作するために使用されます。彼らは、多くの場合、読み取り、作成、更新するために使用されています。理解するAPIは、テストデータの準備ができて、入力と出力を使用し、強固な基盤を築きます。このステップはまた、あなたが認証方法を定義することができます。例えば、いくつかのAPIのために、あなたは、データベースの応答に対して確認します。別のAPIによると他のいくつかの、好ましくは認証応答のため。

たとえば、「ユーザーの作成」APIの出力は、検証のためのAPIを入力し、「ユーザーを取得する」となります。入力API「ユーザーの更新ユーザー出力APIをとして使用することができますGET」、等々。

API指定された出力状態

あなたは、テスト用のAPI APIの出力は、最も一般的な応答ステータスコードであることを確認する必要があります。

レスポンスコードを確認馴染み新しいAPIテスターは、APIのテストに合格または失敗を決定するために200に等しいです。これは、間違ってテストではありません。しかし、それはテストプログラムAPIのすべてを反映するものではありません。

一般的な標準では、すべてのAPIレスポンスのステータスコードは、5つのカテゴリーに分かれています。最初の数字は、応答ステータスコードのカテゴリを定義しました。2の後に任意のカテゴリまたは分類におけるロールなし。

最初の5桁の値:

  • 1XX(情報):リクエストを受信して​​処理を続行します
  • 2XX(成功):成功、受信し理解し、要求を受け付け
  • 3XX(リダイレクト):要求を満たすためのさらなる対策を取る必要があります
  • 4XX(クライアントエラー):要求が不正な構文が含まれているか、達成することができません
  • 5xxの(サーバーエラー):サーバーは一見有効な要求を満たすことができません

API実際の応答ステータスコードをビルドするAPIの開発チームによって指定されます。

小さな機能APIに焦点を当て

テストプロジェクトでは、いくつかの簡単なAPIは、アイデンティティトークンAPI、APIおよび他の健康診断を得るためには、そのようなログAPIなどの1つまたは2つの入力、常に存在しています。しかし、APIが必要とされ、他のビジネス入るとみなされ、「ドアのAPIを。」まず、これらのAPIへの注意を払うには、APIサーバ、環境、および認証が正常に動作していることを確認します。

APIは、テストケースで複数のテストを避ける必要があります。エラーが発生した場合は、テストデータ生成されたAPIをデバッグするためにする必要がありますので、それは、非常に痛いです。できるだけ簡単にテストをしてください。あなたがテストプロセスをエンドツーエンドを達成するためのAPIのシリーズを呼び出す必要がある場合にはいくつかのケースでは、これらのタスクは、すべてのAPIで個別のテストの後に経過している必要があります。

API分類

テストプロジェクトは、テストのためのいくつかの、あるいは数百のAPIを有することができます。強く、より良いテスト管理するためには、それらを分類することをお勧めします。それは非常にあなたがテスト計画カバレッジとの統合の高レベルを作成するのに役立ちます、追加の手順を実行する必要があります。

APIは、などのリソースタイプ、パス、など、公開情報の同じカテゴリのいくつかを共有します 同じ組織構造では、あなたのテストを再利用し、統合プロセスに拡張することができますテストします。

自動テストとAPI関数

早くも自動化テストのAPIの使用など。ここではテスト自動化APIのいくつかの重要な利点は次のとおりです。

  • テストデータと実行履歴には、APIの情報を保存することができます。それは、落札後、それは簡単にするために、テストを再実行します。
  • APIテストの安定性と変化が少ないです。APIは、システムのビジネスルールを反映しています。APIへの変更は、明確な要件を必要とするので、テスターは常に変化し、調整の後れを取らないことができます。
  • ウェブUIのテストと比較すると、テストの実行速度がはるかに高速であります
  • API試験はグレーボックステストとみなされ、ユーザ入力データを送信し、検証のためにデータ出力を得ることができます。自動化されたデータ駆動型アプローチ(すなわち、同じテストシナリオでのデータの異なるセットの適用)API缶のヘルプ上昇テストカバレッジ
  • 入力および出力データは、あなただけのテストスクリプトを作成することができ、特定のテンプレートまたはモデルに従ってください。これらのテストスクリプトは、テストプロジェクト全体で再利用することができます
  • APIのテストでは、早期のソフトウェア開発ライフサイクルで行うことができます。アナログ技術と自動化の方法は、実際のAPIの開発と統合する前にAPIを確認することができます。そのため、チーム内での依存を減らすこと。

適切な自動化ツールを選択します

APIのテストを使用して、別のステップの自動化機能は、市場で数百からツールを適切に選択の最も適切なツールやセットを選択することです。APIの自動テストツールを選択するときは、以下の基準を考慮する必要があります。

  • あなたのAUT(テスト対象アプリケーション)を使用しているかどうか/ WebサービスのタイプをツールがサポートするAPIテスト?あなたがRESTfulなサービスをテストAUT選択したツールのサポートにSOAPサービスを使用する場合は、意味がありません。
  • このツールは、あなたのサービスAUT必要な認証方式をサポートしていますか?ここにあなたのAPIの認証方法のいくつかを使用することができます:いいえ認証、ベアラートークン、基本認証、ダイジェスト認証、NTLM認証、OAuthの1.0、OAuth 2.0の、ホーク認証、AWS署名。あなたが許可なしAPIのテストを開始することはできませんので、これは、必要不可欠な作業です。
  • ツールのサポートは、WSDL、闊歩、WADLや他のサービス仕様からAPI / Webサービス・エンドポイントをインポートしますか?これはオプション機能です。あなたはAPIの数百人をテストしたい場合は、それは非常に重要です。
  • ツールサポートするデータ駆動型アプローチ?また、これはオプション機能です。
  • 最後になりましたが、それはAPIのテストに加えて、あなたはまた、そのようなのWebUIまたはデータソースとしてのテストの他のタイプを、実行する必要があるということですか?ソース及びUIデータとテストサービスAPI層が行われます。これらの層のすべてがテストされなければならない正常です。それはあなたのテストオブジェクトとテストスクリプトは、すべての層の間で共有することができるように、理想的な選択肢になりツールをテストし、すべての種類をサポートしています。

適切な認証方法を選択します

応答ステータスコードは、ステータス要求を指示する場合には、レスポンスボディの内容は、与えられた入力にAPIによって返されたコンテンツです。種類やサイズによってAPIレスポンスのコンテンツデータが異なります。応答は、プレーンテキスト、JSONデータ構造、XML文書ことができます。彼らは、それがまた百ページJSON / XMLファイルを指定できます(でも空に)簡単ないくつかの単語の文字列を指定できます。このように、絶対必要を選択し、適切なAPIの認証方法を与えられました。

一般的に、レスポンスボディの内容を確認するためにいくつかの基本的なAPIの方法があります。

  • 予想される情報と比較して応答の内容の全体は、この方法は、静的コンテンツとの単純な反応に適しています。動的な日付と時刻の情報は、アサーションでトラブルを引き起こすことになる、IDを増加させました。
  • 応答、応答JSONまたはXML形式を比較し、各属性の値は、特定のキー値や属性を得ることは容易です。むしろ単一の値の内容全体よりも、または動的コンテンツを検証する場合したがって、この方法は有用です。
  • 、単一の属性値と複雑な動的データに応答して特定のパターンを有するデータを検証するため、この方法を正規表現に一致比較し、検証。

それぞれの検証方法は、その長所と短所があり、そして何のオプション「ワンサイズですべてに適合しない」があり、あなたのテストプロジェクトに最適なソリューションを選択する必要があります。

正と負のテストを作成します。

APIのテストでは、APIの正常な動作を保証するために、テストを楽しみにして逆のテストが必要です。APIテストテストは、テスト入力および出力データの二種類によって灰色のボックス、したがってドライブとして見られているからです。

フォワードテスト

  • APIは、必要に応じて、予想される出力は、指定された入力リターンとして受信されたことを確認します。
  • 指定は、それがエラーコードまたは2XXを返すかどうか、応答ステータスコードを返すために必要なことを確認します。
  • 指定最低限必要な入力フィールドと最大フィールド。

リバーステスト

  • 期待される出力が存在しない場合、APIは適切な応答を返すかどうかを検証します。
  • 入力検証テスト異常を行います。
  • APIの動作を確認するためにさまざまな認証レベルを使用します。

フィールドテストプロセス

APIのテスト実行スケジュールは、テスト中に、毎日をお勧めします。APIのテスト高速実行、安定して十分に小さいので、現在のテストプロセスに多くのテストを追加するために、リスクを最小限にすることは容易であるように。これは、以下の機能を備えた自動化されたAPIテストツールによって達成することができます。

  • テスト計画への組み込みのtestコマンドを使用します
  • ツールとテスト管理と欠陥追跡ツールとの統合
  • 主要なCIツールの様々な継続的インテグレーション
  • ビジュアルログレポートの生成

テストが完了したら、毎日がこれらのテストの結果を得ることができます。それはテストが発生した失敗した場合は、出力を調べて、適切な解決策を見つけるために、すぐに問題を確認することができます。

API自動テストを過小評価しないでください。

APIのテストプロセスは、わずか3つの主な手順は非常に簡単です:

  • 必要な入力データとの要求を送信
  • 出力を有する応答データをフェッチ
  • 返すために必要な応答を確認してください

APIテストの最も重要な部分は、送信要求や応答を受信でもありません。彼らは、テストデータ管理と検証されています。一般的に、最初のテストAPI(などのログイン、資源のクエリ数、など)のいくつかは非常に簡単です。そのため、APIのテスト作業を簡単に過小評価することができます。従来の方法と手段があなたの目標を達成することができない場合は、使用プログラミング・スキルが大幅にAPIのテストの境界を拡張することができます。

  • 厳粛に宣言:最初の公開番号「FunTester」に登場した記事、(テンセントクラウドを除く)第三者再生を禁止し、公開します。

技術関連記事

非技術的な選択された記事

おすすめ

転載: juejin.im/post/5e17d787f265da3e12181945