0

ここで説明するように、セレングリッドを実行しています。
ハブがあり、1つのノードが1つの仮想マシンで実行され、他のノードが他の仮想マシンで実行されています。

コンソールに移動するhttp://hub:4444/grid/と、ノードと構成を確認できますが、多くの場合、次のことを行う必要があります。

  • グリッド全体を再起動します
  • ノードを再起動します
  • ノードを追加する
  • ノードを削除します

現時点では、すべてのノードにログを記録し、手動で再起動/変更することでこれを行っています。これは、特にグリッド全体を再起動する必要がある場合に、非常に時間がかかります。

私の質問は、マシンを定義するソフトウェアがあり、これらの変更をすばやく行うことができるかどうかです。グリッド操作/構成ソフトウェアのようなもの、またはこれらのシナリオで時間を節約するいくつかのベストプラクティスはありますか?

4

3 に答える 3

1

Amazon AWS について調査したり、投資したりすることもできます。

Selenium ハブ ポート (4444) が公開されている場合、AWS API を使用して、起動時にホストを使用するための起動バッチ ファイルを持つインスタンスを起動できます。java -jar server.jar -role node -hub http:hub:4444/grid/register

これにより、X 個のインスタンス (たとえば 1000 個) を起動して、各マシンで 1 つのテストを実行することもできます。自動回帰スイート全体を 1 時間以内に実行できる可能性があります。

堅実なシステムが整ったら、コマンドライン (またはテストの実行) を介してインスタンスを起動し、構成なしで気まぐれにインスタンスをシャットダウンできます。

Selenium / Amazon
Amazon AWS
グリッドのセットアップ

追加マテリアル
Selenium グリッド EC2 AMI

于 2012-12-26T17:52:35.393 に答える
1

私たちは一年前に同じ問題を抱えていました。以前にSOで似たような質問をしました。Selenium Grid を維持するには? . Selenium Grid 2.0 は、これらの機能を統合するいくつかの方法を提供します。

しかし、私の組織は別のものを実装しました。グリッドのメンテナンス用にいくつかの UI 画面を作成しました。手順は次のようなものでした:

  1. データベース テーブル内の VM のすべての IP アドレスと DNS を取得する
  2. ハブと RC VM 間のマッピングを作成する
  3. すべての VM の起動時に小さな Java プログラムを配置します。このプログラムは、DB を検索して、接続先のハブと、接続に使用するブラウザー構成を見つけます。
  4. ハブ間で VM を再割り当てするための UI を作成します。UI からの割り当てによって VM が再起動され、起動スクリプトがトリガーされます。

上記のソリューションを構築するには、ある程度の時間と労力がかかりますが、1 年使用して感じたことは価値があります。

于 2013-01-08T02:24:07.840 に答える
0

Selenium Grid はテスト インフラストラクチャですが、このインフラストラクチャを管理するには、その上にレイヤーが必要なようです。

Docker を使用してグリッドを管理することをお勧めします。従来の VM セットアップよりも Docker を使用することには、いくつかの大きな利点があります。

  1. Docker コンテナは VM よりも軽量です。心配するノードごとのオーバーヘッドが少なくなります。

  2. Docker には、グリッドをすばやく作成し、ノードをスケールアップまたはスケールダウンし、グリッド全体をすばやく再起動するための方法が多数組み込まれています。

  3. Docker コンテナはすべて 1 台のマシンで実行できるため、中央の制御ポイントがあります。トラブルシューティングやパフォーマンス メンテナンスのために各 VM に個別にアクセスする必要はもうありません。

例をご覧になりたい場合は、私が最近会社でこれを行い、それについてここに書いています。

http://www.conductor.com/nightlight/running-selenium-grid-using-docker-compose/

于 2015-04-07T15:13:30.250 に答える