通常、私たちのプロジェクトでは、インターフェースのテスト要件は、一般に、さまざまなリクエストデータを構築し、そのリクエストをインターフェースに送信することです。インターフェースの戻り値を取得した後、フィールドが抽出および検証され、最終的に結果は簡単に参照できるように Excel テーブルに保存されます。インターフェイスは一般的に http または https リクエストであり、送信される構造は一般的に json 本文または json といくつかの添付ファイルを組み合わせたものです。リクエストの戻り結果はすべて json 形式です。テスト ケースは Excel またはデータベースに保存でき、結果はデータベースに保存することも、直接存在することもできます。Excel では、以下に具体的に要件を分解し、実装プロセスを段階的に紹介します。
各リクエストのコンテンツを構築し、リクエストをインターフェースに自動的に送信することは、自動テスト スクリプトの構築の中核です。実装には主に Python を使用します。このステップのリクエスト ライブラリについては、以下で詳しく説明します。
リクエストを送信する前に、リクエストの本文を明確にする必要があります。本文は json です。具体的な内容は次のとおりです。
これを text.json ファイルとしてテンプレートとして保存し、後でリクエスト本文を作成する準備として直接読み取ることができます。このステップは次のように処理できます。yaml パッケージを使用して、json を辞書に変換することも、Python に付属の json を使用することもでき、効果は同じです。
リクエスト本文テンプレートを取得した後、辞書型データである変数 request_body を取得します。これをパラメータ化して、必要なものを構築できます。たとえば、リクエスト本文です。 , 各リクエストのリクエスト ID、ユーザー名、テキスト コンテンツを変更したい場合は、これを行うことができます。左側は変更する必要があるフィールドで、右側は必要な変数です。
送信するデータを構築した後、リクエストの送信を準備できます。リクエストを送信する前に、いくつかのパラメータを設定する必要があります。リクエスト インターフェイスのカスタマイズとリクエスト ヘッダーのカスタマイズについて、ここでは次のような簡単な例を示します。
# リクエスト パラメーターとリクエスト ヘッダーをカスタマイズした後、次の URL のようなリクエスト:
以前に構築した本文を追加し、リクエスト ライブラリの post メソッドを使用してリクエストを送信します。メソッドの data パラメータここでは json を受け取るので、送信するときに以前の辞書変数を変換する必要がありました。ここでは Python に付属の json ライブラリを使用し、dumps メソッドを使用して辞書を json に変換します。
#この時点で、基本的な http post リクエストが送信されました。r という名前の Response オブジェクトがあることに注目してください。このオブジェクトから必要な情報はすべて取得できます。 2. より複雑なリクエスト先ほど最も単純な http post リクエストを紹介しましたが、これに基づいて、ファイルの取得や https リクエストなど、より複雑なリクエストが必要になる場合があります。は、その実装方法の簡単な説明です。 たとえば、pcm 形式のオーディオ ファイルをインターフェイスに送信したいとします。インターフェイスは https です。 https リクエストの送信には SSL 認証が必要であることに注意してください。メソッドで verify パラメータを使用します。このパラメータのデフォルト値は True です。通常、検証が必要ない場合は、これを False に設定する必要があります。もう 1 つ注意すべき点は、要求プロセスがタイムアウトしてプログラムが応答しなくなることを防ぐためにタイムアウトを設定していることです。リクエストを送信するステップでは、r という名前の Response オブジェクトがあります。このオブジェクトから必要な情報はすべて取得できます。
コンテンツを取得するにはいくつかの方法があり、必要に応じて使用できます:
取得されるテキストは通常、json 形式です:
json を変換し、 json.loads メソッドを使用して json オブジェクトを Python 辞書に変換すると、必要なフィールドの一部を簡単に取得できます。このステップは次のとおりです。とても簡単なので詳しくは紹介しません。
まず、私たちのケースを見てみましょう。私たちのケースは次のように Excel を使用して書かれています:
Excel を読んでケースを取得するにはどうすればよいですか? Python の pandas ライブラリを使用しました。このライブラリは非常に強力で、データを処理するためのメソッドが多数あります。ここでは Excel を読み取るメソッドのみを使用します。具体的なコードは次のとおりです:
このようにして、テーブル データ リストが作成され、各リストは辞書形式になっています (この例では、具体的な形式は次のとおりです):
これの目的は、ヘッダーと各ケースを組み合わせて辞書を形成できるため、より柔軟なケース操作とデータ比較が可能になります。
ケース リストと、リクエストを送信して結果を取得する前の手順を使用して、バッチ インターフェイス テストを実行できます。ここでは、for ループを使用してバッチで実行できます。
結果データである case 形式に従って、返された結果を毎回辞書に結合します。各結果辞書をリストに保存して、結果辞書リスト全体を取得します。これに case_result_list という名前を付けます。この時点で、再度 pandas ライブラリを使用してこのリストをデータフレーム形式に変換します:
その後、データフレームを Excel ファイルとして保存します:
これまでに、ケースの取得から結果取得リクエストの送信、結果の保存までのプロセス全体が完了しました。
結果データの特定上記の操作を行うと、リクエストをバッチで送信して結果を取得するプロセスが完了しました。結果のセルに対してマークなどの処理を行う必要がある場合は、それらを赤で太字にするなどの操作を行うと、テスト結果のエラー情報がよりわかりやすくなります。ここでは、Python の openpyxl ライブラリを使用します。このライブラリは Excel テーブルの読み書きもでき、いくつかの数式やスタイルを挿入できます。ここで使用するのはスタイル操作です。セル内のデータに従って結果を赤と太字で強調表示します:取得された最終テスト結果は、次のようになります。 openpyxl を使用すると、結果に行を追加して、ケース数、エラー数、エラー率、精度率などのテスト結果の統計情報を追加することもできます。
上記は、自動リクエストの実装、結果の取得、データ比較分析、結果の Excel へのエクスポートなどを行うための完全なインターフェイス自動テスト スクリプトです。 . 機能、各ステップは比較的単純で、ニーズを満たす自動テスト スクリプトを迅速に構築し、サーバー インターフェイスを迅速に検証できます。
使用したrequestsライブラリとpandasライブラリはPythonでよく使われるライブラリであり、機能が非常に強力なので、後ほど公式ドキュメントを参照するとさらに深く理解できます。
以上がPython を使用してインターフェイスの自動テスト スクリプトを迅速に構築する実践的な概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。