Добрый день, столкнулся с такой проблемой:
Есть ряд тестов, тест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() {
System.out.println("Started: test1 in " + ((RemoteWebDriver) driver).getCapabilities().getBrowserName());
driver.get(“http://ya.ru”);System.out.println("Finished: test1 " + ((RemoteWebDriver) driver).getCapabilities().getBrowserName());;
}@Test(testName = “Test_ff”)
public void test2() {
System.out.println("Started: test2 in " + ((RemoteWebDriver) driver).getCapabilities().getBrowserName());
driver.get(“http://google.ru”);
System.out.println("Finished: test2 in " + ((RemoteWebDriver) driver).getCapabilities().getBrowserName());
}@Test(groups = “FFonly”)
public void test3() {
System.out.println("Started: test3 in " + ((RemoteWebDriver) driver).getCapabilities().getBrowserName());
driver.get(“http://mail.ru”);
System.out.println("Finished: test3 in " + ((RemoteWebDriver) driver).getCapabilities().getBrowserName());
}@Test
public void test4() {
System.out.println("Started: test4 in " + ((RemoteWebDriver) driver).getCapabilities().getBrowserName());
driver.get(“http://gismeteo.ru/”);
System.out.println("Finished: test4 in " + ((RemoteWebDriver) driver).getCapabilities().getBrowserName());
}@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 браузеров)
Как мне сделать так, чтобы часть тестов выполнялась только в одном браузере, а часть только в другом?
Но при этом, они по-прежнему проходили параллельно
Заранее спасибо :-)