メインコンテンツまでスキップ
バージョン: Latest(v3.0) 🔥

API auto test

1. api-auto-testの紹介

  • api-auto-testを始めるためのガイドとチュートリアル。
  • api-auto-testは、APIを迅速に構築、テスト、文書化するための無料でオープンソースのAPI開発プラットフォームです。リクエストを送信し、単一のインターフェースでレスポンスを表示できるウェブベースのAPI開発環境です。
  • api-auto-testを始めるための記事、ガイド、チュートリアルを見つけてください。

2. ワークスペース

2.1. ワークスペースの作成

  • ワークスペースを作成するには、ワークスペーススイッチャーの右上隅にある ”+” アイコンをクリックします。

  • または、「Create new workspace」ボタンを「Profile」ページの「Workspaces」セクションでクリックすることもできます。

  • ワークスペースを作成すると、そのワークスペースの所有者になります。他のユーザーをワークスペースに招待し、役割を割り当てることができます。

2.2. ワークスペースにユーザーを招待

  • ワークスペースにユーザーを招待するには、「Invite」ボタンをクリックします。

  • 招待したいユーザーのメールアドレスを入力します。入力フィールドにメールアドレスを追加することで、複数のユーザーを一度に招待できます。

2.3. ワークスペース間の切り替え

ワークスペースを切り替えるには、アプリの右上隅にあるワークスペーススイッチャーをクリックし、切り替えたいワークスペースを選択します。

2.4. ワークスペースの編集

ワークスペースを編集できるのは、そのワークスペースの所有者のみです。

2.4.1. ワークスペースからユーザーを削除する

  • ワークスペースからユーザーを削除するには、アプリの右上隅にあるワークスペース設定ボタンをクリックします。
  • 次に、ワークスペースから削除したいユーザーの「Delete」ボタンをクリックします。

2.4.3. ワークスペースを離れる

  • ワークスペースを離れるには、アプリの右上隅にあるワークスペース設定ボタンをクリックします。次に、離れたいワークスペースの「Delete」ボタンをクリックします。
  • ワークスペースを離れることができるのは、そのワークスペースの所有者でない場合のみです。もしあなたがそのワークスペースの所有者であれば、ワークスペースを離れるためにはそのワークスペースを削除する必要があります。あるいは、ワークスペースの所有権を別のユーザーに移転してからワークスペースを離れることもできます。

2.4.4. メンバーの役割を変更する

ワークスペースのメンバーには、3種類の役割があります:

  • Owner: ワークスペースの所有者は、ワークスペースに完全にアクセスでき、他のユーザーをワークスペースに招待できます。所有者はワークスペースを削除することもできます。
  • Editor: ワークスペースの編集者は、ワークスペースに編集アクセスを持ち、コレクション、環境、およびリクエストを作成、編集、削除できます。
  • Viewer: ワークスペースの閲覧者は、ワークスペースに対して読み取り専用アクセスを持ち、ワークスペース内のコレクション、環境、およびリクエストを表示することしかできません。 メンバーの役割をワークスペースで変更するには、アプリの右上隅にあるワークスペース設定ボタンをクリックします。次に、役割を変更したいユーザーの「Role」ドロップダウンをクリックします。次に、ユーザーに割り当てたい役割を選択し、「Save」をクリックします。

2.4.5. ワークスペースを削除する

ワークスペースを削除するには、「Profile」ページの「Workspaces」セクションにある削除したいワークスペースの「Delete」ボタンをクリックします。

3. コレクション

3.1. 新しいコレクションを作成する

新しいコレクションを作成するには、コレクションセクションの「Add new」ボタンをクリックし、コレクションの名前を入力します。また、目的のコレクションの「Add new」ボタンをクリックしてサブコレクションを作成し、サブコレクションの名前を入力することもできます。

3.2. リクエストをコレクションに保存する

コレクションに新しいリクエストを追加するには、リクエストページの「Save」ボタンをクリックし、追加したいコレクションを選択します。保存ボタンの隣にあるドロップダウンメニューをクリックし、「Save as」をクリックしてリクエストを新しい場所に保存します。

キーボードショートカット Ctrl/Cmd + S を使用して、リクエストをコレクションに保存することもできます。

3.3. コレクションを整理する

コレクションを希望の場所にドラッグアンドドロップして整理できます。また、コレクションを別のコレクションにドラッグアンドドロップすることでサブコレクションを作成することもできます。

3.3.1. コレクションを編集する

コレクションを編集するには、コレクションのオプションにある「Edit」ボタンをクリックします。

3.3.2. リクエストをコレクションに追加する

コレクションにリクエストを追加するには、コレクションのオプションにある“New request”ボタンをクリックして、現在のリクエストをコレクションに保存します。

3.4. コレクションの複製

コレクションを複製するには、コレクションのオプションにある“Duplicate”ボタンをクリックします。

3.5. コレクションの削除

コレクションを削除するには、コレクションのオプションにある“Delete”ボタンをクリックします。

3.6. コレクションのインポートとエクスポート

api-auto-test、OpenAPI、およびPostmanからコレクションをインポートおよびエクスポートできます。

3.6.1. コレクションのインポート

コレクションをインポートするには、コレクションセクションにある“Import”ボタンをクリックし、インポートしたいコレクションの種類を選択します。

3.6.2. コレクションのエクスポート

コレクションをエクスポートするには、コレクションのオプションにある“Export”ボタンをクリックし、エクスポートしたいコレクションの種類を選択します。

3.7. コレクションのプロパティ

コレクションのプロパティを使用すると、コレクション内のすべてのリクエストに普遍的に適用される設定を定義できます。

認証の詳細とヘッダーは、コレクションレベルで指定できます。コレクション内のサブフォルダーや個々のリクエストは、これらのプロパティを継承するか、独自の認証とヘッダーを定義できます。

コレクションのプロパティを設定するには:

  1. コレクションまたはコレクション内のサブフォルダーを右クリックして、そのプロパティを開きます。
  2. すべてのネストされたリクエストまたはフォルダーが従うべき認証とヘッダーを指定します。
  3. サブフォルダーが親コレクションのプロパティを継承する必要がある場合は、認証を「inherit」と指定し、ヘッダーは空のままにします。

4. 変数

4.1. 変数のスコープ

api-auto-testは、異なる変数スコープを提供し、異なるコンテキストに対して異なるスコープを使用できるようにします。

  1. Global Variables:は、api-auto-test全体でアクセス可能であり、すべての変数の中で最も広いスコープを持っています。
  2. Environment Variables:は、変数を環境にスコープさせることを可能にします。環境変数は、プロダクションとステージングのように、2つの環境で同じセットの変数を持つ場合に便利です。
  3. Request Variables:は、個々のリクエストにのみスコープされ、リクエスト変数は、URLパスで変数を使用したり、変数URLを埋め込んだりする場合に便利です。
  4. Predefined Variables:は、ランタイムで自動的に生成され、$シンボルを使用してapi-auto-test全体でグローバルにアクセスできます。例えば、$guid$timestampのように。

各変数のスコープは、変数名の色から識別できます。

Variable ScopeColor
グローバル
環境
リクエストオレンジ
事前定義
解決不能

4.2. 変数の種類

  1. A regular variable: ユーザーがapi-auto-test全体で変数を参照できるようにし、誰でもその変数に関連付けられた値を見ることができます。ワークスペース内では、通常の環境変数-値ペアがサーバーに同期され、すべてのワークスペースメンバーが利用できるようになります。ただし、個人のワークスペースに存在する通常の変数値を同期するかどうかを選択するオプションがあります。
  2. A secret variable: はユーザーが秘密を指定し、その値を変数として参照できるようにします。任意のワークスペース内の秘密変数の値は、サーバーに同期されることも、ワークスペースのメンバーと共有されることもありません。コラボレーティブなワークスペースでは、ユーザーが実行時に変数の値を入力することが期待されています。api-auto-test内のすべての秘密変数の値は、アスタリスク (*** ) を使用してマスクされます。秘密変数はリクエストにスコープを設定することはできず、環境またはグローバルにのみスコープを設定できます。

環境がエクスポートされるとき、秘密変数の値はエクスポートされません。

  1. A predefined variable: は実行時に自動的に生成され、動的でコンテキストに特化したデータを提供します。事前定義された変数は、リクエストとレスポンス全体で利用可能であり、手動設定なしでシステムレベルの情報や動的な値をAPIインタラクションに組み込むのに役立ちます。すべての事前定義された変数は、api-auto-test全体でアクセス可能であり、$ シンボルを使用して取得できます。以下は、リクエストまたはコレクションの実行中に動的に生成される事前定義された変数のリストです:

変数名 説明 例: guidA v4スタイルのユニーク (GUID) 識別子。123e4567-e89b-12d3-a456-426614174000

timestamp 現在のUNIXタイムスタンプ(秒単位) 1693047645 isoTimestamp 現在の日付と時刻をISO-8601形式でゼロUTC(「Zulu time」またはUTC-0とも呼ばれる) 2024-09-25T00:00:00.000Z

randomUUID ランダムな36文字のUUID。6929bb52-3ab2-448a-9796-d6480ecad36b

Numbers, Text, and Colors
Variable NameDescriptionExample
$randomAlphaNumericランダムな英数字の文字。A9X1Z3
$randomBooleanランダムなブール値。true , false
$randomInt0から1000の間のランダムな整数値。29 , 432 , 786
$randomColorred, green, blue, yellow, purple, and orange. の中のランダムな色yellow
$randomHexColorランダムな16進数の値。#f2a729
$randomAbbreviationランダムな略語。SQL , JSON , HTML
Internet and IP addresses
Variable NameDescriptionExample
$randomIPランダムなIPv4アドレス192.168.0.101
$randomIPV6ランダムなIPv6アドレス2001:0db8:85a3:0000:0000:8a2e:0370:7334
$randomMACAddressランダムなMACアドレス。00:1B:44:11:3A:B7
$randomPasswordランダムな15文字の英数字パスワード。H8w72Sx93KlqA1b
$randomLocaleランダムな2文字の言語コード (ISO 639-1)。en , fr , es
$randomUserAgentランダムなユーザーエージェント。Mozilla/5.0 (Windows NT 10.0; Win64)
$randomProtocolランダムなインターネットプロトコル。https , ftp
$randomSemverランダムなセマンティックバージョン番号。1.2.3
Names
Variable NameDescriptionExample
$randomFirstNameランダムな名前。Ethan , Chandler , John
$randomLastNameランダムな姓。Schaden , Schneider , Doe
$randomFullNameランダムなフルネーム。Ethan Schaden , Chandler Schneider , John Doe
$randomNamePrefixランダムな名前の接頭辞。Dr. , Miss. , Prof.
$randomNameSuffixランダムな名前の接尾辞。MD , PhD , Jr.
Addresses and Profession
Variable NameDescriptionExample
$randomCityランダムな都市名。New York , Houston , Philadelphia
$randomJobAreaランダムなジョブエリア。Intranet , Development , Testing
$randomJobDescriptorランダムなジョブディスクリプター。Corporate , Lead , Principal
$randomJobTitleランダムなジョブタイトル。Global Branding Officer , Productivity Analyst
$randomJobTypeランダムなジョブタイプ。Manager , Coordinator , Director

5. 環境

5.1. 環境の種類

  1. グローバル環境 - グローバル環境で定義された変数は、任意のワークスペースからいつでもアクセスできます。ただし、個人または共有ワークスペース環境で定義された変数は、グローバル変数よりも優先されます。
  2. 個人環境 - ユーザーに個人的なもので、共有ワークスペースに関連付けられていませんが、ユーザーは共有メンバーと共有せずに共有ワークスペースで個人環境を使用できます。
  3. 共有環境 - 各共有ワークスペースに固有で、共有ワークスペースで作成されたすべての共有環境は、共有ワークスペースのすべてのメンバーがアクセスできます。

5.2. 環境における変数の種類

api-auto-test環境は、2種類の変数をサポートします。

  1. レギュラー環境変数は、ユーザーがapi-auto-test全体で変数を参照できるようにし、誰でもその変数に関連付けられた値を見ることができます。共有ワークスペースでは、レギュラー環境変数-値ペアがサーバーに同期され、すべてのワークスペースメンバーが利用できるようになります。ただし、個人環境またはグローバル環境を同期するかどうかを選択するオプションがあります。
  2. 秘密の環境変数は、ユーザーが秘密を指定し、その値を変数として参照できるようにします。任意のワークスペース内の秘密変数の値は、サーバーに同期されることも、ワークスペースのメンバーと共有されることもありません。ユーザーが実行時に変数の値を設定することが期待されています。api-auto-test内のすべての秘密変数の値は、アスタリスク(***)を使用してマスクされます。

環境がエクスポートされるとき、秘密変数の値はエクスポートされません。

5.3. 共有環境アクセス

Environment VariableSecret Variable
ワークスペースオーナー変数の作成 / 削除、値の編集と使用秘密変数の作成 / 削除、値の追加と使用
ワークスペースエディター変数の作成 / 削除、値の編集と使用秘密変数の作成 / 削除、値の追加と使用
ワークスペースビューワー使用値を追加して使用

5.4. 環境の作成

サイドバーの「環境」アイコンをクリックして、環境を作成します。

環境内で作成された変数は、二重山括弧で囲まれた変数名を入力することで使用できます <<variable>>

5.4.1. クライアントから環境変数を作成する

Environment variables

リクエストやスクリプトで環境変数を使用する方法を学びます。

環境変数を使用すると、リクエストやスクリプト内で値を保存して再利用できます。

変数に値を保存することで:

  • リクエストセクション全体で参照できます。
  • 一箇所で更新することで、その値を変更できます。
  • 効率的に作業し、エラーの可能性を最小限に抑えることができます。
Adding environment variables

サイドバーの環境アイコンをクリックし、newボタンをクリックすることで新しい環境を作成できます。環境にPokemon Envsというラベルを付けましょう。 今、baseURLという環境変数を作成し、https://pokeapi.co/api/v2を指すようにしましょう。

同様に、複数の環境と環境変数を作成できます。

Accessing environment variable

複数の環境がある場合は、アクセスしたい変数を持つ環境を選択してください。リクエストセクションでは、次の形式で変数を参照することで変数にアクセスできます: <<variable_name>>。この場合、変数は<<baseURL>>となり、完全なURLは<<baseURL>>/pokemon/dittoになります。

5.4.2. スクリプトを使用した環境変数の作成

Pre-request scripts

Hoppscotchでプレリクエストスクリプトの使い方を学びましょう。

Scripts

Hoppscotchは、REST APIリクエストに動的な動作を追加することができます。これにより、テストスイートを作成し、動的パラメータを含むリクエストを構築できます。フロー内のイベントに基づいて実行されるECMAScriptコードを追加できます:

  • プレリクエストスクリプトは、リクエストがサーバーに送信される前に実行されます。
  • リクエストに複数のプレリクエストスクリプトを追加できます。
  • コレクションに保存されたリクエストと保存されていないリクエストの両方にプレリクエストスクリプトを追加できます。

その後、Hoppscotchは指定された順序でリクエストとともにスクリプトを実行します。

Pre-request script

プレリクエストスクリプトは、リクエストの実行前に実行されるコードの一部です。

プレリクエストスクリプトは、次のような前処理タスクに使用できます:

  • パラメータ、ヘッダーの設定。
  • ボディデータの追加。
  • 変数値の追加。
  • リクエストヘッダーにタイムスタンプを含める。
Writing pre-request scripts

Hoppscotchは、スクリプトとテストを作成するためのさまざまなメソッドを含む特別なpwオブジェクトを提供します。pwオブジェクトはグローバルであり、メソッドにアクセスするために名前で参照できます。 例えば、環境変数を設定するには、pw.env.set() メソッドを使用できます。

pw.env.set("variable", "value");

Examples

Hoppscotchを使用して、プレリクエストスクリプトを書く方法のいくつかの例を見てみましょう。

Setting environment variables

pw.env.set() は、迅速かつ便利な環境変数の定義に直接使用できます。リクエストコードをより良く整理するために使用できます。

pw.env.set("baseURL", "https://httpbin.org");pw.env.set("method", "get");

プレリクエストスクリプトタブに移動し、上記の ECMAScript コードを以下のようにコピー&ペーストします。

これらの変数は、リクエストセクションでダブルアングルブラケット <<variable_name>> で参照することによってアクセスできます。したがって、URLは <<baseURL>>/<<method>> になります。

Generating random Values to test API

エンドポイントで利用可能なランダムなテストユーザーデータをテストする必要があるケースを考えてみましょう。

次のGET APIエンドポイント https://reqres.in/api/users/ を使用しましょう。

エンドポイントURLに <<randomValue>> を追加します。

https://reqres.in/api/users/<<randomValue>>

今、プレリクエストスクリプトタブに次のロジックを追加します。

var random = Math.floor(Math.random() * 10);pw.env.set("randomValue", random.toString());

ECMAScript コードは、環境変数 randomValue にランダムな数を割り当て、APIはランダムな値に関連付けられたランダムなユーザーを返します。

以下のような類似のレスポンスが得られます:

{
"data": {
"id": 4,
"email": "eve.holt@reqres.in",
"first_name": "Eve",
"last_name": "Holt",
"avatar": "https://reqres.in/img/faces/4-image.jpg"
},
"support": {
"url": "https://reqres.in/#support-heading",
"text": "ReqResを無料で維持するために、サーバーコストへの寄付が感謝されます!"
}
}

5.5. スクリプトの使用

環境変数は、pwオブジェクトを使用してスクリプトで作成および削除することもできます。

pw.env.set("variable", "value"); // 環境変数を作成します
pw.env.unset("variable"); // 環境変数を削除します

5.6. 環境の複製

元の環境に影響を与えずに、異なる構成を変更またはテストするために、既存の環境のコピーを作成します。

  1. サイドバーの「Environments」アイコンをクリックして、Global Environmentsの下にあるすべての既存の環境を表示します。
  2. 複製したい環境の隣にあるMoreアイコンをクリックします。
  3. ドロップダウンメニューからDuplicateを選択します。Duplicateという接尾辞を持つ新しい環境が作成されます。