Postmanの導入効果をレビューでご紹介(uribou-株式会社スマートバンク)
株式会社スマートバンク / uribou
バックエンドエンジニア / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
利用プラン | ツールの利用規模 | ツールの利用開始時期 |
---|---|---|
Free プラン | 10名以下 | 2020年10月 |
利用プラン | Free プラン |
---|---|
ツールの利用規模 | 10名以下 |
ツールの利用開始時期 | 2020年10月 |
アーキテクチャ
アーキテクチャの意図・工夫
- Postman
- Postman で作ったテストケースの collections を Newman で実行
- API のレスポンス結果を Postman のコールバック機能を使って local に保存
- Ruby
- Postman で保存したレスポンス結果を読み取って非同期処理で利用しテストを実行
- make コマンド
- 上の2つのテストツールを make コマンド化して実行
導入の背景・解決したかった問題
導入背景
- 初期開発において、複数のシステム(マイクロサービス)から成り立つ決済の API に対する E2E テスト環境を構築する必要がありました
- この API の結果を利用した非同期処理のテストも同時に行う必要がありました
- シード期のスタートアップのため、できるだけ構築コストを下げてテスト環境を構築する必要がありました
Postman 導入前は、integration テストまでは各サービスで自動テストを作成していましたが、E2E テストは作成していませんでした。そのため、テスト対象は1つの API であるものの、決済の様々なパターンに対応した多数のテストを手動で実施する必要があり、工数がかかっていました。
他社のブログなどで、Postman を E2E テストで利用している事例を把握していたため検討を始めました。
比較検討したサービス
scenarigo
選定理由
- GUI で簡単にテストケースの作成や実行ができる
- CUI での実行もサポートされており CI への組み込みも容易
- テストケース実行前・後にスクリプトを自由に挿入できるなど、拡張性が高い
導入時の苦労・悩み
導入当時はエンジニアが3人程度だったため、導入にあたって特別な推進作業は必要ありませんでした。
一方で、コスト観点から CI 環境への組み込みはしておらず、ローカル環境で各開発者がテストツールを実行する必要があったため、どのような時にテストを実行する必要があるか開発者が判断する必要がありました。
この判断を確実に行うため、決済周りのテストツールが存在することを認知してもらい、決済システムの定期的な勉強会やオンボーディング資料に明記しました。また、決済周りのコードレビューでテストツールを実行するようコメントするようにしたことで、テストツールが存在することが周知され、自分が関係していない PJ でも自然と利用されるようになりました。
導入に向けた社内への説明
上長・チームへの説明
必要なサービスだったため特にしていません
活用方法
よく使う機能
個人で、決済周りを改修した際にテストを実行している。
- Newman を用いたテストケースの一括実行
- Postman による各ケースの個別実行
ツールの良い点
- GUI(Postman)と CUI(Newman)の両方が用意されており、GUI でテストケースの作成や一部テストの手動実行を行いつつ、CUI で自動テストを実行することができる
- 変数やテスト実行前・後にスクリプトを挿入でき、テストの実行結果をローカルに保存するなどの拡張が容易に行える
ツールの課題点
- 変数やテスト実行前・後のスクリプトは、自由度が高いが故に肥大化すると、何の処理をどこで行っているか把握しずらくなりやすい
- スクリプトの共通化は標準ではサポートされていないため、各テストケースでの処理の共通化がしにくい。scenarigo のようなコードベースで記述するツールの方が、共通化等は行いやすい
- collections や folder をどのような単位で切るかを整理して、ある変数は特定の folder でのみ適応するなど、スコープの範囲が適切になるよう設計するとよい
ツールを検討されている方へ
API の E2E テストのカバレッジを高く保つのは、コスト観点から非常に大変です。私達がサービスのコアな機能である決済部分でのみ E2E テストを用意したように、重要度の高い部分に絞りテストを用意するので充分な場合があるかもしれません。 また、E2E テストの仕組みを構築することと、CI 環境を構築することはイコールではありません。まずは、実行環境はローカルでもよいので E2E テストを自動で行う仕組みを導入するところからスタートするなど、初期の導入コストを低くすると始めやすくなるかもしれません。
株式会社スマートバンク / uribou
バックエンドエンジニア / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
新卒でカカクコム(食べログ)に入社しサーバーサイド開発を担当。2019年4月のサービス立ち上げ時に現職のスマートバンクにジョイン。カード決済基盤や IC カード発行基盤の開発、アプリのバックエンド開発等、サーバサイドの開発全般を担当している。
よく見られているレビュー
株式会社スマートバンク / uribou
バックエンドエンジニア / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
新卒でカカクコム(食べログ)に入社しサー...
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法