2016-08-24 11 views
4

DockerとSelenium Gridで自動テストプラットフォームをセットアップしようとしています。 下の図では、私が使用している構造を見ることができます。 トップには、Compute Engineで動作するubuntuサーバーがあります。 左側には、ubuntu 14.04を実行しているドッカーのコンテナがあります。 コンテナは、Google App Engineを使用してlocalhost:8080でプロジェクトを実行します。右側に は、2つのノードがaswellセレンハブへとドッキングウィンドウにホストからそこポート・フォワーディングされるPHPUnit Dockerローカルホスト上でSeleniumテストが失敗し、パブリックIPを使用してパスします

Selenium Setup

ポート4444上で実行されているとセレンのハブです。それぞれ32772および32768にあります。

私のSeleniumテストを実行すると、それらをハブに送信します。ハブはドッキングステーションのローカルホスト上でテストを実行します。 私の問題は、172.17.0.2:8080でテストを実行するようにハブに指示すると、スタートアップ画面が開きますが、フォームは送信できません。 フォームを送信すると、テキスト領域が消去されます。ページが何らかの方法でリフレッシュされるように。奇妙なことは、このxx.xx.xx.xx:32772のように、ホストの外部IPとドッキングステーションのポートを使用するようにハブに指示すると動作します。 それはすべての機能を持っています。しかし、パフォーマンスと自動化の理由から、私は内部のIPアドレスで実行したいと思います。

ご協力いただければ幸いです。

Tijn

+0

あなたのコンテナポートをホストのポートにどのようにバインドしましたか? –

+0

私は両方の方法を試してきました。これは私の選択したポート「docker run -p 8888:8080 myimage」にマッピングすることで実現しましたが、このシナリオでは自動ポート転送が行われます。したがって、-p 8080タグだけです。 – Tijn

+0

コンテンツをどのように配信しますか?あなたはnginxを使用していますか?そうだとすれば 。設定は何ですか? –

答えて

1

問題は、私の.envファイルにありました。セッションドメインは、内部IPアドレスの代わりにホストipに設定されていました。変更することで、ウェブサイトはうまくいくはずでした。