0

これを投稿する前に、私はこのサイトとグーグルで多くのことをチェックして、私の問題を解決しました. 主に Symfony2 フレームワークを使用して PHP でコーディングされている Web アプリケーションをテストしています。

機能テストを行うために Selenium を使用しています。今のところやりたいことは、Selenium Grid を使用してローカル マシンで機能テストを並行して実行することだけです。私がやっていることは、Selenium IDE でテストを記録し、テスト ケースを phpunit 形式でエクスポートすることです。セレン グリッドを使用しようとしましたが、私の phpunit テストはまだ順番に実行されています。

私がしたこと:

1) java -jar selenium-server-standalone-2.24.1.jar -role ハブ

2) java -jar selenium-server-standalone-2.24.1.jar -role node -hub http://localhost:4444/grid/register -browser "browserName=firefox,maxInstances=2,maxSession=2"

3) アリ

私のbuild.xmlにはphpunitターゲットがあります:

<target name="phpunit" description="Run unit tests">
  <exec executable="phpunit" failonerror="true"/>
</target>

私の phpunit.xml には、コードのこの部分が存在します。

<testsuites>
    <testsuite name="LoginSuite">
       <file suffix="Test.php">../../src/Tests/FunctionalTests/LoginSuite_testLoginTest.php</file>
    </testsuite>
</testsuites>

そして、私の LoginSuite_testLoginTest.php は次のようになります。

<?php

namespace Tests\FunctionalTests;
use Tests\FunctionalTests\SetUpTest;

class LoginSuite_testLoginTest extends SetUpTest
{
  public function testLogin()
  {
    $this->open("/home");
    $this->click("link=Login");
    $this->type("id=username", "test.user@gmail.com");
    $this->type("id=password", "test");
    $this->click("id=_submit");
    $this->waitForPageToLoad("30000");
  }


  public function testLogin2()
  {
    $this->open("/home");
    $this->click("link=Login");
    $this->type("id=username", "test.user2@gmail.com");
    $this->type("id=password", "test");
    $this->click("id=_submit");
    $this->waitForPageToLoad("30000");
  }
}
?>

ant コマンドを起動する 3 番目のステップで、jetty エラー 500 が発生します /selenium-server/driver/ へのアクセスに問題があります

代わりに:

java -jar selenium-server-standalone-2.24.1.jar -role node -hub http://localhost:4444  /grid/register -browser "browserName=firefox,maxInstances=2,maxSession=2"

-browser 情報なしで同じコマンドを実行すると、テストが起動されますが、並列ではありません...とても奇妙です。

phpunit テストを並行して起動するには、独自のスクリプトを作成する必要があることがわかりました。この場合、セレングリッドが必要ですか?? 私は非常に混乱しています。ご協力いただきありがとうございます。

4

2 に答える 2

0

phpunitコマンドラインhttps://github.com/siivonen/parallel-phpunitの並列ラッパーがあるため、記述する必要はありません。Selenium Hub(いくつかのノードが接続されている)をどこかで実行する必要があります。次に、その場所を指すテストを実行すると、ハブは呼び出しを解放ノードにプロキシします。

ハブに接続された4つのノードでparallel-phpunitとSeleniumGridを使用します。CIは、3分間で30分間のSeleniumテストを実行します。

于 2012-11-06T13:39:31.347 に答える
0

さまざまな問題が発生する可能性があります。1 つは、事前に記録された手順を実行しているときに、「ブラウザー」引数に seleniumProtocol=Selenium を追加する必要があることです。これは、デフォルトでは Web ドライバーになるためです。

于 2015-04-04T07:26:59.293 に答える