1

テスト ケースは 1 つしかなく、その特定のテスト ケースを 2 つの異なるマシン (Windows と他の Linux) で実行したいと考えています。テストケースを異なるマシンで同時に実行できるように、ノードまたはセレンフレームワークを構成するにはどうすればよいですか。単一のマシンで実行するために、フレームワークで次の変更を行いました。

  DesiredCapabilities cap = new DesiredCapabilities();
  cap.setBrowserName("firefox");
  cap.setPlatform(Platform.ANY);
  driver = new RemoteWebDriver(new URL(nodeURL), cap);
4

2 に答える 2

1

ステップ 1 - Linux 用の 1 つのテストと Windows 用の 1 つのテストを含む 2 つの実行可能な JAR ファイル (私自身のアプローチ) を作成します。おそらく次の行で区別します。

cap.setPlatform(Platform.LINUX);

cap.setPlatform(Platform.WINDOWS);

能力は頭から奪われているので、再確認してください

ステップ 2 - ハブと 2 つのノードを開始する

ステップ 3 - コンピューターから 2 つの JAR を実行します (JAR がハブの場所を構成していると仮定します)。ハブはテストをノードに自動的に割り当てます

さらに質問がある場合は、私に聞いてください ;)

于 2013-07-29T15:06:54.903 に答える
1

TestNGを試すことができると思います。

私のアプローチでは、OS と BROWSER という 2 つのパラメーターがあります。testng.xml を使用すると、次のようなパラメーターを使用してテストスイートを作成できます。

 <?xml version="1.0" encoding="iso-8859-1"?>
   <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
   <suite name="Your_suite" verbose="2" **parallel**="tests" >

   <test name='Your_Test_Name'>
       <parameter name='os' value='**WINDOWS**'/>
       <parameter name='browser' value='CHROME'/>
        <classes>
            <class name='tests.AnyTest'/>
        </classes>
   </test>

   <test name='Your_Test_Name'>
       <parameter name='os' value='**LINUS**'/>
       <parameter name='browser' value='FIREFOX'/>
        <classes>
            <class name='tests.AnyTest'/>
        </classes>
   </test>

  </suite>

したがって、Windows、Linux、macOS、Android、または iPhone でテストを実行できます。最も重要なことは、コードを変更する必要がないことです。

それが役に立てば幸い。

于 2013-07-30T14:08:05.250 に答える