我正在使用TestNG框架并自动化我的应用程序。所以我的测试用例的结构如下。所有测试用例都是用这一种方法编写的。我一步一步地尝试为不同的测试用例编写不同的方法,但每当webdriver转到该方法时,它将打开一个带有该URL的新浏览器窗口。我测试用例方法使用第一次打开的相同URL。请让我知道如何在单个类中编写测试用例,以及如何在测试中编写测试套件。如果我正在使用测试框架;我是否也应该使用任何其他框架。
答案 0 :(得分:1)
您可以在同一个包或不同的包中创建一个如下所示的公共驱动程序类(如果您希望将其保持独立)。使用此类,您可以创建一个驱动程序实例,通过该实例,您可以运行所有测试用例而无需打开一个新窗口
public class Driver {
public static WebDriver driver=null;
public static WebDriver startdriver(String browser){
if(browser.equalsIgnoreCase("Chrome")){
System.setProperty("webdriver.chrome.driver", "/home/ss4u/Desktop/Vignesh/jars/chromedriver");
ChromeOptions options = new ChromeOptions();
options.addArguments("--test-type");
driver=new ChromeDriver(options);
}else if(browser.equals("Firefox")){
driver=new FirefoxDriver();
}
return driver;
}
}
如果您打算在同一个类中编写测试用例,请使用@BeforeTest注释并创建驱动程序实例
@BeforeTest
public static void Openbrowser() {
Driver.startdriver("chrome");
}
您必须使用类名
来使用创建的驱动程序实例前:
Driver.driver.get("http://www.google.com");
完成测试后,您可以使用@AfterTest注释关闭驱动程序
@AfterTest
public static void closebrowser() {
Driver.driver.quit();
}
@BeforeTest:在调用当前类的第一个测试方法之前,注释方法只运行一次。
@AfterTest:在当前类中的所有测试方法都运行后,带注释的方法只运行一次。
如果您想创建更多类并将其作为testng测试套件运行,请使用以下注释
@BeforeSuite:在此套件中的所有测试运行之前,带注释的方法只运行一次。
@AfterSuite:在此套件中的所有测试运行后,带注释的方法只运行一次。
如果您希望将其作为testng套件运行,则必须创建一个testng.xml文件,您必须在其中定义所有类。请访问以下链接以获取testng xml文档