0

私は次のようなテストスクリプトを持っています。私が知る必要があるのは、異なるブラウザで同時に、異なるテストデータで実行する方法です。

まさに私が欲しいのは、FirefoxのテストケースとInternet Explorerのテストケースの並列インスタンスが欲しいのですが、やはり別のデータを使用したいのです。

例:-Firefoxと「username1」および「password1」

-InternetExplorerの「username2」および「password2」

これは、異なるブラウザで並行して異なるユーザー名とパスワードを使用してGMAILにログインするようなものですが、順番には行われません。

テストケース :

public class Gmail 
{
    private WebDriver driver;

    @BeforeClass
    public void setup()
    {
        driver = new FirefoxDriver();
        driver.get("http://www.gmail.com");
    }

    @Test
    public void search()
    {
        WebElement element = driver.findElement(By.name("username"));
        element.sendKeys("username");
        WebElement element2 = driver.findElement(By.name("pass"));
        element2.sendKeys("password");
        element2.submit();
    }

    @Test
    public void compose()
    {
        driver.findElement(By.name("compose")).click();
    }

    @AfterClass
    public void exit()
    {
        driver.quit();
    }
}

私のプロジェクトに役立つ提案をお願いします。

4

3 に答える 3

1

これを行う手順:

  1. testNG.xmlのパラメーターとして必要な値を渡します。この場合、browserName、userName、およびpasswordが必要です。

  2. 異なるuserNameとpasswordパラメーターを使用してtestNG.xmlに2つの別個の「test」タグを作成します

       <test name="Test on FF">
        <parameter name="browserName" value="Firefox" />
        <parameter name="userName" value="user1" />
        <parameter name="password" value="pass1" />
       <classes>
          <class>name="Gmail"</class>
         </classes>
       </test>
       <test name="Test on IE">
        <parameter name="browserName" value="IE" />
        <parameter name="userName" value="user2" />
        <parameter name="password" value="pass2" />
         <classes>
          <class>name="Gmail"</class>
         </classes>
       </test>
    
  3. 「スイート」タグを次のように定義します<suite thread-count="2" name="Suite" parallel="tests">

  4. @Testメソッドでそれらにアクセスして使用し、@Parameters ({"browserName","userName","password"})対応するドライバーをインスタンス化します
于 2012-12-14T05:23:38.677 に答える
0

膨大なデータセットがある場合は、それを外部化できます。Excel、yaml、または使いやすい形式に移動します。これを@DataProviderメソッドへの入力として使用します。@DataProviderで、選択した形式からすべての値を読み取り、戻ります。testmethodsで、dataproviderメソッドを指定します。データプロバイダーの詳細については、こちらをご覧ください。パラメータ値にExcelシートを入れてください。parallelをtrueに設定することにより、dataproviderを並列に実行できます。ドライバーインスタンスがスレッドローカル値であるか、メソッドごとにインスタンス化されていることを確認してください。インスタンス化されていない場合、並列実行によってエラーが発生する可能性があります。

于 2012-12-14T08:49:45.263 に答える
0

http://www.ufthelp.com/2014/12/Parallel-execution-tests-in-testNG-eclipse.htmlで動作するコードを使用して解決策を見つけました

XMLファイルは次のようになります

<suite name="Suite" parallel="tests" thread-count="2">
 <test name="Run in Firefox">
  <parameter name="browser" value="firefox"></parameter>
  <parameter name="userName" value="Test1"></parameter>
  <parameter name="Password" value="Pwd1"></parameter>
  <classes>
   <class name="srcTest.ParallelTesting"/>
  </classes>
 </test>
 <test name="Run in chrome">
  <parameter name="browser" value="chrome"></parameter>
  <parameter name="userName" value="Test2"></parameter>
  <parameter name="Password" value="Pwd2"></parameter>
  <classes>
   <class name="srcTest.ParallelTesting"/>
  </classes>
 </test>
</suite> 

Javaコード: -

 @Test
 @Parameters({"userName","Password"})
 public void login(String userName,String Password){

   --Your Code--
 }

 @BeforeClass<br/>
 @Parameters({"browser"})
 public void BeforeClass(String browser) throws Exception {

  --Your code--

}
于 2014-12-18T03:22:43.650 に答える