我正在尝试编写一个groovy脚本,该脚本使用属性文件中的信息加载测试套件的自定义属性。 属性文件有大约6个不同的属性 我已经看过很多不同的方法,例如从属性测试步骤加载并试图用groovy扩展属性,但是没有成功。
如果有人可以就如何实现这一点提出建议,我们将不胜感激。
提前致谢。
答案 0 :(得分:3)
这是一个groovy脚本,它读取属性文件并将其设置为test suite level
:
def props = new Properties()
//replace the path with your file name below. use / instead of \ as path separator even on windows platform.
new File("/absolute/path/of/test.properties").withInputStream { s ->
props.load(s)
}
props.each {
context.testCase.testSuite.setPropertyValue(it.key, it.value)
}
以上脚本为当前套件加载测试套件级别,其中存在groovy脚本。
答案 1 :(得分:0)
不幸的是,就我而言,我想使属性具有与输入文件相同的顺序,即。排序,并且此方法无效。 我想加载一个包含排序属性的“项目属性”文件,每次使用此方法时,它都会将它们存储为未排序状态。 我不得不使用一种更直接的方法(见下文)。如果有人知道更优雅/更实用的方式,我很感兴趣
def filename = context.expand( '${#TestCase#filename}' )
def propertiesFile = new File(filename)
assert propertiesFile.exists(), "$filename does not exist"
project = testRunner.testCase.testSuite.project
//Remove properties
project.propertyNames.collect{project.removeProperty(it)}
//load the properties of external file
propertiesFile.eachLine {
line->
firstIndexOf = line.indexOf('=') // properties as set as key=value in the file
key = line.substring(0, firstIndexOf)
value = line.substring(firstIndexOf+1)
project.setPropertyValue(key, value)
}