Перейти к содержимому

Фотография

Запуск браузера перед группой тестов


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 timur_shapoval

timur_shapoval

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Шаповал Тимур Григорьевич

Отправлено 02 октября 2017 - 15:15

Добрый день!

 

Посмотрел лекцию Алексея об ускорении автотестов и решил попробовать применить идеи на практике.

Правда, не смог рассмотреть нормально изображение на стене от проектора, но идею в целом понял.

Я начинающий в этой области, начал работать с проектом (Selenium+Serenity+Java), у которого браузер запускается перед каждым тестом и происходил залогинивание в среду.

 

Выражается это в виде метода:

 @Before
    public void setUp() {
        user.openLoginPage();
        user.logOnWithUser("admin", "admin");
    }
 
Я изменил аннотацию на @BeforeClass, чтобы методы выполнялись один раз перед группой тестов, но получаю initializationError.
 
Пробовал второй вариант:
 
В этом классе есть еще два метода
 
 @Override
    public void beforeClassSetup() {    
    }
 
    @Override
    public void afterClassSetup() {
        DbHelper.restoreDb();
        webdriver.quit();
    }

 

Если я переношу методы из setUp() в beforeClassSetup(), который выполняется перед классом, браузер запускается, открывается начальная страницка (LoginPage), и все замирает, в ней даже не появляются поля для ввода логина и пароля.

 

Прошу помощи опытных коллее в какую сторону двигаться. Такое ощущение, что при переносе методов они выполняются раньше, чем для них подготавливается окружение.

 

Заранее спасибо за помощь.


  • 0

#2 lapa

lapa

    Новый участник

  • Members
  • Pip
  • 55 сообщений


Отправлено 04 октября 2017 - 14:02

а полностью ошибку можно?


  • 0

#3 timur_shapoval

timur_shapoval

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Шаповал Тимур Григорьевич

Отправлено 05 октября 2017 - 16:29

Спасибо вам за вопрос.

 

Когда меняю аннотацию с @Before на @BeforeClass :

 

 ZBorrowerAddressesPopUpStoryTest.addressesPopUpEditAndCloseBlock
com.ateco.tests.menu_3_2_LoanQuestionnaire.ZBorrowerAddressesPopUpStoryTest
initializationError(com.ateco.tests.menu_3_2_LoanQuestionnaire.ZBorrowerAddressesPopUpStoryTest)
java.lang.Exception: Method setUp() should be static
 
at org.junit.runners.model.FrameworkMethod.validatePublicVoid(FrameworkMethod.java:93)
 
at org.junit.runners.model.FrameworkMethod.validatePublicVoidNoArg(FrameworkMethod.java:74)
 
at org.junit.runners.ParentRunner.validatePublicVoidNoArgMethods(ParentRunner.java:155)
 
at org.junit.runners.ParentRunner.collectInitializationErrors(ParentRunner.java:125)
 
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:124)
 
at org.junit.runners.ParentRunner.validate(ParentRunner.java:416)
 
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:84)
 
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65)
 
at net.serenitybdd.junit.runners.SerenityRunner.<init>(SerenityRunner.java:156)
 
at net.serenitybdd.junit.runners.SerenityRunner.<init>(SerenityRunner.java:112)
 
at net.serenitybdd.junit.runners.SerenityRunner.<init>(SerenityRunner.java:96)
 
at com.armco.InstanceTestClassRunner.<init>(InstanceTestClassRunner.java:17)
 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
 
at java.lang.reflect.Constructor.newInstance(Unknown Source)
 
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
 
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
 
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
 
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
 
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
 
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:84)
 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:70)
 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43)
 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444)
 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
 
 
 
Когда делаю этот метод static,  и снова запускаю, ошибок никаких нет, все заканчитвается надписью Finished after 0,186 seconds, и все стоит без движения.

  • 0

#4 lapa

lapa

    Новый участник

  • Members
  • Pip
  • 55 сообщений


Отправлено 06 октября 2017 - 10:26

проблема у вас в архитектуре. то есть где что инициализируется. @Before выполняется перед каждым тестом (ну насколько я помню junit) a @BeforeClass перед классом.


  • 0

#5 timur_shapoval

timur_shapoval

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Шаповал Тимур Григорьевич

Отправлено 09 октября 2017 - 05:39

проблема у вас в архитектуре. то есть где что инициализируется. @Before выполняется перед каждым тестом (ну насколько я помню junit) a @BeforeClass перед классом.

 

Спасибо вам большое за совет! Буду изучать архитектуру проекта.


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных