※MagicPodConnect(セキュアトンネリング機能)を使ったテストはエンタープライズプランをご契約頂いた方のみお使いいただけます。
このページでは、社内環境などの、インターネットからアクセスできない環境に対して「MagicPodConnect」というクライアントソフトを使ってテストを実施する方法について説明します。
はじめに
- プライベート環境のテストに関するより一般的な情報は「プライベート環境に対するテスト」をご覧ください。
目次
MagicPodConnectを用いたテストの概要
大まかな仕組み
MagicPodConnectは、MagicPodのクラウド環境でテストを作成・実行する際に社内環境へのアクセスを可能にする機能です。ローカルPC環境および外部クラウド環境とは関連がありませんのでご注意ください。
基本的な仕組みとしては、社内環境にアクセス可能なマシン上で「MagicPodConnect」というクライアントソフトを起動してMagicPodに接続することで双方向の接続を確立し、クラウド端末(ブラウザ含む)からの通信を受け付けます。この仕組みにより、インターネットから接続できないテスト環境にも接続できるようになります。
この機能を使うメリット
MagicPodConnectを使わない場合、社内環境へのテストでは基本的に「ローカルPC」環境を選択することになりますが、MagicPodConnectを使うと「クラウド」環境が利用可能になります。クラウド環境を使うメリットは主に2点です。
- セットアップの簡易さ:ローカルPC環境でiOS・Androidのテストを行うにはMagicPodのアカウント以外にもローカルで設定しなければならないツールが多く、それなりに管理コストもかかります。クラウド環境を使えば、ユーザ側のPCではMagicPodにアクセスするためのブラウザさえあれば良いので非常に簡単にテスト作成、実行を始められます。
- テスト作成の利便性向上:さらに、クラウド環境ではリアルタイム簡単テスト作成の機能を使うこともできますので、ローカルで1枚1枚画面のキャプチャを撮ってMagicPodの編集画面に戻る方法に比べてスムーズにテストを作成できます。
サポート環境
- テスト実行環境:クラウド環境で動作する全プラットフォームをサポートしています。
- iOS(シミュレータ)
- Android(エミュレータ)
- ブラウザ(Chrome、Edge、Firefox)
- クライアント(MagicPodConnectを起動する環境):以下の主要なOSをサポートしています。
- Windows
- macOS
- Linux
利用条件
- プラン:エンタープライズのみ
- 接続を共有できる範囲:プロジェクト内のみ。同じ組織の中でも、違うプロジェクトの接続を使うことはできません。同じプロジェクト内であれば、1つの接続でたとえばテスト作成1端末・一括実行3端末のように同時に使うことは可能です。ただし、負荷を考慮すると1接続5端末程度までに抑えることを推奨しています。
- 接続数の制限:ありません。クラウド端末と組み合わせて使う形になるので、実質的にはクラウド端末の数の上限がMagicPodConnectの接続数の上限となります。
- 接続先の制限:社内環境含め、MagicPodConnectが起動しているマシンからアクセス可能な場所にはすべて接続できます。ただし、現状「localhost」「127.0.0.1」は接続先として指定できません。ローカルマシン上のサーバにアクセスしたい場合には、「192.168.1.10」のようなローカルのIPアドレスを使用するか、hostsファイルに下記のように任意のドメイン名を追加して向き先がローカルマシンになるように設定してください。Webページやアプリの向き先としてアクセスする場合だけでなく、「Web APIコール」コマンドから接続する場合も同様です。特に、「Web APIコール」コマンドでは使用できるURLが限られているため、ドメインの末尾が「.test」もしくは「.local」になるよう指定してください。
127.0.0.1 myserver.test
利用方法
MagicPodConnectのダウンロード
最新版のMagicPodConnectはこちらのページよりダウンロードいただけます。Mac、Windows、Linux用の中からお使いのOSに応じたzipファイルをダウンロードした後、解凍してお使いください。
設定ファイルの準備
MagicPodConnectを起動する前に、接続のための設定ファイルを準備する必要があります。MagicPodConnectと同じフォルダに「magicpodconnect.yml」というファイルを作成し、以下のように設定を行ってください。<>の中が各自の環境に合わせて設定が必要な箇所です。1つ1つの項目についてはこの後説明します。
token: <MAGICPOD_API_TOKEN>
organization: <ORGANIZATION_NAME>
project: <PROJECT_NAME>
allowedDomains:
- <YOUR_LOCAL_DOMAIN1>
- <YOUR_LOCAL_DOMAIN2>
- ...
magicPodConnectId: <CONNECTION_ID>
logLevel: info
forceCreate: true
proxyServerUrl:
proxyServerAuthType: none
proxyServerAuthUser:
proxyServerAuthPassword:
キー | 必須 | 説明 | 初期値 |
token | ✅ | MagicPodのAPIを利用するためのトークンを指定します。トークンの値はシステム連携の画面でコピーできます。 | 環境変数MAGICPOD_API_TOKENの値 |
organization | ✅ | テスト作成・実行を行う組織名を指定します。 | 環境変数MAGICPOD_ORGANIZATIONの値 |
project | ✅ | テスト作成・実行を行うプロジェクト名を指定します。 | 環境変数MAGICPOD_PROJECTの値 |
allowedDomains | ✅ | MagicPodConnectからのアクセスを許可するドメインもしくはIPアドレスの一覧をリスト形式で指定します(詳細は後述)。 | - |
magicPodConnectId | MagicPodConnectの接続が複数ある場合に区別するためのIDを英数字で指定します。指定しない場合は、自動的にランダムな値が設定されます。 | 環境変数MAGICPODCONNECT_IDの値 | |
logLevel | MagicPodConnectから出力されるログの細かさを指定します。以下の値の中から指定できます:trace/debug/info/notice/warning/error/critical | info | |
forceCreate | 同じmagicPodConnectIdを持つ接続が既に確立されている場合、既存の接続を削除して新しく作り直す場合はtrueを指定します。 | ||
proxyServerUrl | プロキシ環境下でMagicPodConnectを使うときに指定します(詳細は後述)。 | ||
proxyServerAuthType | プロキシ環境下でMagicPodConnectを使うときに指定します(詳細は後述)。 | ||
proxyServerAuthUser | プロキシ環境下でMagicPodConnectを使うときに指定します(詳細は後述)。 | ||
proxyServerAuthPassword | プロキシ環境下でMagicPodConnectを使うときに指定します(詳細は後述)。 | ||
proxyExcludedDomains | プロキシ環境下でMagicPodConnectを使うときに指定します(詳細は後述)。 |
基本的な設定を行うと、以下のような内容になります。
token: ${MAGICPOD_API_TOKEN}
organization: SampleCompany
project: SampleProject
allowedDomains:
- example.com
- test.jp
- 192.168.1.19
環境変数の利用について
各項目の値には、例にあるように環境変数を指定することができます。CI環境上など共有する環境で実行するときにトークンを直接記述したくないときに便利です。また、環境変数の記法はOSによらず(Windowsでも)$変数名、${変数名}のいずれかです。
必須項目allowedDomainsの指定について
MagicPodConnectによる接続は社内環境に対するセキュリティを大きく緩めることになりますので、あらかじめ指定した接続対象以外については接続できないようになっています。たとえば同じ社内環境でも社内のテスト環境には接続したいが社員用のポータルには接続したくないといった場合、前者だけを指定する必要があります。
例にあるように、allowedDomainsは複数指定することができ、ドメイン名・IPアドレスのいずれも指定できます。ドメイン名にはワイルドカード(「*」で全ての文字列に一致させる方法)は使えませんが、その代わりに指定したドメインのサブドメインについては暗黙的に許可します。たとえば、上の例ですと「example.com」のほかに「test.example.com」、「staging.example.com」などにも適用されます。
allowedDomainsを指定しなかった場合、MagicPodConnectはすべての接続を拒否します。「テストには使うがインターネットから接続できるのでMagicPodConnect経由で接続する必要はない」接続先については、MagicPodConnectを使わないように設定できます。この方法については後述します。
MagicPodConnectの起動
設定ファイルの準備ができたら、ダウンロード・解凍したMagicPodConnectをコマンドラインから実行します。どのOSでも基本的に同じですが、ここではLinuxでのコマンド例を示します。
./MagicPodConnect
起動後、以下のように確立した接続情報が表示されればOKです。今回は magicPodConnectIdを指定しなかったので、自動生成された「00ea1067-c980-44fd-b4cd-fb5ae2edca97」の部分が接続のID(MagicPodConnect ID)となります。
[xxxx-xx-xx xx:xx:xx.xxx - INFO] Started MagicPodConnect (MagicPodConnect ID=00ea1067-c980-44fd-b4cd-fb5ae2edca97) for <ORGANIZATION_NAME>/<PROJECT_NAME>
テスト作成・実行
MagicPodConnectを使ってテスト作成や実行を行うには、テスト設定パネルの詳細タブで以下のように設定を行います。
- MagicPodConnect:利用する
- MagicPodConnect ID:<上で自動された、もしくは指定したMagicPodConnect IDを指定>
- 対象ドメイン:MagicPodConnect経由で接続したいドメイン・IPアドレスを指定。原則、上記のallowedDomainsに指定したのと同じ内容
MagicPodConnect IDについて
プロジェクトに対して1つしかMagicPodConnectが起動していない場合は、MagicPodConnect IDを指定しなくても起動済みの接続を使うことができます。ただ、知らないうちに他のユーザが別の接続を起動してしまう、もしくは既存の接続を知らずに使ってしまうこともありますので、基本的には何らかの値を指定して使うほうが良いでしょう。(プロジェクトに対して「テストケース更新」権限のあるユーザしかMagicPodConnectの接続を起動したり使ったりすることはできないので、権限のないユーザに勝手に使われてしまうということはありません。)
対象ドメインについて
MagicPodConnectを使っていても、「対象ドメイン」に指定されていない接続先についてはインターネット経由の接続が行われます。社内からでないとアクセスできない接続先のみ、「対象ドメイン」およびmagicpodconnect.yml内の「allowedDomains」に指定するようにしてください。
設定が済んだら、テスト作成の場合は「起動」ボタン、一括実行の場合は「テストを一括実行」ボタンでそれぞれ端末を起動します。
プロキシ環境下での利用
MagicPodConnectを利用するマシンからインターネットへ接続する際にプロキシを使う場合、別途設定が必要です。現在は以下の2種類にのみ対応しています。
- 認証なしのプロキシ
- Basic認証を必要とするプロキシ
プロキシの設定は、他の設定と同様設定ファイルで指定できます。以下はBasic認証を使う場合の例です。認証なしの場合はproxyServerUrlのみを指定してください。
proxyServerUrl: <PROXY_SERVER_URL>
proxyServerAuthType: basic
proxyServerAuthUser: <USER>
proxyServerAuthPassword: <PASSWORD>
特定のドメインをプロキシから除外したい場合は、以下のように除外したいドメインをproxyExcludedDomains以下に列挙してください。allowedDomainsと同じく、指定したドメイン以下のサブドメインも対象となります。
allowedDomains:
- example.com
proxyServerUrl: <PROXY_SERVER_URL>
proxyExcludedDomains:
- exclude.example.com
MagicPodConnectの詳細オプション
MagicPodConnectに指定可能なパラメータの一覧は以下のコマンドで確認できます。
./MagicPodConnect -h
NAME:
MagicPodConnect - Enables MagicPod testing within local testing environment
USAGE:
flags [global options] command [command options] [arguments...]
VERSION:
1.5.0.1
COMMANDS:
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--config value, -c value (Optional) The path to the configuration file. (default: "magicpodconnect.yml")
--help, -h show help
--version, -v print the version
--config, -c
設定ファイルとしてMagicPodConnectと同階層にあるmagicpodconnect.yml以外のファイルを使いたい場合は、このオプションを使って設定ファイルのパスを指定することができます。