動的な値
Apidogでリクエストをデバッグする際、リクエストパラメータやボディに値、名前、住所などのデータを作成する必要があることがよくあります。そんなとき便利なのが動的な値機能です。
動的な値を使うと、リクエストを送信するたびに、事前に定義したルールに基づいて新しい値を生成できます。これによりデバッグ作業が効率化され、各リクエストに固有のデータを含めることができます。
使い方
</Step>
</Step>
</Step>
</Step>
JSONボディでの動的な値の使用
JSONボディをPOSTする必要があり、JSON内の一部の値を動的に生成したい場合も、動的な値を使用できます。
</Step>
</Step>
</Step>
カスタム式での動的な値の使用
情報の文字列をカスタマイズする必要があり、その情報の中に動的に生成する必要がある値がある場合は、カスタム式をクリックして動的な値の式を入力することもできます。
「挿入」をクリックすると、パラメータ値セクションにカスタム式が表示される
</Step>
一般的なカスタム動的値の例をいくつか示します。動的値モジュール をクリックして、その他の動的値メソッドを確認することもできます。
必要なカスタム内容 | カスタム式 | 出力例 | メソッドの連結と意味 |
---|---|---|---|
タイムスタンプ付きのランダムユーザー名 | {{$internet.userName}}_{{$date.now}} |
"Kattie_Rice64_2024-09-04T05:51:42.413Z" | {{$internet.userName}} でランダムなユーザー名を生成し、{{$date.now}} で現在時刻を取得し、テンプレートリテラルで連結 |
会社ドメイン付きのランダムメールアドレス | {{$person.firstName}}.{{$person.lastName}}@{{$company.name | lower}}.com | "Kole.Haag@schmidt-schoen.com" | {{$person.firstName}} と{{$person.lastName}} でランダムな名前を生成し、{{$company.name | lower}}で会社名を生成して小文字に変換し、メールアドレスの形式に連結 |
番地とアパート番号を含むランダムな住所 | {{$location.buildingNumber}} {{$location.street}}, Apt. {{$number.int(min=1,max=1000)}}, {{$location.city}}, {{$location.state(abbreviated=true)}} {{$location.zipCode}} |
"723 Klein Inlet, Apt. 814, North Myron, DE 67605" | 複数のメソッドを使用して、番地、通り名、アパート番号、市、州、郵便番号を含む詳細な住所を生成 |
業種と会社形態を含むランダムな会社名 | {{$company.buzzAdjective}} {{$company.buzzNoun}} {{$company.name}} |
"web-enabled architectures Fay Inc" | company メソッドを使用して、業界の説明と会社形態を含む会社名を生成 |
過去1年以内のランダムな日付 | {{$date.past(years=1)}} |
"2023-10-24T09:25:24.109Z" | {{$date.past(years=1)}} メソッドを使用して過去1年以内のランダムな日付を生成 |
通貨記号付きのランダムな価格 | {{$finance.currencySymbol}}{{$commerce.price}} |
"KM12.89" | {{$finance.currencySymbol}} でランダムな通貨記号を生成し、{{$commerce.price}} で価格を生成して連結 |
ランダムな商品説明 | {{$commerce.productAdjective}} {{$commerce.productMaterial}} {{$commerce.product}} - {{$lorem.sentences(min=2,max=4)}} |
"Small Wooden Pizza - Thema copiose dens adinventitias a. Causa uxor terreo defleo vitiosus animi." | {{$commerce.productAdjective}} と{{$lorem.sentences(min=2,max=4)}} メソッドを使用して、商品の特徴と説明を含むテキストを生成 |
ハッシュタグ付きのランダムな文章 | #{{$lorem.slug(min=1,max=3)}} {{$lorem.sentence(min=1,max=3)}} |
"#provident-quidem-tempore Vita comprehendo id." | {{$lorem.slug(min=1,max=3)}} でランダムなハッシュタグを生成し、文章の前に連結 |
ポート番号付きのランダムIPアドレス | {{$internet.ipv4}}::{{$number.int(min=1024,max=65535)}} |
"246.222.133.63::56332" | {{$internet.ipv4}} でランダムなIPアドレスを生成し、{{$number.int(min=1024,max=65535)}} でポート番号を生成して連結 |
クエリパラメータ付きのランダムURL | {{$internet.url}}?{{$lorem.slug}}={{$lorem.word}} |
"https://nippy-bob.name/?nemo-provident-clementia=blandior" | {{$internet.url}} 、{{$lorem.slug}} 、{{$lorem.word}} を使用してクエリパラメータ付きのランダムURLを生成 |
ランダムなファイルパス | /path/to/{{$lorem.slug}}/{{$system.fileName}} |
"/path/to/caritas-solio-vilicus/across.img" | {{$lorem.slug}} 、{{$system.fileName}} と文字列連結を使用してランダムなファイルパスを生成 |
ランダムなデータベーステーブル名 | table_{{$string.alphanumeric(length=5)|lower}} | "table_brxlr" | {{$string.alphanumeric(length=5)|lower}}を使用してランダムな文字列を生成し、テーブル名を形成 |
ランダムなHTMLコードスニペット | <p>{{$lorem.sentence}} <a href="{{$internet.url}}">{{$lorem.word}}</a></p> |
" Calamitas velociter una succurro depopulo. comminor " |
{{$lorem.sentence}} と{{$internet.url}} を使用してリンクを含むランダムなHTMLコードを生成 |
ランダムなHTTPリクエストヘッダー | { "User-Agent": {{$internet.userAgent}}, "Referer": {{$internet.url}} } |
{ "User-Agent": Opera/13.25 (Macintosh; Intel Mac OS X 10.7.9 U; HE Presto/2.9.171 Version/12.00), "Referer": https://queasy-dusk.info/ } |
{{$internet.userAgent}} と{{$internet.url}} を使用してUser-AgentとRefererを含むランダムなHTTPリクエストヘッダーを生成 |
動的な値の使用例
動的な値はAPIテストで幅広く活用できます。以下は代表的な例です:
実際のデータをシミュレート: ユーザー名、住所、メールアドレスなど、様々な形式のデータに対するAPIの挙動をテストする必要がある場合。動的な値を使用すると、実際のシナリオに近いテストデータを大量に生成でき、テストカバレッジを向上できます。
ユニークな値の生成: 注文番号、ユーザーID、取引IDなど、データの一意性を確保する必要があるテストシナリオの場合。動的な値を使用してタイムスタンプやランダム数に基づいてユニークな値を生成し、データの競合を防ぎ、正確なテスト結果を確保できます。
データ処理の効率化: テストの実行ごとに手動でデータを変更する代わりに、動的な値を使用して必要なデータを自動生成できます。これにより、大幅な時間と労力を節約し、テスト効率を向上できます。
動的な値の手動挿入
動的な値を挿入したい入力フィールドで、{{$
と入力すると動的な値のリストが表示されます。
以下のいずれかの方法で必要な変数をすばやく見つけることができます:
- 完全一致入力: 動的な値の名前を正確に入力します(例:$timestamp)
- あいまい検索: 「time」などのキーワードの一部を入力すると、システムが自動的にマッチする動的な値をフィルタリングして表示します
目的の動的な値を選択して入力フィールドに挿入します。
:::tip[]
この方法では、動的な値にパラメータや関数を直接追加することはできません。
:::
データジェネレータ
データジェネレータを使用すると、必要に応じてカスタムデータを生成できます。
パラメータ入力フィールドにカーソルを合わせ、表示される魔法の杖アイコンをクリックすると、より高機能な「データジェネレータ」パネルが開きます。
パネルでは、以下の2つの方法で目的の動的な値を見つけることができます:
- 変数タイプで検索: 「日付」「文字列」「数値」などの動的な値のタイプを選択して、目的の変数の範囲をすばやく特定し、検索効率を向上させる
- キーワードで検索: 上部の「タイプ」入力ボックスにキーワード(例:「time」)を入力すると、システムが自動的にマッチする動的な値をフィルタリングして表示し、すばやく見つけることができます
目的の動的な値を選択したら、以下の操作でより細かいデータ生成のニーズに対応できます:
- メソッドの追加: 一部の動的な値では追加のメソッドをサポートしています。例えば、{{$date.now}}はaddDaysメソッドを使用して特定の日付のデータを生成できます。
- 処理関数の追加: すべての動的な値の結果に関数を適用できます。例えば、md5関数を使用して文字列を暗号化し、セキュリティ要件を満たすテストデータを生成できます。
「式」エリアには、現在選択している動的な値、メソッド、関数が明確に表示され、確認や修正が簡単にできます。
「プレビュー」エリアには、動的な値によってリアルタイムで生成されたサンプルデータが表示されます。「プレビュー」エリアの末尾にある「更新」ボタンをクリックすると、新しいサンプルデータが生成され、データ生成の効果を簡単に確認できます。
「プレビュー」エリアのサンプルデータをクリックすると、内容が自動的にコピーされ、必要な場所に簡単に貼り付けることができます。
データの言語/国の設定
Apidogの動的な値は、多言語環境でのテストニーズに対応するため、異なる言語でのサンプルデータ生成をサポートしています。設定方法は以下の通りです:
- 「データジェネレータ」パネルを開く
- 日付と時刻以外の動的な値タイプの場合は、動的な値の右上にある設定ボタンをクリックし、対象の言語を選択する
- 日付と時刻の動的な値タイプの場合は、formatとlocaleメソッドを使用して言語とフォーマットを指定できる
強力な日付操作とフォーマット
Apidogは豊富な日付と時刻の動的な値を提供するだけでなく、開発プロセスを簡素化することに力を入れています。以下は簡単に実現できる機能です:
- 柔軟な時間調整:
add
メソッドを使用すると、現在時刻を基準に時間単位を簡単に加算または減算できます。例えば、{{$date.now|addHours(-3)}}
は現在時刻より3時間前の日付を返します。
- 多様な日付フォーマット:
format
メソッドを使用すると、必要に応じて日付を異なるフォーマットに整形できます。例えば、{{$date.now|formatISO}}
は日付をISO 8601標準に従ってフォーマットします。
- 正確なタイムゾーン制御:
timezone
パラメータを設定することで、日付のタイムゾーンを簡単に制御できます。例えば、{{$date.now|format('yyyy-MM-dd HH:mm:ss',timezone='America/Port-au-Prince')}}
はUTC+8:00タイムゾーンにおける現在時刻に対応する日付を返します。
よく使用される動的な値
Apidog動的な値を最大限活用していただくため、利用可能な値の包括的なリストと具体的な例を用意しました。動的な値モジュールをクリックすると、必要な値をすぐに見つけて使用方法を学ぶことができます。
:::tip[]
Apidogアプリケーション内で動的な値の式にマウスを合わせると、簡単な説明と例を確認することもできます。
:::