2017-08-16 12 views
0

の各単一のTestNG XMLファイル用ブラウザを起動する方法 例:testng1.xml & testng2.xml私は並列異なるブラウザや同じブラウザでこれらの2つのXMLファイルを実行する必要が私は2つのTestNG XMLファイルを持っているセレン

。このシナリオの達成方法を教えてください。

+1

これらのファイルを追加することはできますか – NarendraR

+0

参照:[Xを行うには?](https://meta.stackoverflow.com/questions/253069/whats-the-appropriate-new-current-close-reason- for-how-do-do-do-x)SOに関する期待は、質問をするユーザーが自分の質問に答えるだけでなく、その研究、コードの試行、結果を共有することです。これは、時間をかけて自分自身を助けようとしていることを示しています。明白な回答を繰り返さないようにしてくれています。そして、より具体的で適切な答えを得ることができます。参照:[ask] – JeffC

答えて

2

testing.xmlファイルでクラスをどのように設定したかによって異なります。 testing.xmlファイルを1つだけ使用しても、同じブラウザまたは別のブラウザでテスト並列を実行することができます。

設定のためには、サンプルファイルの下に使用することができます。

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 

<suite name="Parallel Test" parallel="classes"> 
    <test name="Functional_Test_1"> 
    <parameter name="browser" value="PhantomJS" /> 
    <classes>  
      <class name="com.simpletest.DriverSerup"/> 
    </classes> 
    </test> 
    <test name="Functional_Test_2"> 
     <parameter name="browser" value="chrome" /> 
    <classes>  
     <class name="com.simpletest.DriverSerup"/> 
    </classes> 
    </test>  
</suite> 

そして、これは、セットアップのブラウザはテスト実行することができる方法である:あなたが持っているよう

package com.simpletest; 

import org.testng.annotations.Parameters; 
import org.testng.annotations.Test; 

public class DriverSerup { 

    @BeforeTest 
    @Parameters("browser") 
    public void setUp(String browser) 
    { 

     switch(browser) 
     { 
     case "chrome": 

      // Write the code here for open chrome browser 
      System.out.println("For Browser : " + browser); 
      break; 
     case "PhantomJS": 
      // Write the code here for open PhantomJS browser 
      System.out.println("For Browser : " + browser); 
      break; 
     default : 
      System.out.println("Broweer choice not available");  

     } 
    } 

} 

両方<test>タグにすべてのクラスを言及します自動化するために作成されました。

それとも、2 testing.xmlはその後、設定している場合のように:あなたはスイートを作成する必要が

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Parallel suite 2"> 
    <test name="Functional_Test_2"> 
     <parameter name="browser" value="chrome" /> 
    <classes>  
     <class name="com.simpletest.DriverSerup"/> 
    </classes> 
    </test>  
</suite> 

そしてここ

testing1.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 

<suite name="Parallel suite 1" > 
    <test name="Functional_Test_1"> 
    <parameter name="browser" value="PhantomJS" /> 
    <classes>  
      <class name="com.simpletest.DriverSerup"/> 
    </classes> 
    </test> 
</suite> 

testing2.xmlスイートie combinesuite.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="suite of suites" parallel="classes" thread-count="2" > 
    <suite-files> 
     <suite-file path="testing1.xml" /> 
     <suite-file path="testing2.xml" /> 
    </suite-files> 
</suite> 

注:は、並列処理のためのsuiteタグにparallel属性に言及することを忘れないでください。

+0

私は、どのブラウザを起動するか、どのユーザにログインするか、どのURLをナビゲートするかについて言及できる別個のプロパティファイルがあります。 –

+0

プロパティファイルの設定に基づいて一連のアクションが実行されました。 –

+0

プロパティファイルで私は、ブラウザ=クロムに言及しているので、2つのブラウザで同時に2つのtestng.xmlファイルを実行する必要があります。 –

0

私の場合、testng2.xmlファイルは、すべてのテストがtestng1.xmlファイルで実行された後にのみ起動されます。

以下の例を参照してください。

Testng1.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 

<suite name="Parallel suite 1" > 
    <test name="Functional_Test_1"> 
    <parameter name="browser" value="Chrome" /> 
    <classes>  
     <class name="com.simpletest.sample1"/> 
    </classes> 
    </test> 

    <test name="Functional_Test_2"> 
    <classes>  
     <class name="com.simpletest.sample2"/> 
    </classes> 
    </test> 
</suite> 

Testng2.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 

<suite name="Parallel suite 2" > 
    <test name="Functional_Test_3"> 
    <parameter name="browser" value="Chrome" /> 
    <classes>  
     <class name="com.simpletest.demo1"/> 
    </classes> 
    </test> 

    <test name="Functional_Test_4"> 
    <classes>  
     <class name="com.simpletest.demo2"/> 
    </classes> 
    </test> 
</suite> 

それから私は、私は2つのtestng.xmlファイルを設定し、それを引き起こしたcombinesuite.xmlファイルを作成しました。この場合

は、testng2.xmlファイルのみをファイルが完成しますtestng1.xml後にトリガされます。

この2つのxmlファイルをどのブラウザでも並列に実行する方法を教えてください。

関連する問題