如何通过打开多个 windows 一次使用 Selenium TestNG 执行负载测试
How to Perform load Testing with Selenium TestNG at a time by opening multiple windows
我已经执行了下面的代码来执行负载测试
@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 次没有错误,但是在 other.I 之后有一次需要通过打开多个 windows 来一次执行。
我试过给 threadPoolSize = 5,但由于未创建会话而出现错误。
TestNG 运行ner 将为所有测试方法 运行 创建一个测试 class 实例。 运行并联时也会出现这种逻辑。看起来您的 WebDriver 对象是全局定义的,因此在每次调用 "driver = new ChromeDriver()" 时,它都会覆盖另一个。
我对您的建议是使用 ThreadLocal 对象来定义您的 WebDriver 会话。这样,给定线程中的每个 WebDriver 对象都充当独立的数据集。
有关此主题的更多详细说明,请参阅此 link http://seleniumautomationhelper.blogspot.com/2014/02/initializing-webdriver-object-as-thread.html。
我已经执行了下面的代码来执行负载测试
@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 次没有错误,但是在 other.I 之后有一次需要通过打开多个 windows 来一次执行。 我试过给 threadPoolSize = 5,但由于未创建会话而出现错误。
TestNG 运行ner 将为所有测试方法 运行 创建一个测试 class 实例。 运行并联时也会出现这种逻辑。看起来您的 WebDriver 对象是全局定义的,因此在每次调用 "driver = new ChromeDriver()" 时,它都会覆盖另一个。
我对您的建议是使用 ThreadLocal 对象来定义您的 WebDriver 会话。这样,给定线程中的每个 WebDriver 对象都充当独立的数据集。 有关此主题的更多详细说明,请参阅此 link http://seleniumautomationhelper.blogspot.com/2014/02/initializing-webdriver-object-as-thread.html。