Как запустить несколько тестов пользовательского интерфейса в одном браузере? - PullRequest
0 голосов
/ 17 октября 2018

Прежде всего: я студент, и я пытаюсь научиться тестированию пользовательского интерфейса (я понимаю только основы).Я хочу запустить несколько тестов пользовательского интерфейса без закрытия браузера после каждого теста.Я использую TestNG, Arquillian и Graphene, но я не против перейти на JUnit, если это поможет.То, что я получил до сих пор:

public class ParentTest extends Arquillian
{
}


public class Test2and1 extends ParentTest
{
    @Test(dependsOnGroups = {"test1"})
    public void test2and1()
    {
        assertFalse(driver.getTitle().equals("123"));
    }
}

public class Test1 extends ParentTest
{
    @Test(groups = {"test1"})
    public void test1()
    {
        assertFalse(driver.getTitle().equals("123"));
    }
}

То, что я тоже пытался, это привести драйвер к суперклассу ParentTest, но это дает тот же результат.Я искал весь интернет, но их решения, похоже, не работают в моей ситуации: (

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Arquillion Drone предоставляет три жизненных цикла для управления веб-драйверами.Это метод, класс и область применения уровня.Область действия по умолчанию - область видимости класса.Таким образом, экземпляр Webdriver создается и уничтожается на уровне класса.

Попробуйте использовать беспилотник с установленным уровнем развертывания и фиктивный класс развертывания.Я не пробовал это.

public class ParentTest extends Arquillian {

   @Deployment(name = "dummydeploy")
   public static Archive deploy() {
      return ShrinkWrap.create(Archive.class);
   }

   @Drone
   @OperateOnDeployment("dummydeploy")
   WebDriver static foo;

}
0 голосов
/ 17 октября 2018

Вы можете решить эту проблему, создав одноэлементный объект webdriver и используя getter в своих методах тестирования:

public class SingletonWebDriver {

    private static WebDriver singletonWebDriver;

    public static WebDriver getDriver() {
        if (singletonWebDriver == null) {
            singletonWebDriver = new ChromeDriver();
        }
        return singletonWebDriver;
    }
}


public class ParentTest extends Arquillian {

        protected WebDriver getDriver() {
            return SingletonWebDriver.getDriver();
        }
    }

public class Test1 extends ParentTest {

        @Test(groups = {"test1"})
        public void test1() {
            assertFalse(getDriver().getTitle().equals("123"));
        }
    }
...