SOAPUI:如何在 JSON 响应中查找节点数

SOAPUI: How to find node count in JSON response

我在 SOAP UI 中有 JSON 响应:- 我需要在这个 JSON 中找到 JSON 个节点的数量。 我尝试使用 JSONPATH Count 但它没有给出准确的结果。 这里有 8 个节点,预期作为输出。

<data contentType="text/plain" contentLength="772"><![CDATA[[{
    "EmployeeId": "99",
    "EmployeeName": "Doe",
    "Role": "Dr"
},
{
    "EmployeeId": "88",
    "EmployeeName": "John",
    "Role": "Dr"
},
{
    "EmployeeId": "999",
    "EmployeeName": "Doe",
    "Role": "Dr"
},
{
    "EmployeeId": "888",
    "EmployeeName": "John",
    "Role": "Dr"
},
{
    "EmployeeId": "777",
    "EmployeeName": "Keerthi",
    "Role": "Dr"
},
{
    "EmployeeId": "666",
    "EmployeeName": "Keerthi",
    "Role": "Dr"
},
{
    "EmployeeId": "1234",
    "EmployeeName": "Sushant",
    "Role": "Doctor"
},
{
    "EmployeeId": "107",
    "EmployeeName": "John8",
    "Role": "LabTech"
}]]]></data>

如何找到节点数?

您可以提取列表并在其上使用 size() 方法使用 groovy script 获取计数。

例如:

def employees = '''
[
    {
        "EmployeeId": "88",
        "EmployeeName": "John",
        "Role": "Dr"
    },
    {
        "EmployeeId": "999",
        "EmployeeName": "Doe",
        "Role": "Dr"
    }
]'''

def employeeList = new groovy.json.JsonSlurper().parseText( employees )
println employeeList.size()

输出 是预期的 2。

更新:

如果你想要你提供的具体数据,给你。

由于数据不是直接 json 类型,即包裹在 cdata 中,它是 xml.
的一部分 所以首先需要从 xml 中提取 json 数据,然后应用大小来获取计数。

def xml = '''
<data contentType="text/plain" contentLength="772"><![CDATA[[{
    "EmployeeId": "99",
    "EmployeeName": "Doe",
    "Role": "Dr"
},
{
    "EmployeeId": "88",
    "EmployeeName": "John",
    "Role": "Dr"
},
{
    "EmployeeId": "999",
    "EmployeeName": "Doe",
    "Role": "Dr"
},
{
    "EmployeeId": "888",
    "EmployeeName": "John",
    "Role": "Dr"
},
{
    "EmployeeId": "777",
    "EmployeeName": "Keerthi",
    "Role": "Dr"
},
{
    "EmployeeId": "666",
    "EmployeeName": "Keerthi",
    "Role": "Dr"
},
{
    "EmployeeId": "1234",
    "EmployeeName": "Sushant",
    "Role": "Doctor"
},
{
    "EmployeeId": "107",
    "EmployeeName": "John8",
    "Role": "LabTech"
}]]]></data>'''
def data = new XmlSlurper().parseText(xml)
def list = new groovy.json.JsonSlurper().parseText( data.toString())
log.info list.size()

您也可以使用 :
断言它 assert 8 == list.size(), "Employee count is not matching"