API開発中に、その品質を保証するために、APIテストツールを導入してAPIのテストを行う必要があります。本文では、比較的に有名なAPIテストツールのPostmanとInsomniaを徹底的に比較して、どちらにするかという判断を下すことに役立ちます。
PostmanとInsomniaについて
PostmanとInsomniaとも業界で非常に有名なAPIテストツールなので、本文では、まずこの2つのツールを簡単に紹介します。
Postmanとは
Postmanは、包括的なユーザーフレンドリーなツールで、APIリクエストの作成、送信、テストができます。パラメーターやヘッダーの編集、テストスクリプトの作成、履歴やテスト結果の管理などの機能があります。
Insominaとは
Insomniaは、シンプルなデザインと直感的なインターフェースを持つAPIクライアントです。APIリクエストの作成、送信、テストが容易で、グループやフォルダの整理、テスト機能、データのエクスポート・インポートなどがサポートされています。
この2つのツールのどちらかも非常に人気で使いやすく、開発者やテストエンジニアにとって便利なAPIテストツールになると思います。それでは、APIテストツールを選択する際、どちらかにするかに迷っていますね。そこで、本文では、両者の機能の完全比較を参考して、自分の需要に従って、適切なものを選択しましょう。
PostmanとInsomniaの概要
PostmanとInsomniaとも業界トップのAPIテストツールとして知られています。基本的なテスト機能はもちろん、様々な高度なテスト機能も利用可能です。
💻 互換OS | PostmanとInsomniaとも、様々なOSに対応できます。現在主流となっているWindows、macOS、Linuxにも対応できますし、両者ともCLIバージョンも提供しています。 |
---|---|
👍 セキュリティ | 業界をリードするAPIテストツールとして、PostmanとInsomniaはもちろん故意にユーザーのデータを侵害することはありません。ただし、両者ともネットワークベースで動作するので、クラウドにプロジェクトデータをアップロードする必要があります。 |
🇯🇵日本語対応 | PostmanとInsominaとも現段階日本語に対応できておりません。日本語対応のAPIテストツールを使用するには、Apidogがおすすめ! |
⛔ 制限 | 両者のコラボレーション機能が限定的であり、複数のユーザーでの作業が難しくなります。 |
以上のテーブルから、PostmanとInsomniaの概要を知った上、次の部分では、それぞれのメリットとデメリットを紹介します。
PostmanとInsomniaそれぞれのメリット
Postmanのメリット:
- 幅広い機能: Postmanは非常に多機能であり、APIテストだけでなく、APIドキュメントの作成や共有、コレクションの管理、環境変数の使用など、さまざまな作業をサポートしています。
- ユーザーフレンドリー: 直感的なインターフェースと使いやすい操作が特徴です。初心者でも簡単に利用できます。
- コラボレーション機能: Postmanは複数のユーザーが協力してAPI開発やテストを行うためのコラボレーション機能を提供しています。
Insomniaのメリット:
- シンプルで使いやすい: Insomniaはシンプルで直感的なインターフェースを持ち、初心者にとっても取り組みやすいです。
- クロスプラットフォーム対応: InsomniaはWindows、Mac、Linuxなどのさまざまなプラットフォームで利用できます。
- レスポンスのプレビュー: レスポンスをプレビューしながらAPIのテストを実行できるため、開発者が迅速に結果を確認できます。
PostmanとInsomniaそれぞれのデメリット
Postmanのデメリット
- インターフェースの複雑さ: 機能の多さゆえに、初めて使う人にとっては最初は少し複雑に感じるかもしれません。
- メモリ使用量: Postmanはリソースを多く消費する傾向があります。特に大規模なテストや複雑なスクリプトの実行時にはパフォーマンスの問題が発生する可能性があります。
Insomniaのデメリット
- 機能の制限: Postmanに比べて機能がやや制限されているため、より高度なテストや自動化が必要な場合には限定的かもしれません。
- コラボレーションの制約: Insomniaはコラボレーション機能が限定的であり、複数のユーザーでの協力作業が難しい場合があります。
PostmanとInsomniaの機能比較一覧表
次は、一番詳しいPostmanとInsomniaの機能比較をまとめて皆さんに紹介します。この部分では、両者の様々な機能も比較するので、気になるポイントがあれば、何でも次のテーブルで解説を見つけることができると思います。
特徴 | Insomnia | Postman | メモ |
---|---|---|---|
HTTPリクエストの作成と送信 | ○ | ○ | |
Authorizationヘッダーのサポート | ○ | ○ | Basic、Digest、OAuth、Bearer Token、HAWK、AWSなど、さまざまな認証方式に対応 |
リクエストごとのレスポンス履歴の管理 | ○ | - | Postmanはリクエストの送信履歴を保持していますが、レスポンスはリクエストごとに整理されず、単一の長いリストに混在しているので、あまり便利ではありません。 |
ウェブブラウザのようにクッキーを管理 | ○ | ○ | "Set-Cookie"レスポンスヘッダーから取得したクッキーを保存し、ドメインごとに後続のリクエストで送信します。クッキーを手動で管理することもできます。 |
クライアント認証のための証明書の使用 | ○ | ○ | |
コードスニペットの生成 | ○ | ○ | curl、NodeJS、C#、Python、Ruby、生のHTTPプロトコルなど、さまざまな言語でHTTPリクエストのコードスニペットを生成できます。 |
レスポンスを表示するためのHTTPトラフィックの表示 | ○ | 0 | どちらのツールもレスポンスを表示および解析しますが、実際に送信されるリクエストを表示するのは難しいです。InsomniaはUIを介してHTTPトラフィックログへのアクセスを提供します。Postmanでは、リクエストを作成する際にPostman DevTools Consoleを開いておく必要があります。 |
UI | △ | ○ | Insomniaはシンプルで可愛らしいシンプルなUIを持っています。PostmanのUIは新参者にはやや過剰で複雑です(おそらく多くの機能のため)。 |
環境と変数の管理 | ○ | ○ | 両方のツールには変数の概念があり、環境は変数のコンテナとして機能し、より具体的な環境(例:dev/stage/prodでのグローバル環境の上書き)によって上書きできます。 |
リクエストの整理 | ○ | ○ | 両方のツールには異なるプロジェクトを分離するためのワークスペースの概念があります。Postmanはリクエストをコレクションとフォルダで整理しますが、Insomniaはフォルダのみを使用します。 |
リクエストのチェイニング | ○ | △△ | 両方のツールは、1つのリクエストのレスポンスデータを取得して次のリクエストにフィードすることができます。ただし、Postmanの方が強力です。コレクション全体としてすべてのリクエストを実行できます。任意のロジックを持つJavaScriptの「before」および「after」リクエストフックを作成できます。お互いにデータを共有するいくつかのリクエストで構成されるシンプルな連続ワークフローを構築できます。基本的な条件付きロジックも使用できます。Insomniaではリクエストを手動で1つずつ実行する必要があり、カスタムロジックを挿入する場所はありません。 |
APIテスト:レスポンスに対してテスト/アサーションを実行 | - | ○ | Postmanでは、レスポンスに対してテストやアサーションを記述することができます。コレクションはAPIの実行可能な記述として機能します。コレクション全体のリクエストをまとめて実行し、テストの実行結果を表示できます。コレクションを実行するためのCLIインターフェース(newman)も提供されており、APIテストを自動化してCI/CDワークフローに統合することができます。 |
APIドキュメント | - | PREMIUM |
Postmanはリクエストの説明(Markdown)、例、コードスニペット(さまざまな言語)を含むドキュメントを生成できます。各リクエストには複数の例(リクエスト-レスポンスペイロードのペア)が含まれる場合があります。例はAPIのプロトコルを詳細に調整するために使用でき、さまざまな条件(200、4xxの応答)の下でエンドポイントの動作を示すために使用できます。 |
モックサーバーエンドポイント | - | PREMIUM |
Postmanはリクエストの例に基づいてサーバーエンドポイントのモックを作成できます。設計フェーズが終了した後に便利で、フロントエンドとバックエンドのチームが並行して作業できます。 |
データの同期 | PREMIUM |
○ | Postmanは無料でデータの同期を行いますが、Insomniaでは無料のティアでは提供されていません。 |
チームでの共同作業 | PREMIUM |
PREMIUM |
|
組み込みのHTTPスニファー | - | ○ | Postmanには組み込みのHTTPプロキシスニファーがありますが、非常に限定的です。応答なしでリクエストのみをキャプチャします。実際には検査目的の完全なスニファーではありません。ただし、キャプチャした実世界のリクエストからプロジェクトを作成することができます。HTTPトラフィックのみをサポートします。HTTPSトラフィックの場合、自己署名証明書が使用され、ブラウザで警告が表示されます。ウェブサイトがHTTPS+HSTSを持っている場合、セキュリティ警告をバイパスすることはできません。 |
インポートとエクスポート | ○ | ○ | PostmanはRAML、WADL、Swagger、curlをサポートしています。InsomniaはPostman v2、HAR、Curlをサポートしています。 |
その他 | - | - | InsomniaはGraphQLリクエストを作成できます。PostmanはSOAPリクエストを作成できます。 |
参照元:https://gist.github.com/samoshkin/c0a2c0dd85b1d5b02d893a0f6ac0e93c
日本語にも対応、より強力なAPIテストツール:Apidog
PostmanとInsomniaも非常に優秀なAPIツールであること、誰でもそれを否定することができませんが、一部の制限も確かに存在しています。そこで、ApidogというAPIライフサイクル管理ツールを皆さんに紹介します。このツールは、APIのリクエストを送信して、レポンスを取得したり、検証したりするAPIの単体テストはもちろん、テストの自動化も簡単に行うことができます。
また、APIのテスト機能以外、APIの設計、ドキュメンテーション、モックサーバー作成、CI/CD統合など、API関連の作業をすべて行える包括的なAPIプラットフォームでもあります。Apidogには、PostmanとInsomniaの機能だけではなく、Swagger、Stoplight、Jmeterの機能も全てあります。Apidogを使ってテストを行う場合、Postmanよりもシンプルで便利にテストを実行できます。
Apidogの機能の例として、次は、Apidogという優れたAPI管理ツールを使って、APIテストの自動化を実現する詳細ガイドを紹介します。
ApidogでAPIのシナリオテストを行う
ステップ⒈ プロジェクトを選択して、左側メニューから「自動テスト」を選択して、「+」ボタンをクリックして、「新規テストシナリオ」を選択すると、プロジェクトの優先度を選択することも可能です。
ステップ⒉ここで新規テストシナリオのテストステップを追加して、「確認」ボタンを押します。
ご案内:テストのステップを手動で追加することもできますし、APIのテストケースから、APIからインポートすることもできます。また、必要に応じて、グループ、繰り返し、条件分岐、待ち時間などの項目を設定することも可能です。
ステップ⒋ 右側のメニューでテストの設定項目を自分のニーズに応じてカスタマイズすることができます。
往復回数:設定したテストのステップを繰り返し回数を設定します。
スレッド数:同時に実行状態に置くことができるプログラム数を設定します。
ステップ⒌ 設定が終わると、「実行」ボタンをクリックして、テストを開始します。テストプロセスが終わると、詳細のテストレポートが生成され、各リクエストの詳細情報も確認できます。