繁体   English   中英

使用Testng作为套件运行多个Selenium Java测试用例

[英]Run multiple selenium java test cases as suite with Testng

大家好,我已经用WebDriver编写了多个测试用例,以使用WebDriver执行以下任务

  1. 登录我的门户
  2. 新增群组
  3. 添加位置

以下是我在门户网站上执行此任务的硒代码

基本硒类

public class BaseSeleniumTest extends SeleneseTestBase {
    protected static WebDriver driver;
    @BeforeSuite
    public static void firefoxSetUp() throws MalformedURLException {
        driver = new FirefoxDriver();
        driver.manage().window().maximize();
    }

    @AfterSuite
    public static void closeFirefox(){
       driver.quit();
    }
}//End BaseSeleniumTest Class.

登录测试用例

public class LogInTest extends BaseSeleniumTest {
    LogInPage page;
    public static final String BASE_URL = "http://www.mywebsite.com";

    @BeforeMethod
    public void beforeMethod() {
        page = PageFactory.initElements(driver, LogInPage.class);
        page.openPage(BASE_URL);
    }

    @Test(dataProvider="loginData",groups="loginGroup")
    public void logIn(String email,String password) {
        page.logInAs(email, password);
    }

    @DataProvider(name = "loginData")
    public Object[][] getData() {
        return new Object[][] { { "username", "password" } };
    }
}//End of LogInTest Class.

添加组测试用例

public class AddGroupTest extends BaseSeleniumTest {
    AddGroupPage addGroupPage;
      @BeforeMethod
      public void openAddGroupPage() {
          addGroupPage = PageFactory.initElements(driver, AddGroupPage.class);
          addGroupPage.openPage();
      }

    @Test(dataProvider = "getCSVData",dataProviderClass=AddGroupsDataProvider.class,dependsOnGroups={"loginGroup"},groups="addGroup")
    public void AddGroup(String groupName,String displayName,String description) {
            addGroupPage.addGroup(groupName, displayName, description);
            driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    }
}//End of AddGroupTest Class.

添加位置测试用例

public class AddLocationTest extends BaseSeleniumTest {
    AddLocationPage addLocationPage;
    @BeforeMethod
      public void openAddLocationPage() {
          addLocationPage = PageFactory.initElements(driver, AddLocationPage.class);
          addLocationPage.openPage();
     }

    @Test(dataProvider = "getCSVData", dataProviderClass = AddLocationDataProvider.class, dependsOnGroups = { "loginGroup" }, groups = "addLocation")
    public void addLocation(String locationName, String displayName,
            String description, String groups) {
        addLocationPage.addLocation(locationName, displayName, description,
                groups.split(","));
    }
}  

当我独立运行此脚本时,它们现在可以完美运行,我想将此脚本作为套件运行,但我不知道从哪里开始。 由于我的添加位置测试用例依赖于添加组,而添加组测试用例则依赖于登录测试用例。

以下是我的问题

  1. 我该怎么办? 将此测试用例作为套件运行。(此后,我必须通过jar文件运行该套件)
  2. 我如何指定它们之间的依赖关系?

提前致谢...

您的问题会导致基于意见的答案,通常对于SO来说是不合时宜的 考虑考虑通过软件质量保证和测试堆栈交换

我将尝试给您至少一些答案。 你应该:

  1. 考虑选择测试框架。 诸如TestNG之类的东西可以让您指定依赖项
  2. 考虑您的测试体系结构。 您的某些“测试”作为单独的方法可能会更好,然后可以从测试中调用它们。 考虑使用PageObject模型

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM