Karate 是否可以提取要断言的请求中某个键值对的值

Karate 是否可以提取要断言的请求中某个键值对的值,karate,Karate,peter为我提供了一个使用空手道0.9.3应用示例断言的解决方案 我想知道是否可以从请求而不是完全请求中断言一个值 **Background:** * configure headers = read('classpath:merchantServiceheaders.js') Given url MservUrl And path 'XXXXXX' And request Data When method POST Then status 200

peter为我提供了一个使用空手道0.9.3应用示例断言的解决方案

我想知道是否可以从请求而不是完全请求中断言一个值

**Background:**
*  configure headers = read('classpath:merchantServiceheaders.js')

   Given url MservUrl 
   And path 'XXXXXX'

   And request Data
   When method POST 
   Then status 200 
   And match response != null 
   And match $ contains {serviceName: 'XXXXX'Service', responseMessage: 
   'Success' }
   And match each $.clauses..responseMessage == 'Success'
   And match each $..predicate != null
   And match each $..predicate == '#present'
   And match each $..predicate == '#regex [^0-9]+[0-9]*$'
   And match $..predicate contains Data.clauses.subject

   Examples: 
   |Data!                                               |
   |'{"clauses":[{"subject":"XXXX","predicate":"999999"}, 
   {"subject":"XXXXX","predicate":"99999"}]}'|
我想做的是在上匹配$…谓词包含Data.子句.subject


可能吗

是的,如果将
数据
定义为变量,则很有可能发生这种情况。但请注意,
$…谓词
将始终是一个JSON数组:


如果您需要帮助,请创建一个适当的简单工作示例。

示例代码:

Feature: Validation

    Scenario:

        * def resp = {predicate : "4325325456545646"}
        * def data =
            """
            {
                "clauses": [
                    {
                        "subject": "5432154321543210",
                        "predicate": "4432154321543210"
                    },
                    {
                        "subject": "4325325456545646",
                        "predicate": "4325325456545646"
                    }
                ]
            }
            """
        * def sublist = get data.clauses[*].subject
        * print sublist
        * match sublist contains resp.predicate