我想根据某些测试套件属性的值禁用某些测试用例(即如果属性IsActive1 = false,则将禁用testcase1)。
我在测试套件安装脚本中使用了此代码但出现错误:
def testSuite = context.testCase.testSuite;
def totalTestCases = testSuite.getTestCases().size();
for(n in (0..totalTestCases-1)) {
if(testSuite.getTestCaseAt(n).name == "${#TestSuite#IsActive}"){
testSuite.getTestCaseAt(n).setDisabled(true)
}
}
我该怎么做?
答案 0 :(得分:1)
您可以使用 Groovy 脚本执行此操作。您可以将此脚本放在 testSuite 窗口的Setup script
选项卡中,以便在 testSuite 之前执行脚本,禁用/启用 testCases < / em>取决于属性。
根据你的requeriments,这个脚本可能是这样的:
// get property names getting only
// the one which start with "isactive"
def isActiveList = testSuite.getPropertyNames().findAll {
it.toLowerCase().startsWith('isactive')
}
log.info isActiveList
// get testCaseList in order
def testCaseList = testSuite.getTestCaseList()
// for each "isactive" property
// enable or disable the corresponding
// testCase
isActiveList.each{ name ->
// get the value
def isActive = testSuite.getPropertyValue(name).toBoolean()
// get the order from the property name
def testCaseIndex = name.toLowerCase() - 'isactive'
log.info "testCase at index $testCaseIndex will be disabled ${!isActive}"
// get the testCase and enable/disable depend
// on isactive property
// NOTE: IsActive1 corresponds to array pos 0
// so a -1 is necessary
log.info testCaseList[testCaseIndex.toInteger()-1]?.disabled = !isActive
}
根据 testCase 名称重命名属性以启用/禁用而不是使用数字,可能会更好;如果您更改了 testCase 订单或添加新订单,请避免不受欢迎的行为......
希望它有所帮助,