Как запустить один метод @Test параллельно, используя 1 поставщик данных, определенный в том же классе Testng - PullRequest
0 голосов
/ 07 июня 2019

У меня есть метод Test, который запускает браузер, вводит текст и выполняет оставшиеся операции. Теперь я хочу запустить один и тот же метод Test в нескольких экземплярах браузера (как Chrome, так и Chrome, Mozilla). Для этого я передаю имя и текст браузера для ввода в каждый браузер в DataProvider.

Я попытался parallel=true для провайдера данных, но он не работает, как ожидалось. Он открывает несколько браузеров, но оба данные от поставщика данных вводятся только в 1 браузер, в то время как другие остаются бездействующими.

public class test1 {

    String communityURL = "https://example.com";

    @DataProvider(name = "data", parallel = true)
    public Object[][] data() {
        return new Object[][] { new Object[] { "Chrome", "data1" }, new Object[] { "Chrome", "data2" }

        };
    }

    @Test(dataProvider = "data")
    public void runTest(String browser, String data) throws IOException, InterruptedException {
        WebDriver driver;
        Properties prop = new Properties();
        FileInputStream fis = new FileInputStream(System.getProperty("user.dir") + "\\locators.properties");
        prop.load(fis);
        System.setProperty("webdriver.chrome.driver",
                "C:\\Users\\xxxx\\Downloads\\chromedriver_win32\\chromedriver.exe");
        driver = new ChromeDriver();

        driver.manage().timeouts().implicitlyWait(10000, TimeUnit.SECONDS);
        driver.get(communityURL);
        driver.findElement(By.xpath(prop.getProperty("xxx"))).sendKeys(data);
        Thread.sleep(5000);
        driver.findElement(By.xpath(prop.getProperty("xxx"))).sendKeys(data);
        driver.findElement(By.xpath(prop.getProperty("xxxx"))).click();
        driver.findElement(By.xpath(prop.getProperty("xxx"))).click();
        Thread.sleep(3000);
    }
}

Мне нужно открыть несколько сеансов браузеров и каждый браузер, чтобы получить каждое значение от поставщика данных, например: Session1: Chrome-data1 & Session2: Chrome-data2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...