Я пишу тест на Java, Intellij, Selenium + Cucubmer. У меня простой тестовый сценарий:

  Scenario: Add X random products to the shopping cart

      Given I choose a random product from a list
      When I add random quantity of the product to the shopping cart
      Then I see that number of products in the cart was updated

После последнего шага я должен перейти к первому шагу и повторить весь процесс X раз. Я не знаю, как добиться этого в одном сценарии без копирования шагов. Можно ли выполнить шаги 1-3 в цикле?

1
wawr 3 Окт 2019 в 19:00

2 ответа

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

  ScenarioOutline: Add X random products to the shopping cart

      Given I choose a random product from a list
      When I add random quantity of the product to the shopping cart
      Then I see that number of products in the cart was updated

    Examples:
    | id |
    | 1  |
    | 2  |
    | 3  |

Другой способ - взломать код бегуна, но это сработает только для одного сценария, который вы хотите повторить. Как выполнить ту же функцию или сценарий огурца n раз?

0
Grasshopper 3 Окт 2019 в 20:24
Я не хочу повторять весь сценарий, вместо этого я хотел бы перейти к шагу Дано и начать с него. Почему это так важно в рамках сценария.
 – 
wawr
3 Окт 2019 в 20:31

Попробуйте использовать следующие

Scenario: Add X random products to the shopping cart

      * configure retry = { count: <no-of-counts>, interval: <interval-between-each-retry-in-ms>}
      Given I choose a random product from a list
      And retry until <your-conditions>
      When I add random quantity of the product to the shopping cart
      Then I see that number of products in the cart was updated

Примере:

Scenario: Add X random products to the shopping cart

      * configure retry = { count: X, interval: 0}
      Given I choose a random product from a list
      And retry until true
      When I add random quantity of the product to the shopping cart
      Then I see that number of products in the cart was updated

Здесь я использовал счетчик X, так как мне нужно добавить X случайных продуктов и не хочу ждать между ними, поэтому интервал составляет 0 мс. Я также сделал условие, чтобы оно всегда было истинным, так как я хочу работать для X без каких-либо условий. Вы можете написать какое-либо условие, например X == Y или X> Y, или любое другое выражение, которое приводит к логическому значению.

0
Atharva Bapat 5 Окт 2019 в 19:30
Не могли бы вы показать мой пример, как определить условие?
 – 
wawr
3 Окт 2019 в 20:27