我有一个使用网格运行的测试用例。我想要实现的是执行三个不同的测试用例,所有测试用例都在同一时间单击登录按钮。当我运行纯网格时,浏览器之间总会有延迟。如何使用selenium grid和Java实现这一点?
BR
答案 0 :(得分:0)
我使用锁定和同步函数解决了这个问题。线程几乎单击“登录”按钮
public class Test extends AstractTest {
private static int lock = 0; //Here the lock is initiated once
@DataProvider(name = "Test", parallel = true)
public Object[][] loadInputDataFromExcel() {
return Taf.files().populateExcelDataProvider(getGlobalInputDataFileName("testsConfig"));
}
@Test(description="Simultaneous Login", dataProvider="Test", enabled=true)
public void SimultaneousLogin(Map<String, String> dp) throws InterruptedException {
setupThreadedBrowserDriver(dp.get("browser"));
actionNavigateToPage(dp.get("url"));
LoginPage loginPage = new LoginPage();
loginPage.login(dp.get("PersonalNumber"), "password");
lock++;
// surround the login button with synchronized block
synchronized (this) {
while (lock < 3)
this.wait();
this.notifyAll();
loginPage.loginBtn.clickButton();
}