Postman
Postman | The Collaboration Platform for API Development
そもそもPostmanとは?
APIの動作を確認するツール、、だけに留まらず今や認証、テスト、ドキュメント作成、バージョン管理など幅広く活用できる便利なツール&サービスです。
Postmanでテストする
Test examples | Postman Learning Center
Postmanではレスポンスの値をテストする事ができます。
Postmanを開いて Params
, Authorization
... などがあるタブの左端に Tests
というタブがあるので
そちらにテストを書く事ができます。
試しに簡単なテストを書いてみる
試しに、GithubAPIを使ってリポジトリのブランチ一覧を取得してみます。
GitHub API v3 | GitHub Developer Guide
今回はrails/rails
のブランチ一覧を取得するAPIをPostmanでリクエストしてみます。
https://api.github.com/repos/rails/rails/branches
↑をPostmanに設定し「Send」を押すとズラズラっとブランチが取得できるかと思います
レスポンスとしては以下の様なフォーマットで返って来ます。(※ 2019年9月16日時点)
[
{
"name": "1-2-stable",
"commit": {
"sha": "5b3f7563ae1b4a7160fda7fe34240d40c5777dcd",
"url": "https://api.github.com/repos/rails/rails/commits/5b3f7563ae1b4a7160fda7fe34240d40c5777dcd"
},
"protected": true
},
{
"name": "2-0-stable",
"commit": {
"sha": "81d828a14c82b882e31612431a56f830bdc1076f",
"url": "https://api.github.com/repos/rails/rails/commits/81d828a14c82b882e31612431a56f830bdc1076f"
},
"protected": true
},
...
]
今回はテストとして
・ ステータス200でレスポンスが返ってくる事
・ ↑のjson schemaで返ってくる事
のテストを書いてみます。
ステータス200でレスポンスが返ってくる事
こちらは簡単で以下の様に記述します。
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
↑を「Tests」タブ内に書いて、「Send」を押すと下の「Test Results」に
テスト結果が表示されます。
json schemaのチェック
Postmanではjosn schemaのチェックに「tv4」と「ajv」が使用できます。
今回は、「tv4」を使ってチェックを行いたいと思います。
let schema = {
"title": "branches",
"type": "array",
"properties": {
"name": {
"type": "string"
},
"commit": {
"type": "object",
"properties": {
"sha": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
"protected": {
"type": "boolean"
}
}
};
pm.test("Body matches", function () {
var jsonData = pm.response.json();
pm.expect(tv4.validate(jsonData, scheme)).to.be.true;
});
↑やっている事はレスポンスのjson schemaを事前に定義して let schema
実際のレスポンスと合っているかチェックしています。
※ 定義に関しての詳細はこちらを参照
「Tests」に追記し、「Send」を実行しテスト結果がグリーンであれば成功です