如何在testNG并行执行中重用驱动程序



我是TestNG的新手。我能够用BeforeMethod和AfterMethod类进行并行测试,我分别打开新驱动程序并关闭相同的驱动程序。

下面是我的代码:
@BeforeMethod
public void run() {
driver.get().get(url);
driver.get().manage().window().maximize();
driver.get().manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
Demo_Page objDemoPage = new Demo_Page(driver.get(), prop, date);
objDemoPage.admin_demo("local");
Home_page objHomePage = new Home_page(driver.get(), prop, date);
objHomePage.pwd_change_later();
}
public WebDriver getDriver() {
return driver.get();
}
@AfterMethod
public void tearDown() {
getDriver().quit();
}
@Test(priority = 1)
public void Testcase1(String switch_browser, String domain_drop, String mode, String 
domain, String first_name,
String last_name, String login_name, String emp_id, String pwd, String 
conf_pwd, String simp_name,
String case_type, String manage_tab, String create_user, String account_tab, 
String OU, String button_id,
String protect) {
WebDriver driver = getDriver();
XXX
XXX
XXX
}
同样,我有N个@Test方法。我的testNG看起来像
<suite name="Suite" parallel="tests" thread-count="2">
<listeners>
<listener class-name="listeners3.Proj_Listener" />
</listeners>

后面跟着Test标签。

在这里,每次启动驱动程序并运行相应的测试,然后关闭驱动程序。但是,我希望浏览器的线程计数时间是第一次启动,剩余的测试用例在相同的浏览器上运行(相同的线程,无论哪个可用),而不是关闭并再次启动。

有人能帮忙吗?

将下面的方法与注释一起添加到测试类中。

@BeforeClass  
public void before_class()  
{  
System.out.println("This method is executed before Class1 and class1 has your above test methods");  
//Declare the driver at the class level : public WebDriver driver;
driver = new XXXDriver();
//now this object will be available to you across all the tests in the class
}  

相关内容