Postman vs Apidog: ランダムデータ生成技法を徹底解説

## はじめに
APIをテストする際、電話番号をサーバーサイドに渡す必要がある場合はよくあります。それでは、PostmanというAPIテスト用のツールを使って、ランダムな電話番号を生成して、それをAPIサーバーサイドに渡すには、どうしたらいいですか？本文では、その方法を詳しく紹介していこうと思います。

## ランダムな電話番号を渡すのはなぜ？
特定のAPIをテストする際、電話番号をAPIに渡す必要がある場合がよくあります。典型的なユースケースは以下のようなものがあると考えられています。

- **1.ユーザー登録・プロフィール作成**
ウェブサイトやモバイルアプリでユーザーが新規登録する際、電話番号を必須フィールドとして要求されることがよくあります。この場合、電話番号をサーバーに送信し、ユーザープロフィールに保存する必要があります。
- **2.本人確認・二要素認証**
金融サービスや重要な取引において、本人確認のために電話番号が利用されることがあります。SMSで一時的なワンタイムパスワードを送信したり、電話で音声ガイダンスによる認証を行ったりします。
- **3.配送・宅配の住所確認**
ECサイトで商品を購入する際、配送先の住所とともに電話番号を要求されることがあります。配送業者が配送時に連絡を取る必要がある場合に使用されます。
- **4.マーケティングやプロモーション**
一部の企業は、マーケティングの目的で顧客の電話番号を収集することがあります。プロモーションのSMS送信や電話によるアンケート、セールスコールなどに利用します。
- 5.**緊急連絡先の登録**
就職活動の際の緊急連絡先、オンラインイベントでの参加者の連絡先登録など、さまざまな場面で電話番号が必要とされる場合があります。


このように、ユーザー認証、本人確認、物流、マーケティングなど、様々な用途で電話番号がAPIを通じて送受信されます。APIテストを行う際に、ランダムな電話番号を使うことで、リアルなユースケースをシミュレートできます。

## Postmanでランダムな電話番号を生成するには？
[Postman](http://apidog.com/jp/blog/what-is-postman-and-its-japanese-setting/)は、API（Application Programming Interface）開発とテストのための人気のあるツールです。Postmanを使用すると、開発者はHTTPリクエストを作成し、APIエンドポイントに送信することができるので、APIの動作をテストしたり、リクエストとレスポンスのデータを確認したりできます。

http://apidog.com/jp/blog/postman-user-manual/

それでは、Postmanではランダムな電話番号を生成する必要がある場合は、どうやって生成すれば良いのでしょうか？Postmanを使ってAPIをテストする際、テストスクリプトを利用して、ランダムな電話番号を生成することができます。

### Postmanでランダムな電話番号を生成する手順

Postmanには、リクエスト送信前に実行される「Pre-request Script」という機能があります。ここでJavaScriptを使ってランダムな電話番号を生成し、環境変数に格納することができます。

**ステップ⒈** Postmanを開き、HTTPリクエストを新規に作成します。

![postman-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/d9c2f890-a533-1988-e31f-5f7cf1127e74.png)

**ステップ⒉** リクエストに必須なエンドポイントURLやパラメータを記入して、「Pre-request Script」に切り替えて、次のようなスクリプトを記入します。
```
// 電話番号の形式を定義
const phoneNumberFormat = '090-####-####';

// ランダムな数字を生成する関1、何桁の番号を生成するかをも定義
function getRandomDigit() {
  return Math.floor(Math.random() * 11);
}

// 電話番号を生成する関数
function generatePhoneNumber(format) {
  let phoneNumber = '';
  for (let i = 0; i < format.length; i++) {
    const char = format[i];
    if (char === '#') {
      phoneNumber += getRandomDigit();
    } else {
      phoneNumber += char;
    }
  }
  return phoneNumber;
}

// 環境変数にランダムな電話番号を設定
pm.environment.set('randomPhoneNumber', generatePhoneNumber(phoneNumberFormat));
```

このスクリプトでは、090から始まる11桁の電話番号をランダムに生成することができます。この電話番号は、`{{randomPhoneNumber}}` という変数に保存します。

![postman-random-number-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/fb5b7294-6f8d-2ff7-628a-444197384393.png)

**ステップ⒊** 送信リクエストのパラメータで、`{{randomPhoneNumber}}` 変数を参照して、それをAPIサーバーサイドに渡すことができます。

![postman-random-number-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/202eb016-11f3-c298-14dd-ca5989cb357b.png)

ここでPostmanの「Console」を開くと、先に生成した電話番号を渡したことを確認できます。

![postman-random-number-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/00dbae87-d4cf-4142-81cf-a413b34cf178.png)

## Apidogでランダムな電話番号をより便利に渡す
Postmanでテストスクリプトを手動で記述することで、ランダムな電話番号を生成して渡すことの代わりに、[Apidog](http://www.apidog.com/jp/?utm_source=opr&utm_medium=a2takuya)という便利なAPI管理ツールは、より便利な対策を提供しています。

Apidogでは、データジュネレータツールが内蔵されているので、APIをテストする時、自分のニーズに応じて簡単にデータを生成して渡すことができます。Apidogでランダムに電話番号を生成するために、このデータジュネレータツールを活用することができます。

**ステップ⒈** Apidogを開き、HTTPリクエストを新規に作成します。

**ステップ⒉** パラメータ値を記入するところで、「魔法の杖」というアイコンがあります。そこをクリックして、データジュネレータツールを開くことができます。ここで生成するデータを「Phone Number」に指定します。

![apidog-phone-number-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/154cafff-29a5-9a0d-0495-80b2a1af0575.png)

**ステップ⒊** 「送信」ボタンをクリックすると、「実際のRequest」タブに切り替えて、成功にランダムな電話番号を生成して渡したことを確認できましたね。

![apidog-phone-number-6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/d8d2d834-a2c1-5750-23b3-b52500527cda.png)

上記のように、Apidogのデータジュネレータツールを利用することで、手動でテストスクリプトを記述することなく、ランダムな電話番号を簡単に生成して渡すことができます。Postmanよりも便利にAPIをテストする際、Apidogというツールをも活用することを検討してください。


## 終わりに
Postmanでランダムな電話番号を生成してAPIサーバーに渡す方法について説明しました。Postmanでは「Pre-request Script」でJavaScriptを使い、ランダムな電話番号を生成して環境変数に格納できます。そして、生成した電話番号は{{randomPhoneNumber}}という形式で参照し、リクエストのパラメータなどに含めることができます。

また、より便利に電話番号を生成してAPIをテストしてみたい場合は、Apidogでは内蔵の「データジェネレータ」ツールを使えば、電話番号をはじめとするさまざまなデータをランダムに生成できます。Apidogはスクリプトを書かずにランダムデータを簡単に生成できるので、Postmanよりも便利です。

APIテストでは適切なテストデータを用意することが重要です。ランダムな電話番号を生成して使うことで、実際の運用に近い状況をシミュレートでき、よりリアルなテストが可能になります。Postmanだけでなく、[Apidog](http://www.apidog.com/jp/?utm_source=opr&utm_medium=a2takuya)のようなツールも活用することで、効率的でカバレッジの高いAPIテストを実施できます。

**最後まで読んでくださり、ありがとうございました！
この記事を読んで少しでも理解を深めていただければ幸いです！**