Как выполнить нагрузочное тестирование с Selenium TestNG одновременно, открыв несколько окон - PullRequest
0 голосов
/ 27 июня 2018

Я выполнил приведенный ниже код для выполнения нагрузочного теста

 @Test(invocationCount = 5, threadPoolSize = 1)
 public void GmailLogin() throws InterruptedException {

 System.setProperty("webdriver.chrome.driver", "D:\\CIPL0564\\D 
Drive\\Software\\chromedriver_win32\\chromedriver.exe");
 driver = new ChromeDriver();
 driver.manage().window().maximize();
driver.get("https://tst-oec-ebooking.azurewebsites.net/");
driver.manage().timeouts().implicitlyWait(6000, TimeUnit.SECONDS);
driver.findElement(By.xpath("//*[@id=\"Email\"]")).sendKeys("mad@dayrep.com");
driver.manage().timeouts().implicitlyWait(6000, TimeUnit.SECONDS);
driver.findElement(By.xpath("//*[@id=\"Password\"]")).sendKeys("Pass@123");
driver.findElement(By.xpath("//*[@id=\"login_submit\"]")).click();
Thread.sleep(1500);
driver.manage().timeouts().implicitlyWait(5000, TimeUnit.SECONDS);
driver.quit();

}

Выполнено 5 раз без ошибок, но одна за другой. Мне нужно выполнить это одновременно, открыв несколько окон. Я попытался, указав threadPoolSize = 5, но я получил ошибку, поскольку сеанс не создан.

1 Ответ

0 голосов
/ 27 июня 2018

RunN TestNG создаст только один экземпляр класса теста для всех запущенных методов тестирования. Эта логика также возникает при параллельной работе. Кажется, что ваш объект WebDriver определен глобально, поэтому при каждом вызове, когда вы вызываете «driver = new ChromeDriver ()», он переопределяет другой.

Мой совет для вас - использовать объект ThreadLocal для определения ваших сеансов WebDriver. Таким образом, каждый объект WebDriver в данном потоке действует как независимый набор данных. См. Эту ссылку http://seleniumautomationhelper.blogspot.com/2014/02/initializing-webdriver-object-as-thread.html для более подробного объяснения этой темы.

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