セレン:新しい希望

Medium.comの記事の翻訳、 パート1パート2を紹介します。 記事の最初の部分には主にこの投稿ですでに述べられている内容が含まれているため、2番目の部分のみの翻訳を引用します。









重量を減らしてコンテナに移動する



記事の前半では、コードを記述せずにスケーラブルなSeleniumクラスターを構築できる簡単なアプローチについて説明しました。 このパートでは、Seleniumを使用する際のより微妙な問題を見ていきます。







  1. 標準のSelenium Hubを使用して簡単にスケーラブルな作業ノードを作成する方法
  2. コンテナでほとんどのブラウザを起動することが可能であり、必要な理由とその方法
  3. このためのオープンソースツールは何ですか




作業ノード内の内容



前半で説明したすべての新しいツールは、実際にはユーザーのリクエストを実際のSeleniumのハブとノードにリダイレクトするスマートな軽量プロキシです。 少し考えると、疑問が生じます。







  1. ハードウェアリソースを効率的に消費して適切に拡張するために、ハブとノードを整理する方法
  2. 使用するオペレーティングシステム
  3. どのプログラムをインストールする必要がありますか?
  4. モニターなしで作業できますか?


1つの方法は、1つのSeleniumハブと異なるブラウザーの多くのノードでハードウェアを使用することです。 それは合理的に見えますが、本当に不快です:









  1. 言われたように、ロードされたノードの数が多いSeleniumハブの動作は非常に遅くなります。 本当の理由については定かではありませんが、実践はそれを示しています。 悪夢を見たくないのなら、夜にセレニウムの出所を読まないように。 したがって、同じハブで多数のSeleniumノードを使用することはできません。 1つのハブと少数のノードのみを使用することに変わりはありません。 鉄を効果的に使用するには、ハブごとのコアの総数を減らす必要があります。これは、クラウドに移行する正当な理由です。 たとえば、私たちの作業グリッドは、2つのコアと4 GBのメモリを備えた小さな仮想マシンを長い間使用しています。
  2. 1つのブラウザーの異なるバージョンを簡単な方法で(たとえば、パッケージから)インストールする方法は不明です。
  3. 1つのバージョンで使用可能なブラウザーの総数を考慮することがいかに簡単かは明らかではありません。
  4. Seleniumノードの異なるバージョンは、ブラウザーの異なるバージョンと互換性があります。 新しいSeleniumノードは古いブラウザーをサポートしない場合があります。


ハブごとに同じ数のノードを持つ最も簡単な方法は、同じ仮想マシン内で実行することです。 各ブラウザーバージョンが個別の仮想マシンである場合、使用可能なブラウザーの総数をカウントすることは、小学校のタスクになります。 互換性のあるバージョンのノードとブラウザーを含む仮想マシンを簡単に追加および削除できます。 Seleniumクラスターを、ブラウザーの各バージョンが常に利用可能な量でクラウドにインストールする場合、このアプローチをお勧めします。









すべてが機能するように、Seleniumハブとノード以外に仮想マシン内に他に何がありますか?










All Articles