在Java中使用Selenium运行多个类

时间:2018-06-26 10:16:21

标签: java selenium testng

好的,我是Selenium和Java的新手,并且已经在使用Java中的Selenium进行自动化测试了几周了,我想做的就是创建一个名为Login的类,该类调用Chrome并具有多个类不同的测试,但不在一个文件中。我想知道的是-可能有一个包含例如10个类文件的包,其中一个类将它们全部称为单独的测试,而不是将所有测试都包含在一个长类文件中。我已经读过一些东西,但是我仍然不明白TestNG是否可以实现。我创建了一个Login类,它调用了另一个类,但是我不能放置第三个类并对其进行调用。或者有可能有一个班级叫另一个班级,而那个班级叫另一个班级,等等。如果这个问题已经被提出并回答了,但是我个人找不到关于它的信息,我感到抱歉。如有必要,我可以提供代码。

所以我认为我的问题很不好回答,并且会尝试更好地解释一下: https://imgur.com/a/srwDGML 带圆圈的类包括-Login,AppPublisher,SuperadminDelete 我要运行“登录”并运行“登录”以运行SuperadminDelete,然后运行AppPublisher 可以使用@Test批注在一个类中轻松完成此操作,但是我希望它们是单独的类,并由一个类运行(我们称其为老板或主要类)。关键是每个测试用例都放在单独的类文件中,而不是在一个文件中使用批注来完成。我猜这是通过关键字“扩展”完成的,但是当我尝试运行时,它只能运行2个而不是全部。

1 个答案:

答案 0 :(得分:0)

我想您的意思是将“测试用例”类与“测试”类分开, “测试用例”将处理先决条件解决方法,例如配置,登录等。

我在github项目中有一个基本示例,其中我使用TestNG,Selenium和测试用例类。也许会对您有所帮助:https://github.com/AutomatedOwl/selenium-java-pom-example

关于您发布的代码,请分开使用loginTest和LoginHelper。 loginTest是一种允许您测试某些登录到系统的方案的方法。 LoginHelper应该是您应该创建的一个单独的类,它将包含可用于任何测试的登录方法。像这样:

@Test
void someTest() {

  // Create instance of LoginHelper.
  LoginHelper loginHelper = new LoginHelper(driver);

  // Login to your application.
  loginHelper.loginAsUser();

  // Do the rest of the test here.
}

这样,您的登录测试将如下所示:

@Test
void loginTest() {

  // Create instance of LoginHelper.
  LoginHelper loginHelper = new LoginHelper(driver);

  // Login to your application.
  loginHelper.loginAssertUser();
}