(1)PostmanとEchoAPIを活用したAPIテストの実践と最適化-動的値

実際の開発およびテスト作業において、APIを完成させた後に簡単なテストを行うことは非常に重要な作業です。テストプロセスでは、APIが想定通りのデータを返すことを確認することで、開発効率を向上させるだけでなく、潜在的な問題を迅速に発見することも可能になります。 シンプルなAPIテストの場合、レスポンスボディの確認や基本パラメータの返却状況の検証などを行うために、開発者はcURLのようなコマンドラインツールをよく利用します。しかし、複雑なリクエストパラメータを必要とするAPIテストのシナリオでは、cURLだけでは不十分であり、より専門的なツールを使用する必要があります。そのようなツールとして、Postmanが役立ちます。

Postman内蔵変数の制約

Postmanは強力なAPIテストツールであり、パラメーター化によってテスト効率を高めることができます。また、ランダムなIPやUUID、タイムスタンプなどの変数があらかじめ内蔵されています。これにより、動的データを迅速に生成し、一般的なAPIテストニーズを満たすことができます。

Postman内蔵変数.png

しかし、Postmanの内蔵変数機能は、複雑なシナリオにおいては限界を感じることがあります。たとえば、リアルかつ多様なランダムデータが必要な場面では、内蔵変数の種類や柔軟性がすべてのニーズをカバーしきれません。次の【ユーザー情報の更新】APIテストを一例に挙げます。

APIアドレス:
https://httpbin.org/user/1

リクエストボディのパラメータ:

{
    "email":"",
    "mobile":"",
    "fullName":"",
    "birthday":"",
    "city":""
}

このAPIをテストする際には、以下のフィールドにリアルで実用的なランダムな値を生成する必要が出てくるかもしれません。

  • email: 現実的な形式のランダムなメールアドレスが必要。
  • mobile: 対象とする地域の電話番号形式に合ったものが必要。
  • fullName: ランダムに生成された名前が必要。
  • birthday: 過去の特定の年齢層に見合った日付が必要で、カスタマイズ可能な形式をサポートする。
  • city: 地域ごとに異なる都市名が必要。

Postmanでは、pre-request scriptを使用してJavaScriptスクリプトを記述することでこれらの要件を実現できますが、このようなコードを記述するには高度な技術力が必要で、テストの複雑さやコストを引き上げる要因となります。そのため、大量の動的データを必要とするテストシナリオでは、Postmanの柔軟性と使いやすさには限界があります。

EchoAPIの動的値機能

この制約を補うために、EchoAPIはさらに強力な動的値生成機能を提供し、複雑なテストシナリオのニーズを満たすようにしています。EchoAPIには以下のような特徴があります:

  1. 豊富な内蔵変数: ランダムなメールアドレスや電話番号、名前、住所など、多種多様なデータ生成ルールが事前設定されています。
  2. 柔軟なパラメーター設定: 簡単な視覚的操作によってパラメーター生成ルールを設定でき、複雑なスクリプトを記述する必要がありません。
  3. 高いメンテナンス性: すべての設定がローコードもしくはノーコードで行え、後のメンテナンス負荷が軽減されます。

実例

動的メールアドレス設定

以下は、EchoAPIを使用して特定のドメインを持つランダムなメールアドレスを生成する例です。

  1. ビジュアルインターフェースを利用して、メールのprovider(ドメイン後方の設定)を指定。
  2. 設定完了後、EchoAPIはルールに適したランダムなメールアドレスを自動的に生成します。
EchoAPIの動的値.png

実際にAPIリクエストを送信すると、システムは設定に応じたランダムなemail情報をリクエストごとに生成します。

動的パラメータ設定

同様に、上述した【ユーザー情報の更新】APIのフィールドに動的値ルールを設定する例を紹介します。

{
    "email":"{{$fakerjs.Internet.email(provider=gmail.com)}}",
    "mobile":"{{$fakerjs.Phone.number(style=national)}}",
    "fullName":"{{$fakerjs.Person.fullName}}",
    "birthday":"{{$fakerjs.Date.past|format(YYYY/MM/DD HH:mm:ss,+08:00)}}",
    "city":"{{$fakerjs.Location.city}}"
}

以下は、EchoAPIの画面上でのダイナミックな設定結果です:

EchoAPIの動的値.png

ご覧のように、各パラメータの動的値の形式が一目でわかる上、生成ルールが読みやすいため、設定後にフィールド生成ミスやメンテナンスの問題を心配する必要はありません。

日付や時間の動的生成

日付や時間のようなデータを動的生成する場合には、EchoAPIは非常に細かい制御を可能にします。ユーザーのニーズに応じた標準的な日付形式を生成し、タイムゾーンや書式設定ルールもカスタマイズできます。

EchoAPIの動的値-生成類似日付、時間のランダム値.png

機能比較まとめ

機能 Postman EchoAPI
内蔵変数の充実度 少数の変数で、多くのテストシナリオを網羅できない 豊富な変数を提供し、ほぼすべてのシナリオに対応
動的値のカスタマイズ能力 JavaScriptスクリプトの記述が必要で複雑度が高い 可視化操作が可能で、プログラム不要で簡単に設定
メンテナンスコスト スクリプトの管理コストが高く、複雑なシナリオではコスト増加 すべてローコード設定で、メンテナンスコストが低い
柔軟性 基本的なデータ生成のみ対応 高い柔軟性を持ち、独自の生成ルールをサポート

まとめ

APIテストにおいて動的値生成ツールを適切に活用することで、テスト効率を大幅に向上させ、繰り返し作業を削減できます。PostmanはシンプルなAPIテストにおいて非常に効率的ですが、テストシナリオが複雑化し、高度な動的データ生成が必要な場合、機能の制約が追加コストをもたらす可能性があります。一方でEchoAPIは、豊富な内蔵変数、可視化された動的値設定、低メンテナンスコストなどの特徴を持ち、特に複雑なテストシナリオにおいてPostmanを補完する有力な選択肢となります。
テストエンジニアにとって、これらのツールを適切に選び、組み合わせて使用することで、さまざまなニーズに柔軟に対応し、開発とテスト作業の効率的な進行を促進することが可能です。