※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をサポートしています。WindowsmacOSLinux利用条件プラン:エンタープライズのみ接続を共有できる範囲:プロジェクト内のみ。同じ組織の中でも、違うプロジェクトの接続を使うことはできません。同じプロジェクト内であれば、1つの接続でたとえばテスト作成1端末・一括実行3端末のように同時に使うことは可能です。負荷を考慮すると1接続5端末程度までに抑えることを推奨しています。接続数の制限:ありません。クラウド端末と組み合わせて使う形になるので、実質的にはクラウド端末の数の上限がMagicPodConnectの接続数の上限となります。接続先の制限:社内環境含め、MagicPodConnectが起動しているマシンからアクセス可能な場所にはすべて接続できます。現状「localhost」「127.0.0.1」は接続先として指定できません。ローカルマシン上のサーバにアクセスしたい場合には、「192.168.1.10」のようなローカルのIPアドレスを使用するか、hostsファイルに下記のように任意のドメイン名を追加して向き先がローカルマシンになるように設定してください。APIコール」コマンドから接続する場合も同様です。APIコール」コマンドでは使用できるURLが限られているため、ドメインの末尾が「.test」もしくは「.local」になるよう指定してください。myserver.test利用方法MagicPodConnectのダウンロード最新版のMagicPodConnectはこちらのページよりダウンロードいただけます。Mac、Windows、Linux用の中からお使いのOSに応じたzipファイルをダウンロードした後、解凍してお使いください。設定ファイルの準備MagicPodConnectを起動する前に、接続のための設定ファイルを準備する必要があります。MagicPodConnectと同じフォルダに「magicpodconnect.yml」というファイルを作成し、以下のように設定を行ってください。<>の中が各自の環境に合わせて設定が必要な箇所です。1つ1つの項目についてはこの後説明します。MagicPodのAPIを利用するためのトークンを指定します。トークンの値はシステム連携の画面でコピーできます。テスト作成・実行を行う組織名を指定します。テスト作成・実行を行うプロジェクト名を指定します。MagicPodConnectからのアクセスを許可するドメインもしくはIPアドレスの一覧をリスト形式で指定します(詳細は後述)。MagicPodConnectの接続が複数ある場合に区別するためのIDを英数字で指定します。指定しない場合は、自動的にランダムな値が設定されます。MagicPodConnectから出力されるログの細かさを指定します。同じmagicPodConnectIdを持つ接続が既に確立されている場合、既存の接続を削除して新しく作り直す場合はtrueを指定します。プロキシ環境下でMagicPodConnectを使うときに指定します(詳細は後述)。プロキシ環境下でMagicPodConnectを使うときに指定します(詳細は後述)。プロキシ環境下でMagicPodConnectを使うときに指定します(詳細は後述)。プロキシ環境下でMagicPodConnectを使うときに指定します(詳細は後述)。プロキシ環境下でMagicPodConnectを使うときに指定します(詳細は後述)。基本的な設定を行うと、以下のような内容になります。192.168.1.19環境変数の利用について各項目の値には、例にあるように環境変数を指定することができます。CI環境上など共有する環境で実行するときにトークンを直接記述したくないときに便利です。環境変数の記法はOSによらず(Windowsでも)$変数名、${変数名}のいずれかです。必須項目allowedDomainsの指定についてMagicPodConnectによる接続は社内環境に対するセキュリティを大きく緩めることになりますので、あらかじめ指定した接続対象以外については接続できないようになっています。同じ社内環境でも社内のテスト環境には接続したいが社員用のポータルには接続したくないといった場合、前者だけを指定する必要があります。例にあるように、allowedDomainsは複数指定することができ、ドメイン名・IPアドレスのいずれも指定できます。ドメイン名にはワイルドカード(「*」で全ての文字列に一致させる方法)は使えませんが、その代わりに指定したドメインのサブドメインについては暗黙的に許可します。上の例ですと「example.com」のほかに「test.example.com」、「staging.example.com」などにも適用されます。allowedDomainsを指定しなかった場合、MagicPodConnectはすべての接続を拒否します。「テストには使うがインターネットから接続できるのでMagicPodConnect経由で接続する必要はない」接続先については、MagicPodConnectを使わないように設定できます。この方法については後述します。設定ファイルの準備ができたら、ダウンロード・解凍したMagicPodConnectをコマンドラインから実行します。どのOSでも基本的に同じですが、ここではLinuxでのコマンド例を示します。./MagicPodConnect起動後、以下のように確立した接続情報が表示されればOKです。<ORGANIZATION_NAME>/<PROJECT_NAME>テスト作成・実行MagicPodConnectを使ってテスト作成や実行を行うには、テスト設定パネルの詳細タブで以下のように設定を行います。IDを指定>対象ドメイン:MagicPodConnect経由で接続したいドメイン・IPアドレスを指定。IDを指定しなくても起動済みの接続を使うことができます。知らないうちに他のユーザが別の接続を起動してしまう、もしくは既存の接続を知らずに使ってしまうこともありますので、基本的には何らかの値を指定して使うほうが良いでしょう。(プロジェクトに対して「テストケース更新」権限のあるユーザしかMagicPodConnectの接続を起動したり使ったりすることはできないので、権限のないユーザに勝手に使われてしまうということはありません。)対象ドメインについてMagicPodConnectを使っていても、「対象ドメイン」に指定されていない接続先についてはインターネット経由の接続が行われます。社内からでないとアクセスできない接続先のみ、「対象ドメイン」およびmagicpodconnect.yml内の「allowedDomains」に指定するようにしてください。設定が済んだら、テスト作成の場合は「起動」ボタン、一括実行の場合は「テストを一括実行」ボタンでそれぞれ端末を起動します。プロキシ環境下での利用MagicPodConnectを利用するマシンからインターネットへ接続する際にプロキシを使う場合、別途設定が必要です。現在は以下の2種類にのみ対応しています。認証なしのプロキシBasic認証を必要とするプロキシプロキシの設定は、他の設定と同様設定ファイルで指定できます。以下はBasic認証を使う場合の例です。認証なしの場合はproxyServerUrlのみを指定してください。<PASSWORD>特定のドメインをプロキシから除外したい場合は、以下のように除外したいドメインをproxyExcludedDomains以下に列挙してください。allowedDomainsと同じく、指定したドメイン以下のサブドメインも対象となります。exclude.example.comMagicPodConnectの詳細オプションMagicPodConnectに指定可能なパラメータの一覧は以下のコマンドで確認できます。-c設定ファイルとしてMagicPodConnectと同階層にあるmagicpodconnect.yml以外のファイルを使いたい場合は、このオプションを使って設定ファイルのパスを指定することができます。