【问题标题】:How to override properties file using plugin in Jenkins?如何在 Jenkins 中使用插件覆盖属性文件?
【发布时间】:2017-06-17 14:45:14
【问题描述】:

在我的 Selenium-TestNG-Maven 自动化框架中,我有用于存储“应用程序 URL”的属性文件。为此配置了 Jenkins 作业。我必须根据需要在 QA/Stage/Production 服务器上运行这个测试套件。但不确定如何动态提供或覆盖代码中使用的 'application-url' 属性。 (Environment Injector 插件?怎么做?)

根据代码,创建 Selenium WebDriver 实例,然后 java 代码读取属性文件,Selenium 实例使用相同的 URL 打开网页。

【问题讨论】:

标签: java maven jenkins selenium-webdriver


【解决方案1】:

我通过使用我的 Jenkins 作业的选择参数来动态提供 URL。

首先选择这个项目的参数如下图:

然后选择 Add Parameter > Choice Parameter 如下图:

然后保存。

现在,当您构建时,您将能够选择用于该特定构建的 url,如下所示:

当您需要引用该 url 时,您可以使用 Maven 目标中的 $URL 将其传递给 maven。

添加:这是我如何在 Maven 目标中使用选择参数的示例

我正在通过 maven 传递使用 Choice 参数定义的 ${browserName} 参数,该参数将使用系统属性“browser”进行引用。所以当我想在我的代码中获取值时,我只需使用

System.getProperty("browser");

而且我能够访问传递的参数。

【讨论】:

  • 感谢茉莉花的回复。您能否详细解释一下如何使用此选择参数传递给 Maven 目标?此外,目前此 URL 是在其中一个 java 属性文件中定义的并在代码中读取。我相信这也需要一些改变,因为 Jenkins 工作现在正在传递 URL。
【解决方案2】:

您可以配置您的 jenkins 以从任何存储库(Github、SVN)中提取最新代码,并且在 Execute Shell 构建步骤中,您可以编写 shell script 来实现相同的目的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-29
    • 2012-09-05
    • 2013-08-16
    • 2017-07-15
    • 2011-09-10
    • 2021-09-14
    • 1970-01-01
    相关资源
    最近更新 更多