Я очень новичок, используя TestNG и Java программирование в целом, и у меня есть вопрос относительно запуска тестовых случаев с провайдером данных в параллельно ,
чтобы запускать тестовые случаи поставщика данных на нескольких вкладках в одном окне chrome вместо множества windows, я использовал селен 4, который позволяет открывать и переключаться на новую вкладку, используя следующий код
driver.switchTo().newWindow(WindowType.TAB);
Итак, я написал этот код, который успешно запускает тестовые случаи в режиме последовательности, но когда я запускаю его в параллельном режиме, он реализует каждую строку отдельно, прежде чем перейти к другой строке,
, следовательно, он открывает 3 вкладки одновременно, затем он открывает ссылку на последней вкладке 3 раза и, наконец, пытается выполнить 3 поиска одновременно, и поэтому не может их выполнить.
Я нахожу в результате testNG создает единый веб-драйвер для управления всеми вкладками, что логично для того, чтобы вызвать сбой тестов в параллельном режиме.
https://imgur.com/fWHY5pt* 101 9 *
Это код:
package com.mycompany.app;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WindowType;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class testTab {
WebDriver driver;
@BeforeTest
public void beforeTest() {
System.setProperty("webdriver.chrome.driver", "C:\\Browsers drivers\\chromedriver.exe");
driver = new ChromeDriver();
}
@BeforeMethod
public void newTab() {
driver.switchTo().newWindow(WindowType.TAB);
}
@Test(dataProvider = "getData")
public void testAmazon1(String search_word) {
driver.get("https://www.google.com/");
driver.findElement(By.xpath("//input[@name='q']")).sendKeys(search_word + (Keys.RETURN));
}
@DataProvider(parallel=true)
public Object[][] getData() {
Object[][] data = new Object[3][1];
data[0][0] = "bihi";
data[1][0] = "boutfounast";
data[2][0] = "hmad l9rran";
return data;
}
}
Это XML файл
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="My Sample Suite" parallel="methods" thread-count="3">
<test name="Amazon test">
<classes>
<class name="com.mycompany.app.testTab"></class>
</classes>
</test>
</suite>
Есть ли способ создать веб-драйвер для каждого теста? Прошу прощения за неточность и спасибо за ваши ответы.