t.me/atinfo_chat Telegram группа по автоматизации тестирования

Вопрос-консультация по передаче параметров в тест Selenide + TESTNG + maven + Jenkins

Теги: #<Tag:0x00007f07ff367dc0> #<Tag:0x00007f07ff367c08> #<Tag:0x00007f07ff3679b0> #<Tag:0x00007f07ff367618> #<Tag:0x00007f07ff3674d8> #<Tag:0x00007f07ff367078>

Добрый день. Это вопрос консультация. И так.
Имеется проект. В нем имеются пункты меню: Главная, Корзина, Профиль.
Особенность проекта, что для каждого города набор полей разный.
Например, в Белгороде, в корзине , при оформлении заказа 5 полей, в другом городе 4, и т.д.

Стек: Java + Selenide + TESTNG + maven + Jenkins. Docker не используется
Вопросы:

  1. Как посоветуете написать методы для выбора, сколько полей заполнять
  2. Через что передавать параметр, который будет определять какие поля заполнять. Перегрузка методов не очень, как мне кажется. Стоит в метод переаметр передавать из дженкинса / через мавен ключ
  3. Не могу найти пример пайплайна, в котором кратко и красиво через, например, цикл запускать один тест по кругу с разными параметрами.
    Параметры нужно передавать в тестовый класс, т.к. много методов на параметризацию
  4. Хранить параметры, типа “Город” планируется в файле <город>.properties. В них будут лежать данные логинов

Тут сильно зависит от проекта и т.д.

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

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

Михаил, здравствуйте :slight_smile:

Возможно, ви ищете что-то схожее на наш pipeline (я немного видоизменила код):

Screen Shot 2021-03-20 at 10.50.54
а потом етот параметр cityName использовать при запуске тестов :slight_smile:

Screen Shot 2021-03-20 at 10.48.41

Ах да, если ваши города будут в отдельном файле, тогда можете в Jenkinsfile читать данние из файла, к примеру:

def cities = readFile(file: '<город>.properties')

Конечно же, нужно будет split-нуть из файла коми или пробели - все зависит от того, в каком виде будете хранить название городов)

Надеюсь, хоть чем-то смогла вам помочь!
Удачи! :v: