JavaScriptコードを使用すると、複雑なAPIのテストとトラブルシューティングシナリオに対処できるようになります。
ユースケース
APIテストでのスクリプトの使用は、以下のような状況で役に立ちます。
- 複数のコード行を必要とする特別な方法でレスポンスからデータを抽出する
- サードパーティAPIから認証トークンを取得する、認証トークンの更新が必要かどうかをチェックするなど、特定の認証シナリオに対処する
- テスト内の各リクエストの後に特定のクリーンアップコードを実行する
- XMLベースのレスポンスボディからアサーションまたは変数を作成する
- デバッグのためにコンソールログを実行する
JavaScriptバージョンのサポート
APIテストエディターは、ECMAScript 8をサポートしています。
Postman JavaScriptオブジェクト
mablとPostmanとのインテグレーションにより、ユーザーはPostmanでサポートされるJavaScriptのオブジェクトや関数を使用して、カスタムロジックやレスポンスの検証を行うことができます。
ベストプラクティスとして、テストの作成には可能な限りAPIテストエディターを使用し、Postmanメソッドは複雑なシナリオを処理する場合にのみ使用することをお勧めします。次の2つの理由から、テストでのスクリプトはなるべく使用を控え、必要な場合にのみ使用することをお勧めします。
- ワークスペースのすべてのメンバーがテストを容易に理解し、保守できるようにするため。
- 結果をUIから簡単に表示できるようにするため。
実際の例については、APIスクリプトの例ガイドを参照してください。
テストのサイズ制限
APIテストのサイズは、1MBを超えることはできません。大きなJavaScript事前リクエストスクリプトは、慎重に使用することをお勧めします。
利用可能なJavaScriptライブラリ
mablとPostmanの統合により、さまざまなJavaScriptライブラリやNode.jsモジュールを使用することができます。
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));
詳細はこちら
- mabl APIテストにスクリプトを追加する方法を学ぶには、こちらをクリックしてください。
- APIテストでJavaScriptを使用する具体的な例については、APIスクリプトの例を参照してください。