我是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
}