我有一个要从Jenkins运行的硒脚本。我有一个名为app.properties的属性文件。该文件包含以下属性:
browser=chrome
我将项目配置为参数化,因此在运行构建时,它会要求提供浏览器参数。我想选择此参数(例如firefox),以便它将更改app.properties中的浏览器属性并在Firefox中运行自动化。
通常,当我在Intellij的app.properties中更改浏览器属性时,我的程序将与该浏览器一起运行。因此,从这个意义上讲,我的程序没有任何问题。
是否可以根据我的Jenkins构建参数更改app.properties并以该配置运行程序?
编辑:我找到了以下解决方案:
在您的属性管理类中,将浏览器参数设为
System.getProperty(“浏览器”);
在jenkins中,配置浏览器参数
答案 0 :(得分:1)
您可以传递系统属性来更改配置。 首先,您应该将项目配置为同时读取系统属性和配置文件,其中系统属性将具有更高的优先级。我建议使用Apache Commons Composite Configuration。看起来可能像这样:
CompositeConfiguration configuration = new CompositeConfiguration();
try {
configuration.addConfiguration(new SystemConfiguration());
configuration.addConfiguration(new PropertiesConfiguration("app.properties"));
} catch (ConfigurationException e) {
e.printStackTrace();
}
//Read your configuration values here
这样,当您提供系统属性 -Dbrowser = chrome 时,它将覆盖配置文件中的值。
第二,您需要配置Jenkins作业。由于您要传递参数,因此可以在构建步骤定义中使用它:
mvn clean test -Dbroswer=${browser-param}
答案 1 :(得分:0)
“根据您选择的参数类型,参数生效的方式也有所不同...字符串参数作为具有相同名称的环境变量公开。” https://wiki.jenkins.io/plugins/servlet/mobile?contentId=34930782#content/view/34930782