mabl Linkでのlocalhostのテスト

localhostのプロキシ処理に関するブラウザーの制限

mabl Link機能は、Link Agentが実行されているホストからアクセスできるURLに対してテストを行えるように設計されています。基本的に、mabl Linkは、mablクラウドで実行中のブラウザーからLink Agentを経由してテスト環境に至るトラフィックをプロキシ処理することで動作します。しかし、ほとんどのブラウザーでは、セキュリティ上の理由から、このタイプのプロキシ設定で使用されるURLが制限されています。

🚧

ChromeおよびFirefoxでの新しい制限

ChromeやFirefoxでこれまで使用できていたlocalhost URLに対するmabl Linkのテストが、現在は使用できなくなっていることにお気付きかもしれません。これは、ChromeFirefoxで、すべてのリンクローカルアドレス (localhostや127.0.0.1など) への接続がmabl Linkを介してプロキシ処理されないようにする制限が追加されたためです。

ChromeとFirefoxで最近追加された制限は、Safariではすでに実施されていたものです。

現在、mablでサポートされているブラウザーの中で、以下に示すhostsファイルの回避策を用いずに、mabl Linkを介してlocalhost URLをプロキシ処理できるものは存在しません。

📘

Link AgentがDockerで実行されている場合のlocalhostのテスト

Link AgentがDockerで実行されている場合、Dockerコンテナー内で実行中のLink AgentがDockerホストに接続できるようにするには、dockerコマンドに--net="host"フラグを追加する必要があります。例:

$ docker run --net="host" mablhq/link-agent --api-key <your-api-key> --name <agent-name>

これは、localhostおよび/etc/hostsエントリを介してlocalhostのエイリアスとなっているホスト名に対してテストを行う場合に適用されます。
--net="host" フラグが機能するのは、LinuxバージョンのDockerのみです。MacOSやWindowsでは機能しません。詳細については、#1#2#3を参照してください。

localhostで実行中のサービスをテストするための推奨回避策

回避策を用いることで、localhostでリッスンしているサービスに対してテストを実行できるようにすることができます。この回避策を用いるには、Link Agentが実行されているシステム (これはテストするサービスが実行されているホストでもあります) のhostsファイルにlocalhostのエイリアスを追加する必要があります。エイリアスではlocalhostと同じIPアドレスをポイントし、link-hostのような固有の名前を付けます。

LinuxおよびMacOSの場合、編集するファイルは/etc/hostsです。次の例のように、localhostと同じ行にエイリアスを追加します。

127.0.0.1	localhost link-host

Windowsシステムの場合、このファイルはC:\Windows\System32\Drivers\etc\hostsにあります。変更する内容は同じです。

エイリアスの追加が済んだら、このホスト名を使用するようにテストを更新します。たとえば、元のテストでhttp://localhost:8080をポイントしていて、追加したエイリアスの名前がlink-hostである場合は、http://link-host:8080をポイントするようにテストを更新します。