APIテストでのJavaScriptの使用

JavaScriptコードを使用すると、複雑なAPIのテストとトラブルシューティングシナリオに対処できるようになります。APIテストでのスクリプトの使用は、以下のような状況で役に立ちます。

  • 複数のコード行を必要とする特別な方法で応答からデータを抽出する
  • サードパーティAPIから認証トークンを取得する、認証トークンの更新が必要かどうかをチェックするなど、特定の認証シナリオに対処する
  • テスト内の各リクエストの後に特定のクリーンアップコードを実行する
  • XMLベースのレスポンスボディからアサーションまたは変数を作成する
  • デバッグのためにコンソールログを実行する

このガイドは、事前リクエストスクリプト、テストスクリプト、フローレベルスクリプトをAPIテストに追加する方法を説明します。

🚧

テストのサイズ制限

APIテストのサイズは、1MBを超えることはできません。大きなJavaScript事前リクエストスクリプトは、慎重に使用することをお勧めします。

事前リクエストスクリプト:

事前リクエストスクリプトは、リクエストが行われる前にコードを実行します。スクリプトを追加するには、APIテストエディターを開いて、次の手順を実行します。

  • 左側のパネルで編集するステップをクリックします。
  • [Request details] セクションで、[PRE-REQUEST] タブを選択します。
  • スクリプトコードを必要に応じて編集します。
15081508

テストスクリプト

テストスクリプトは、リクエストが行われた後にコードを実行します。テストスクリプトは、次の手順で [Validation and variables assignment] セクションに追加できます。

  • APIテストエディターの左側のパネルで、編集するステップをクリックします。
  • [Validation and variable assignment] セクションを開きます。
  • [Test] タブを選択します。
  • 必要に応じてテストスクリプトを編集します。

個別のステップの事前リクエストスクリプトとテストスクリプトは、テストの詳細ページで表示できます。

フローレベルスクリプト

フローレベルスクリプトは、APIテストのすべてのリクエストに適用されます。フローレベルスクリプトは、事前リクエストスクリプトと事後リクエストスクリプトの両方のオプションが含まれます。
フローレベルスクリプトを追加するには、フロータイトルカードの鉛筆アイコンをクリックして、フロープロパティモーダルを開きます。

24002400

モーダルで、[PRE-REQUEST] タブまたは [POST-REQUEST] タブを選択し、必要に応じてスクリプトコードを編集します。スクリプトに問題がなければ、Xアイコンを使ってモーダルを閉じます。

19381938

利用可能なJavaScriptライブラリ

mablでAPIテストを行う際には、複数のJavaScriptライブラリおよびNode.jsモジュールが利用できます。これらのライブラリが利用できるのはmablとPostmanとのインテグレーションによるもので、ほとんどのライブラリは、Postmanを使用する場合と同じように使用できます。
JavaScriptライブラリ

  • ajv
  • atob
  • btoa
  • chai
  • cheerio
  • crypto-js
  • csv-parse/lib/sync
  • lodash
  • moment
  • postman-collection
  • tv4
  • uuid
  • xml2js
    Node.jsモジュール
  • path
  • assert
  • buffer
  • util
  • url
  • punycode
  • querystring
  • string-decoder
  • stream
  • timers
  • events

require() メソッドを使用すると、これらのライブラリのいずれかを呼び出すことができます。以下に示すのは、momentライブラリを使用して今日から7日先の将来の日付を生成する例です。

let moment = require('moment');
//get a date that is N number of days from today
let date =  moment.utc().add(7, 'days').toJSON();
//specify desired date and time format
let dateFormat = "MM-DD-YYYY"
//format the date and assign it to a variable to be used in other API requests and tests
pm.environment.set("futureDate", moment(date).format(dateFormat));

詳細はこちら

APIテストでJavaScriptを使用する具体的な例については、APIスクリプトの例を参照してください。


Did this page help you?