如何在TestNG中使用一个类的方法到另一个类

时间:2014-03-16 04:32:19

标签: java eclipse webdriver testng

我正在使用webdriver和eclipse与testNG。

我正在自动化网络以进行健全性检查。我在Web应用程序中有许多模块,如A,B,C等。 我为A创建了一个类,它也涵盖了所有子模块。同样,对于B和C,我有不同的类。我有一个A类的登录方法,我也需要B和C,因为所有这些类都是独立的,我必须为scrtach编写每个类的代码。

有没有办法在B和C中使用A中的Login()方法?

我的方法看起来像这样..

  Class A
   {

   @Test(priority = 0, Description = "Login")

   Public void Login()
   {
     //some code
   }

感谢。

1 个答案:

答案 0 :(得分:0)

这个问题与网络驱动程序没有多大关系 您应该做的是要在多个类上执行的操作是相同的,应该在包含常规操作的Base类中获取,并且此Base类可以扩展到您的其他子类,如A,B,C,并且所有将拥有您的基类功能。

在Base类中,您还可以在所有测试开始之前进行设置配置,并在测试完成后关闭您的驱动程序/流,即您的测试套件,以便您在每个测试套件中执行此操作

示例代码

class BaseTest{
    WebDriver driver;
    @BeforeSuite
    public void setupTest(){
        driver = new FirefoxDriver();
    }

    @AfterSuite
    public void finishTest(){
        driver.quit();
    }

    public void navigateToMenu(String menu){
        WebElement element = driver.findElement(By.xpath("//XPATH_TO_MENU_WHERE=" + menu));
        //Here menu is something will be replaced with navbar menu name, just an example of what you can do using BaseTest class
    }
}

希望这可以让您了解应该采用的方法。