#selenium #cucumber #command-line-arguments #cucumber-jvm #cucumber-java
Вопрос:
В настоящее время у нас есть 9 различных URL-адресов в области наших требований, и он реализован в виде URL-адреса приложения файла конфигурации. Каждый раз, когда мне нужно изменить URL-адрес приложения, мне нужно вручную обновить URL-адрес в файле конфигурации, а затем я могу выполнить сценарий require, что является утомительной задачей.
Я хотел бы передать URL-адрес приложения в аргументе командной строки.
Текущая конфигурация конфигурационного файла.
#application.url=http://node-1.nginx.portal.da-1.can.qa.aws.com
#http://node-1.nginx.portal.da-1.QA1.aws.com
#http://node-1.nginx.portal.da-1.QA2.qa.aws.com
#http://node-1.nginx.portal.da-1.QA3.qa.aws.com
#http://node-1.nginx.portal.da-1.QA4.qa.aws.com
#http://node-1.nginx.portal.da-1.QA5.qa.aws.com
#http://node-1.nginx.portal.da-1.QA6.qa.aws.com
public void LaunchApplication() {
LOG.info("Launching web application URL: " CONFIG.getProperty("application.url"));
driver.manage().deleteAllCookies();
driver.get(CONFIG.getProperty("application.url"));
}
Ответ №1:
Собираюсь сделать предположение, что вы запускаете свои тесты на селеновые огурцы как проект maven.
Используя maven, вы можете создавать столько системных свойств maven, сколько захотите, я часто делаю это для своих команд mvn для моих конвейеров сборки CI/CD с использованием Дженкинса.
Вот что я бы сделал
- Обновите свой метод, добавив переменную системного свойства:
public void LaunchApplication() { String appUrl = System.getProperty(applicationUrl); LOG.info("Launching web application URL: " appUrl); driver.manage().deleteAllCookies(); driver.get(appUrl); }
- Передайте свойство в качестве команды mvn, например:
mvn test -Pcucumber -Dcucumber.options="--tags @app-smoke-001" -Dbrowser=chrome -Dclose_browser=yes -DapplicationUrl="http://node-1.nginx.portal.da-1.can.qa.aws.com"
Комментарии:
1. Этот. И если у вас есть набор URL-адресов для одной и той же среды, используйте разные файлы конфигурации и укажите имя файла конфигурации в качестве параметра среды.
2. @M. P. Korstanje — хороший крик, определенно лучшее предложение о недвижимости там
3. Можете ли вы дать мне ссылку на один и тот же файл свойств, т. е. на разные файлы свойств для разных конфигураций URL-адресов? Я сверяюсь с первым предложением, предоставленным djmonki, как упоминалось выше. Буду держать вас в курсе.
4. @djmonki, пытаясь реализовать предложенный вами способ, получает URL-адрес как нулевой. Не могли бы вы, пожалуйста, предложить способ объявления переменной здесь, кажется, я что-то здесь упускаю. публичное приложение запуска с аннулированием() { Строка applicationUrl = null; //Строка applicationUrl = null; Строка AppURL = System.getProperty(applicationUrl); LOG.info(«URL-адрес запуска веб-приложения:» приложение); driver.manage().deleteAllCookies(); driver.get(приложение); }
5. Такое же поведение — исключение из НЛП. @M. P. Korstanje — Можете ли вы поделиться своими предложениями по различным конфигурациям среды и передать их через командную строку?