如何通过黄瓜选项通过带有黄瓜功能文件的命令行传递应用程序 URL?
Posted
技术标签:
【中文标题】如何通过黄瓜选项通过带有黄瓜功能文件的命令行传递应用程序 URL?【英文标题】:How to Pass Application URL through Command Line with Cucumber Feature file via cucumber options? 【发布时间】:2021-12-05 18:32:42 【问题描述】:目前,我们的需求范围内有 9 个不同的 URL,并将其实现为配置文件应用程序 URL。 每次如果我必须更改应用程序 URL,我需要手动更新配置文件中的 URL,然后我可以执行 require 场景,这是一个繁琐的任务。
我想在命令行参数中传递应用程序 URL。
Config 文件的当前配置。
#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】:假设您将 selenium cucumber 测试作为 maven 项目运行。
使用 maven,您可以根据需要创建任意数量的 maven 系统属性,我经常使用 mvn 命令为我的 CI/CD 构建管道使用 Jenkins。
这就是我要做的事情
通过添加系统属性变量来更新您的方法:
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"
【讨论】:
这个。如果您有一组用于同一环境的 url,请使用不同的配置文件并提供配置文件名作为环境参数。 @M.P.Korstanje - 好声音,绝对是那里更好的物业建议 你能给我相同的参考吗,即不同的 URL 配置的不同属性文件?如上所述,我正在检查 djmonki 提供的第一个建议。会及时通知您。 @djmonki 在尝试实施您建议的方式时,将 URL 设为 Null。您能否建议一种在这里声明变量的方法,看来我在这里遗漏了一些东西。 public void LaunchApplication() String applicationUrl = null; //字符串 applicationUrl = null;字符串 appUrl = System.getProperty(applicationUrl); LOG.info("启动 Web 应用程序 URL:" + appUrl); driver.manage().deleteAllCookies(); driver.get(appUrl); 相同行为 - NLP 异常。 @M.P.Korstanje - 你能分享你对不同环境配置的建议并通过命令行传递吗?以上是关于如何通过黄瓜选项通过带有黄瓜功能文件的命令行传递应用程序 URL?的主要内容,如果未能解决你的问题,请参考以下文章