Есть ряд тестов, тест1, тест2, тест3, тест4, которые являются методами одного класса с аннотацией @Test
Тесты запускаются с помощью TestNG и выполняюстя параллельно сразу в 2 браузерах
Но как мне сделать запуск тестов так, чтобы (к примеру) два из них запускались в первом браузере, а два другие во втором.
Пробовал через следующие 3 вещи:
package tests; import java.sql.SQLException; import org.apache.xpath.operations.Equals; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.annotations.AfterTest; import org.testng.annotations.BeforeTest; import org.testng.annotations.Parameters; import org.testng.annotations.Test; public class NewTest { WebDriver driver; @BeforeTest @Parameters("browser") public void openBroswer(String browser){ if(browser.equalsIgnoreCase("FF")) { System.out.println("Firefox driver would be used"); driver = new FirefoxDriver(); } else if (browser.equalsIgnoreCase("IE")) { System.out.println("Ie webdriver would be used"); System.setProperty("webdriver.ie.driver", "./IEDriverServer.exe"); driver = new InternetExplorerDriver(); } } @Test(parameters = "FF") public void test1() { driver.get("http://ya.ru"); } @Test(testName = "Test_ff") public void test2() { driver.get("http://google.ru"); } @Test(groups = "FFonly") public void test3() { driver.get("http://mail.ru"); } @Test public void test4() { driver.get("http://gismeteo.ru/"); } @AfterTest public void CleanUp() { driver.quit(); } }
И к нему XML:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite thread-count="2" name="Suite" parallel="tests"> <test name="Test_ie"> <parameter name="browser" value="IE"></parameter> <classes> <class name="tests.NewTest"/> </classes> </test> <!-- Test_ie --> <test name="Test_ff"> <groups> <include name="FFonly"/> <parameter name="browser" value="FF"></parameter> <classes> <class name="tests.NewTest"/> </classes> </groups> </test> <!-- Test_ff --> </suite> <!-- Suite -->
Использовал parameters, testName, gropus - не помогло.
В результате, я в любом случае наблюдаю выполнение 8 тестов (4 теста в каждом из 2 браузеров)
Как мне сделать так, чтобы часть тестов выполнялась только в одном браузере, а часть только в другом?
Но при этом, они по-прежнему проходили параллельно
Заранее спасибо :-)