Nano Hash - криптовалюты, майнинг, программирование

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

Описание проблемы:

Я пытаюсь запустить один и тот же сценарий огурца для нескольких регионов, используя огурец и java.

Чего я пытаюсь достичь?

  1. С моим сценарием связаны три разных региона au, nl и gb (указанные как теги)
  2. Я хочу использовать все 3 тега, чтобы запускать мой сценарий один за другим

Что я пробовал?

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

@au-en @nl-nl @gb-en
Scenario: A new user can place order using ecom sites 
Given the Guest user buying product
Then the user perform checkout 


//step definition cucumber
@Before
public void setUp(Scenario scenario) {
    listTags= (List) scenario.getSourceTagNames();
    listTags
            .stream()
            .forEach(System.out::println);
}

 @Given("^the Guest user buying product$") {
 public void buyProduct() {

        for(Object item : listTags) {
        System.out.println("******item*********" + item);

        homepage.navigateToPage(baseUrl.concat(url)); //call url 
        productSelection.selectProduct();
        productSelection.AddTobasket()
        basketPageSteps.clickCheckoutButton();
        }

}

@Then("^the user perform checkout$")
public void theUserIsOnTheCheckoutCompletePage() {
       cheeckoutPage.ClickCheckout();
}
20.05.2020

  • Есть ли различия в поведении приложений в разных регионах? 31.05.2020

Ответы:


1

Определение нескольких тегов рядом друг с другом, разделенных пробелом, означает, что сценарий будет выполняться всякий раз, когда один или все они упомянуты в CucumberOptions, как показано ниже:

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"}, tags = {"@au-en,@nl-nl,@gb-en"}) 

public class runTest { }`

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

  1. Если реализация сценария должна быть одинаковой для каждого региона, вы можете использовать Scenario Example, где для того же сценария вы должны параметризовать детали региона в разделе «Пример». Что-то вроде этого:

    Scenario Outline: eating

    Given there are <start> cucumbers

    When I eat <eat> cucumbers

    Then I should have <left> cucumbers

    Examples:

    | start | eat | left |

    | 12 | 5 | 7 |

    | 20 | 5 | 15 |

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

Вот несколько ссылок на элемент 1: [https://cucumber.io/docs/cucumber/api/#tags] и элемент 2: [https://www.tutorialspoint.com/cucumber/cucumber_tags.htm]

27.05.2020
  • Я не хочу использовать схему сценария, я хочу выполнить свой тест, используя теги одновременно для всех регионов. 27.05.2020
  • В этом случае вам нужно будет указать сценарии один раз для каждого региона и запустить их в параллельном режиме. То, как вы используете теги в примере, не работает (как описано выше). 29.05.2020

  • 2

    Здесь у вас есть следующие возможности:

    1. Сделайте пробежку на огурце для каждого региона

    2. Напишите отдельные сценарии для каждого региона (здесь используются теги)

    3. Напишите единый сценарий, который тестирует все 3 региона одновременно

    Вам нужно выбрать тот, который лучше всего соответствует вашим потребностям.

    1 Сделайте пробежку на огурце для каждого региона

    Здесь вы настраиваете внешнее состояние перед запуском огурца, чтобы огурец мог выбрать регион для использования для этого конкретного запуска.

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

    2 Напишите отдельные сценарии для каждого региона

    Здесь вы можете использовать теги, чтобы вы могли выполнять такие действия, как запуск сценариев gb-en только в конкретном запуске. У вас было бы что-то вроде

    @gb-en
    Scenario: Can buy in GB
      ...
    
    @nl@nl
    Scenario: Can buy in the Netherlands
      ...
    
    

    Это действительно хороший способ проверить поведение в регионах.

    3. Напишите единый сценарий, который проверяет все 3 региона одновременно.

    Это то, что вам кажется, но я не думаю, что вы захотите делать то, что требуется.

    Здесь вам нужно написать сценарий вроде

    Scenario: Regional buying
      Given the following regions en-gb ...
      When I buy something from each region
      Then I should see I have bought something from each region
    

    Этот довольно уродливый. Здесь у вас должен быть шаг, который покупает что-то для каждого региона, что будет довольно сложно. Шаг придется

    • изменить регион
    • купить товар
    • сохранить результат

    а затем повторите это для каждого региона.

    28.05.2020
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..