【问题标题】:SoapUI: Count Nodes Returned in JSON Array ResponseSoapUI:计算 JSON 数组响应中返回的节点数
【发布时间】:2015-07-22 17:07:04
【问题描述】:

我在使用 SoapUI 方面学到了很多东西,但是,我只是停留在这一点上。我返回了以下有效负载:

[
      {
      "@c": ".CreditPaymentInfo",
      "supplementalInfo": null,
      "date": "06/30/2015 17:03:50",
      "posTxCode": "107535",
      "amt": 2.56,
      "transactionId": 235087,
      "id": 232163,
      "cardType": "CREDIT",
      "cardHolderName": "SMITH2/JOE",
      "expMonthYear": "0119",
      "lastFourDigits": "4444",
      "approvalCode": "315PNI",
      "creditTransactionNumber": "A71A7DB6C2F4"
   },
      {
      "@c": ".CreditPaymentInfo",
      "supplementalInfo": null,
      "date": "07/01/2015 15:53:29",
      "posTxCode": "2097158",
      "amt": 58.04,
      "transactionId": 235099,
      "id": 232176,
      "cardType": "CREDIT",
      "cardHolderName": "SMITH2/JOE",
      "expMonthYear": "0119",
      "lastFourDigits": "4444",
      "approvalCode": "",
      "creditTransactionNumber": null
   }
]

我想计算返回了多少节点...因此,在这种情况下,我希望每当我在 SoapUI 中运行此测试步骤时都会返回 2 个节点。

我试图使用 JsonPath Count 断言来完成这项工作,但是我无法正确格式化它。

任何帮助将不胜感激!

【问题讨论】:

  • 您想直接从 SOAP UI 获取这些信息,还是可以随意使用任何您希望的方法?
  • 我不介意它是一个时髦的脚本还是类似的东西。我只想让我的 QA 团队的未来成员在一个工具中完成所有测试。

标签: arrays json count nodes soapui


【解决方案1】:

我没有使用过 JsonPath,但你可以使用 XPath 来做到这一点……它也适用于所有旧版本。

在内部,SoapUI 将所有内容都表示为 XML。所以你可以使用 XPath 断言来检查:

${#ResponseAsXml#count(//*:id)}

并确保它返回

2

【讨论】:

  • 呃。我什至没有想过要那样做!非常感谢! :)
【解决方案2】:

使用以下方法之一使用“JsonPath 计数”成功计数(假设我的顶级对象是一个数组):

$
$.
$[*]

如果您需要更具体地计算要计算的对象,则只能依赖第三种语法,指定冗余字段之一。以下其中一项对我有用:

$[*].fieldName
$[*].['fieldName']

在您的情况下应该返回 2 并使用以下之一:

$[*].@c
$[*].['@c']
$[*].id
$[*].['id']

等等

【讨论】:

    【解决方案3】:

    这是一种 JSON 格式。只需使用 JsonPath 计数。在顶部使用 $,在底部使用 2。

    【讨论】:

      【解决方案4】:
      $[index].your.path.here
      

      因此

      $[0].date would return "06/30/2015 17:03:50"
      

      $[1].date would return "07/01/2015 15:53:29"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-30
        • 2020-02-06
        • 1970-01-01
        • 1970-01-01
        • 2017-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多