SpecFlow - тот же сценарий API в другой среде с использованием параметров запуска с использованием отдыха

Извините, если это уже спрашивали, но, пожалуйста, не стесняйтесь, я новичок в тестировании restSharp и API. У меня уже готово много постов, статей и отзывов. Но из-за моих ограничений мне было интересно, может ли кто-нибудь просто направить меня, как этого достичь.

Чего я хотел бы добиться, так это запустить один и тот же тестовый сценарий в разных тестовых средах (dev, uat, pro и т. д.) для одних и тех же сценариев Gherkin, если это возможно, используя теги, например, @dev @uat и т. д..

В настоящее время у нас есть 3 файла настройки запуска для каждой из этих сред (dev.runsetting, uat.runsetting и т. д., в каждом мы передаем разные параметры), чтобы перейти к другой среде, я делаю это через C# и выбираю необходимые файлы настроек теста.


person AutoLearner    schedule 13.07.2020    source источник


Ответы (1)


Если я вас правильно понял, вы хотите контролировать с помощью тегов, какой сценарий выполняется в какой среде.

В SpecFlow+ Runner есть функция Targets, которая может вам помочь. При этом вы можете определить несколько целей и их конфигурацию для своих сценариев.

Вы можете найти пример этой функции здесь: https://github.com/SpecFlowOSS/SpecFlow.Plus.Examples/tree/master/SeleniumWebTest

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

Затем в конвейере CI/CD вы можете использовать фильтрацию в SpecFlow+ Runner для фильтрации различных сред. В Azure DevOps критерием фильтра является Name~\(target: <TARGETNAME>\).

Документация для него находится здесь: https://docs.specflow.org/projects/specflow-runner/en/latest/Profile/Filter.html


Полное раскрытие: я являюсь одним из сопровождающих и разработчиков SpecFlow и SpecFlow+.

person Andreas Willich    schedule 13.07.2020
comment
извините, что задаю эти вопросы, но нужно ли мне создавать файл default.srprofile, который будет включать целевые среды? Кроме того, как я могу вызвать определенные файлы запуска среды? скажем, у меня уже есть файл dev.runsetting, который включает другую информацию, относящуюся к среде. Как Specflow будет обращаться к этому файлу? в разделе «Целевое значение» мне нужно указать путь, где находился этот файл? извините, что задаю слишком много вопросов. - person AutoLearner; 13.07.2020
comment
Вам необходимо создать файл default.srProfile в вашем проекте. Я бы также поместил туда информацию о вашей среде. Как переменная среды или в файле конфигурации. Зависит от настройки вашего проекта. Вам больше не нужен файл runsettings, поэтому нет необходимости обращаться к ним. - person Andreas Willich; 14.07.2020
comment
спасибо за ответ, а нельзя ли вызвать другой файл из файла default.srProfile? Причина, по которой я задаю этот вопрос, заключается в том, что в dev.runsetting у нас есть больше параметров, если мы передаем определенные данные для среды, такие как идентификатор пользователя, токены и т. д. - person AutoLearner; 17.07.2020