Json 文件解析 - Groovy
Json file parsing - Groovy
对于我们的测试数据,我们将以 JSON 格式维护测试数据,下面是示例 JSON 文件。
{
"INV": [
{
"TestCaseID": "APL",
"TestData": [
{
"INVLabel": "Title",
"Controltype": "text",
"Inputvalues": "solid state device"
},
{
"INVLabel": "Inventor",
"Controltype": "search",
"Inputvalues": "Sabra-Anne Truesdale"
}
]
},
{
"TestCaseID": "APL1",
"TestData": [
{
"INVLabel": "Title",
"Controltype": "text",
"Inputvalues": " "
},
{
"INVLabel": "Inventor",
"Controltype": "search",
"Inputvalues": "jenifer"
}
]
}
]
}
如何使用 JsonSlurper 根据测试用例 ID 检索测试数据?。
最初,我计划将 JSON 转换为我尝试过的 Map 对象。但它没有按预期工作。谁能指导我检索这些值?
您可以在带有闭包 { it.TestCaseID == 'ID'}
的 INV
节点上使用 find()
方法从列表中获取第一个元素。考虑以下示例,该示例提取 id APL1
.
的测试数据
import groovy.json.JsonSlurper
def input = '''{
"INV": [
{
"TestCaseID": "APL",
"TestData": [
{
"INVLabel": "Title",
"Controltype": "text",
"Inputvalues": "solid state device"
},
{
"INVLabel": "Inventor",
"Controltype": "search",
"Inputvalues": "Sabra-Anne Truesdale"
}
]
},
{
"TestCaseID": "APL1",
"TestData": [
{
"INVLabel": "Title",
"Controltype": "text",
"Inputvalues": " "
},
{
"INVLabel": "Inventor",
"Controltype": "search",
"Inputvalues": "jenifer"
}
]
}
]
}'''
def json = new JsonSlurper().parseText(input)
def testData = json.INV.find { it.TestCaseID == 'APL1' }.TestData
println testData
输出:
[[INVLabel:Title, Controltype:text, Inputvalues: ], [INVLabel:Inventor, Controltype:search, Inputvalues:jenifer]]
对于我们的测试数据,我们将以 JSON 格式维护测试数据,下面是示例 JSON 文件。
{
"INV": [
{
"TestCaseID": "APL",
"TestData": [
{
"INVLabel": "Title",
"Controltype": "text",
"Inputvalues": "solid state device"
},
{
"INVLabel": "Inventor",
"Controltype": "search",
"Inputvalues": "Sabra-Anne Truesdale"
}
]
},
{
"TestCaseID": "APL1",
"TestData": [
{
"INVLabel": "Title",
"Controltype": "text",
"Inputvalues": " "
},
{
"INVLabel": "Inventor",
"Controltype": "search",
"Inputvalues": "jenifer"
}
]
}
]
}
如何使用 JsonSlurper 根据测试用例 ID 检索测试数据?。 最初,我计划将 JSON 转换为我尝试过的 Map 对象。但它没有按预期工作。谁能指导我检索这些值?
您可以在带有闭包 { it.TestCaseID == 'ID'}
的 INV
节点上使用 find()
方法从列表中获取第一个元素。考虑以下示例,该示例提取 id APL1
.
import groovy.json.JsonSlurper
def input = '''{
"INV": [
{
"TestCaseID": "APL",
"TestData": [
{
"INVLabel": "Title",
"Controltype": "text",
"Inputvalues": "solid state device"
},
{
"INVLabel": "Inventor",
"Controltype": "search",
"Inputvalues": "Sabra-Anne Truesdale"
}
]
},
{
"TestCaseID": "APL1",
"TestData": [
{
"INVLabel": "Title",
"Controltype": "text",
"Inputvalues": " "
},
{
"INVLabel": "Inventor",
"Controltype": "search",
"Inputvalues": "jenifer"
}
]
}
]
}'''
def json = new JsonSlurper().parseText(input)
def testData = json.INV.find { it.TestCaseID == 'APL1' }.TestData
println testData
输出:
[[INVLabel:Title, Controltype:text, Inputvalues: ], [INVLabel:Inventor, Controltype:search, Inputvalues:jenifer]]