目前我们有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"));
}
假设您正在将selenium cucumber测试作为maven项目运行。
使用maven,你可以创建尽可能多的maven系统属性,我用Jenkins为我的CI/CD构建管道的mvn命令做了很多。
这是我要做的
-
通过添加一个系统属性变量来更新你的方法:
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"