当前位置: 首页 > 知识库问答 >
问题:

使用空手道对JSON进行模式验证

濮书
2023-03-14

早上好

我刚刚开始使用JSON,所以我知道这是一个非常基本的问题,有人能指出我在尝试验证下面的事件和问题ID方面的错误吗?

  Scenario: Get Entity Result with BASIC privledges, return userCanDismiss 'False'
    * def appParams = '{"dhd":{"dhdPermissions":"BASIC"},"podId":"eedev-inta"}}}'
    * def bfToken = TestUtils.getBFTokenWithAppParams(null, 769870979, 0, 'BF_ADMIN', appParams)
    * print 'bfToken -> ', bfToken
    * configure headers = { BFToken: #(bfToken), pod:{"podId":"eedev-inta"} }
    * def schema =
    """
  {
  "data": {
    "ids": [ "#string"
    ]
  },
  "_links":{},
  "_embedded": {
        "validationEventResults": [{
            "data": {
                "validationProblemStats": [{
                        "occurrences": "#ignore",
                        "problemId": "#string"
                }
                ]
            }
        }
        ]
  }
  }
  """

    Given path '/entities/' + externalEntityId + '/types/' + entityType + '/validation-event-results'
    When method get
    Then status 200
    And match response contains schema

id字段似乎已成功验证,但我的文件在尝试验证时失败。

共有1个答案

高自怡
2023-03-14

请注意,我简化并更改了名称。请将此作为参考,阅读文档,然后找到解决方案:https://github.com/intuit/karate#schema-验证

* def stat = { occurrences: '#ignore', problemId: '#string' }
* def eventResult = { data: { validationProblemStats: '#[] stat' } }
* def schema = { embedded: { validationEventResults: '#[] eventResult' } }


* def response = 
"""
{ "embedded": { 
    "validationEventResults": [
      { "data": {
          "validationProblemStats": []
        } 
      }
    ]
  } 
}
"""
* match response == schema
 类似资料:
  • 我试图为下面的响应编写JSON模式。响应是动态的它可以是细节或细节。如果响应中的是,那么响应将包含人对象(组织对象将不可用)。如果是,组织详细信息将包含在响应中(人对象将不可用)。下面给出了两种不同的预期反应 我试图使用下面给出的模式使上述条件有效 我目前面临的问题是,如果响应中的是,它会抛出以下错误 是否有任何方法可以在模式中指定,如果person对象可用,则organization对象将不可用

  • 我只是想知道如何进行条件模式验证。API响应是基于键的动态响应。如果是,那么,人的详细信息将被包括,如果是组织的详细信息将被包括在JSON响应中。所以响应可以是以下任何一种形式 我为验证上述2个场景而创建的架构如下 但是架构与实际响应不匹配。我应该对架构进行哪些更改才能使其工作?

  • 我正在寻找一个解决方案来解决Swagger(OpenAPI)数据类型和JSON模式之间处理数据类型空值的不兼容性。 我们的swagger文件包含所有模式定义,我想使用JSON。Net模式,用于API测试中的模式验证步骤。 有效的swagger属性定义: 将失败JSON模式验证空值()。 如果我将可为空的属性定义替换为: 对于空值,验证将是成功的,但这打破了昂首阔步的语法。 我找不到的OpenAPI

  • 每当我试图验证一个模式或使用模糊匹配来验证来自JSON对象中响应的布尔字段时,尽管输入了不正确的数据,它似乎总是通过。 为了便于查询,让我们将重点放在使用内联模糊匹配,就像将模式存储在单独的文件中一样。 功能文件: 答复: 我断言的目的是断言每个值以任何顺序返回正确的值类型。如果由于任何原因没有返回该值,或者存在比模式中定义的值更多的值,我希望测试失败。我怎样才能做到这一点? 我假设use。但是,

  • 我正在使用空手道验证GET请求的整个json响应。 下面是来自请求的json响应示例(我只为items显示了两个元素) 以下是我试图验证的方式: 但是,我得到了一个断言错误:

  • 问题内容: 是否有任何PHP库可根据JSON模式验证JSON对象? 问题答案: 关于jsonschemaphpv,尽管它维护得不是很好,但是我们经常使用它并且可以正常工作。这是js验证程序的端口。它具有针对php和http://code.google.com/p/jsonschema/的完整测试套件。 猜猜是什么…它比js传递了更多的测试。至少在最后一次运行测试时。问题是该项目的结构不是很好,而且