皆さん、こんにちは!
普段はスタートアップの開発チームでAPIの自動テストやCI/CD周りをいじっているエンジニアです。
最近「Postmanのアサーションを書いてる時間がしんどいな…」とか「AIでここもっと楽できないの?」と感じて調べまくった結果をまとめてみました。
同じようにAPIテストを効率化したい人にとって少しでも参考になればうれしいです!
導入:なぜAPIアサーションが必要なのか?
例えば、私たちがECサイトのユーザーログインAPIをテストしているとします。このAPIを呼び出した後、以下のようなレスポンスが返ってきました。
{
"status": "success",
"code": 1000,
"data": {
"user_id": "U12345",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expire_time": "2025-06-01T12:00:00Z"
},
"message": "ログイン成功"
}
このとき、私たちは以下の点を確認する必要があります。
- HTTPステータスコードが200か(HTTPリクエストが成功したことを意味します)。
- ビジネスコードが1000か(成功したことを意味します)。
- レスポンスタイムが500ms以内か(パフォーマンス保証のため)。
- レスポンスボディに必要な
user_id
とtoken
情報が含まれているか(機能の正しさを確認するため)。 -
Content-Type
がapplication/json
か(データ形式の正しさを確認するため)。
これらの検証は、アサーション(Assertion)を使って実現します。
「なんとなく動いてる」だけではなく、「ちゃんと期待どおり動いているか」を自動で担保するのがアサーションの肝なんですね。
Postmanアサーション実践:スクリプトによる検証方法
Postmanでは、アサーションは[Scripts]-[Post - response]
スクリプトモジュールで、JavaScriptコードを記述して実装します。
主要なアサーションタイプとスクリプト実装
1. HTTPステータスコードの検証
pm.test("ステータスコードが200か", () => {
pm.response.to.have.status(200);
});
2. ビジネスコードの検証
pm.test("ビジネスコードが1000か", () => {
var jsonData = pm.response.json();
pm.expect(jsonData.errstr).to.eql(1000);
});
3. レスポンスタイムの検証
pm.test("レスポンスタイムが500ms以内か", () => {
pm.expect(pm.response.responseTime).to.be.below(500);
});
4. レスポンスボディ構造の検証
pm.test("ユーザーIDとトークンが含まれているか", () => {
const responseJson = pm.response.json();
pm.expect(responseJson.data).to.have.all.keys("user_id", "token");
});
5. レスポンスヘッダーの検証
pm.test("Content-Typeがapplication/jsonか", () => {
pm.response.to.have.header("Content-Type", "application/json");
});
実行と結果の確認
テストを実行すると、Postman下部の"Test Results"
パネルでアサーションの合否を確認できます。
EchoAPIアサーションの進化:AIとビジュアル化の二重突破
Postmanのスクリプトアサーションは強力ですが、プログラミング知識が必須です。
ここを突破するために出てきたのが EchoAPI。AI生成とビジュアル設定、二つの仕組みで「アサーションめんどくさい問題」を解決してくれます。
AIによるアサーション自動生成:ゼロコードで高速検証
ECサイトのログインAPIを例にすると、レスポンス結果の横にある「AI生成アサーション」ボタンをクリックするだけで、自動的にアサーションを生成してくれます。
しかも「トークンの非空チェックを追加して」みたいに追記指示を出すと、追加でスクリプトを再生成してくれるのも便利。
ビジュアルアサーション設定:インタラクティブ操作
さらにEchoAPIでは、画面上でクリックするだけで検証ルールを設定できます。
(個人的に「コード書くほどじゃないけど確認したい」ってときに超助かります)
例:
- 「後処理」→「アサーションの追加」
- タイプ選択(ステータスコード / レスポンスタイム / レスポンスボディ / ヘッダー)
- 検証フィールドをクリックで指定
ステータスコードが200か
ビジネスコードが1000か
レスポンスタイム500ms以内
必要なユーザーIDとトークンがあるか
Content-TypeがJSONか
EchoAPIアサーションの実行と結果分析
テスト実行後はわかりやすいUIで結果を確認できます。
- 緑のチェックマーク:成功
- 赤のバツマーク:失敗(エラー詳細付き)
まとめ:最適なアサーションツールを選ぼう
軸 | Postman | EchoAPI |
---|---|---|
技術的ハードル | JavaScriptの知識が必要 | Postman互換 + AI生成 + ビジュアル設定 |
アサーション効率 | 手動でスクリプト記述、繰り返し多め | 自動解析 → ワンクリック生成 |
チーム連携 | スクリプト管理に依存 | アサーションルールの共有・バージョン管理対応 |
拡張性 | カスタムスクリプト可能 | カスタム + AI自動生成 + ビジュアル設定 |
結論:
- スクリプトをゴリゴリ書けるエンジニア → Postman継続利用OK
- ゼロコードで効率を求めたいチーム → EchoAPIが超便利
- 実は両方の組み合わせが最強。EchoAPIでAI生成したスクリプトは、そのままPostmanにインポートして利用可能。
おわりに
私自身、最初は「AIでアサーション?大丈夫なの?」と思ってましたが、実際に使ってみたら想像以上に効率が上がりました。
もちろん、最終的には人間がレビューする必要はありますが、「テスト設計の初速を上げる」という意味ではかなり強力な武器になるはずです。
この記事が、皆さんのプロジェクトでも「テスト自動化のめんどくささをちょっと減らす」きっかけになればうれしいです!
よかったらぜひ試してみてください 🙌