有没有办法通过Jenkins覆盖config.properties文件中包含的值?
我的自动化框架中包含以下config.properties文件: 浏览器=铬 URL = HTTP // www.example.com
如果chrome的值变为firefox,则所有测试现在都将在firefox浏览器中执行。
我可以通过直接访问config.properties文件手动更改此值,但是可以通过jenkins更改值吗?
答案 0 :(得分:0)
我使用Pipeline Utility Steps插件来读取属性文件,看起来它可以写一些其他类型的文件,但不能写属性文件。
在我看来,您希望在此文件中进行此更改,以便您可以先在一个浏览器中运行某些测试,然后在另一个浏览器中运行。如果是这种情况,我认为更好的方法是尝试让您的测试指向不同的文件。这有点干净,并允许并行执行之类的东西,当你发现将来需要改变另一件事时,你不会在脚本中写这么多东西到文件中,这容易出错。
如果无法对不同的属性文件执行测试,则可以获得所需的每个文件的副本,然后将它们复制到适当的文件名以执行测试。
但也许我对你的设置做了很糟糕的假设。 ;)
答案 1 :(得分:0)
是
您可以创建一个构建参数作为$ browser来接受值" firefox"并使用sed inside"执行shell",替换config.properties中的值。 完成后,执行脚本。
这只是概述,因为您没有发布有关config.properties文件的详细信息,它的位置,如果您使用的是Jenkins作业或jenkinsfile /管道等等。