Как запустить фон перед каждым сценарием - PullRequest
0 голосов
/ 05 июля 2018

У меня есть фоновый тестовый пример с тегами, который мне нужно запускать каждый раз с несколькими сценариями.

Пример:

Есть 3 сценария и 1 фон. Короче говоря, фон должен вести себя как @BeforeMethod тестирования

Так что мое исполнение должно быть похоже на

  1. Фон, затем сценарий1 (@ Dev, @ tagteacher1)
  2. Опять фон, затем сценарий2 (@ Dev, @ tagteacher2)
  3. Опять фон, затем сценарий3 (@ Dev, @ tagteacher3)
@TestStory
    Feature: Teachers' timesheet need to be filled


      Background: 

      Scenario Outline: Open Webpage
        Given User Open teacher application with given <ENDPOINT> 
        And   Login into application with given <USERNAME> and <PASSWORD>
        And User clicks on teacher submission link

        @DEV
        Examples: 
          | endpoint                       | USERNAME | PASSWORD    |
          | http://teachersheetdev.ggn.com | sdrdev| aknewdev|



        @QA
        Examples: 
          | endpoint                      | USERNAME | PASSWORD    |
          | http://teachersheetqa.ggn.com | sdrqa | aknewdev|


    @tagteacher1
    Scenario1: Open app home page and click the button1
    Given I'm at the teachersheet homepage
    When User clicks Add Task button
    Then User should see the tasks schedule


    @tagteacher2
    Scenario1: Open app home page and click the button2
    Given I'm at the teachersheet homepage
    When User clicks Add Task button
    Then User should see the tasks schedule

    @tagteacher3
    Scenario1: Open app home page and click the button3
    Given I'm at the teachersheet homepage
    When User clicks Add Task button
    Then User should see the tasks schedule



    import org.junit.runner.RunWith;
        import com.optum.synergy.common.ui.controller.WebController;
        import cucumber.api.CucumberOptions;
        import cucumber.api.SnippetType;
        import cucumber.api.junit.Cucumber;

        @RunWith(Cucumber.class)
        @CucumberOptions(
                plugin = { "json:target/test_results/cucumber.json"}, 
                features = { "src/main/resources/ui/features" },
             tags ={"@Dev,@tagteacher"},
                snippets = SnippetType.CAMELCASE

                )

        public class CucumberRunnerTest {

            public static void tearDown(){
                WebController.closeDeviceDriver();
            }
        }

Как использовать тег, если я хочу работать с Dev или QA env?

1 Ответ

0 голосов
/ 05 июля 2018

Вы могли бы достичь этого проще, настроив сайт, который вы используете в конфигурации файл (будь то сайт dev или qa) и переместите имя пользователя и пароль в определение шага, используя тот, который соответствует QA или Dev.

После этого вы сможете сделать это:

Background: 
    Given the user has opened the teachers application
    And they have logged in

@teacher
Scenario: Open app home page and view the task schedule
  Given they are on the teachersheet homepage
  When they start to add a task
  Then they should see the task schedule

@teacher
Scenario: Open app home page and view the task schedule
  Given they are on the teachersheet homepage
  When they start to add a task
  Then they should see the task schedule

Если вам нужно войти в систему под учетной записью разных учителей, вам придется перенести шаг входа в Сценарии, поскольку они не будут одинаковыми, и вам нужно будет предоставить подробную информацию о том, кто входит в систему.

В качестве дополнительного примечания подумайте о формулировке, которую вы используете. Нажатие кнопок - это хорошо, если вы тестируете дизайн сайта, но основная причина использования Cucumber - это выразить намерение - описать, как пользователь должен перемещаться по сайту, не беспокоясь о деталях реализации. Это должно преодолеть коммуникационный разрыв между бизнесом и командой разработчиков, чтобы они могли выяснить, какие сценарии тестируются. Детали реализации скрывают цель теста.

...