APIテストでのJavaScriptの使用

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

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

Postman JavaScriptオブジェクト

mablとPostmanとのインテグレーションにより、ユーザーはPostmanでサポートされるJavaScriptのオブジェクトや関数を使用して、カスタムロジックやレスポンスの検証を行うことができます。

ベストプラクティスとして、テストの作成には可能な限りAPIテストエディターを使用し、Postmanメソッドは複雑なシナリオを処理する場合にのみ使用することをお勧めします。次の2つの理由から、テストでのスクリプトはなるべく使用を控え、必要な場合にのみ使用することをお勧めします。

  1. ワークスペースのすべてのメンバーがテストを容易に理解し、保守できるようにするため。
  2. 結果をUIから簡単に表示できるようにするため。
    実際の例については、APIスクリプトの例ガイドを参照してください。

🚧

テストのサイズ制限

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

利用可能な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));

詳細はこちら