1

私は複数の同様のサイト(同じレイアウト、ちょうど異なるデータ)を持っており、それらのそれぞれはマウスオーバーでドロップダウンメニューを持っています(そしてマウスアウトで消えます)。

私はSelenium2とWebDriverを使用していますが、基本的にマウスオーバーを実行し、ドロップダウンメニューの各リンクが機能することを確認するSeleniumテストケースが1つあります。

私はセレングリッドを使用しているので、ハブといくつかのテストマシンがあります。

テストするサイトがたくさんあるので(数百)、各マシンで複数のサイトに対して並行してテストケースを実行することを考えています。

私の懸念は、一度にアクティブなブラウザーは1つだけであるため、Webドライバーが複数のブラウザーでほぼ同時にAction.moveToElement()を実行しようとすると、問題が発生するのでしょうか。アクティブなブラウザのみがAction.moveToElement()を適切に実行し、他のブラウザは失敗しますか?問題が発生する場合、回避策はありますか?

4

2 に答える 2

1

を使用して試してみJUnitCore.runClasses(ParallelComputer.classes(), SomeClass1.class, SomeClass2.class, SomeClass3.class);ましたが、マシンで 3 つのテストを実行すると、合格したテストの割合が 100% から約 67% に減少しました。良くない=/。

良い点 - Firefox は実際に並行して実行できます。FF インスタンスが互いに遅延しているため、同じことを同時に実行しない場合は、より適切に機能します。失敗のいくつかは Firefox の起動中に発生したため、ウィンドウを閉じたり開いたりする回数を最小限にできる場合は、それを実行してください。それでも、理由もなく失敗することもあります。

節約した時間を実際に使用する場合は、失敗したすべてのテストをログに記録し、最初のラウンドの後にもう一度実行します。今回は一度に 1 つずつ実行します。

于 2012-04-06T02:29:22.887 に答える
0

テストの最終的な目標に応じて、マウス移動のクリックで Action クラスを使用せずに、代わりに WebDriver の findBy-click メソッドまたは Javascript executor メソッドを使用して、これを解決することもできます。複数のウィンドウを同時に実行する場合は、おそらく論争が少なくなるでしょう。Action クラスがマウスの動きを定義するときに、「move to Point」などのネイティブ呼び出しを使用し、あるブラウザーを別のブラウザーの上に重ねる場合、移動ポイントが別のウィンドウによってマスクされる可能性があると思います。 . これについてはよくわかりません。別のアイデアを試してみてください。

于 2013-02-20T17:34:55.360 に答える