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

如何使用空手道验证非JSON响应体

柯捷
2023-03-14

我试图验证非json格式的错误响应体。我尝试了使用模式以及使用包含匹配的关键字。这对我不起作用。

在post调用中观察到多个匹配时从API返回的实际响应:

{"error":{"text":SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'NewEmp' for key 'employee_name_unique'}}

我的空手道特点:

Given url 'http://dummy.restapiexample.com/api/v1/create'
def errResp = "error"  
And request {"name":"Hello1","salary":"123","age":"23"}
When method POST
Then status 200
Then match $ contains error #not working
Then match $ contains errResp #not working

尝试*匹配实际的[0] == '#(^partSchema)'也从https://gist.github.com/ptrthomas/2a1e30bcb4d782279019b3d5c10b3ed1。不工作

共有1个答案

万嘉石
2023-03-14

请先了解类型转换:https://github.com/intuit/karate#type-conversion

然后在您要执行字符串包含检查之前将响应转换为字符串:

* string temp = response
* match temp contains 'error'
 类似资料:
  • 我一直在验证下面的回答。 当我使用空手道发出获取请求时,我会得到以下响应,我想验证它。 我试过: 它说它不是字符串。你能帮我确认一下这个请求吗?

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

  • 我需要验证一个JSON响应(如下所示),并检查JSON数组中是否有任何一个项的日期为createdDate。 “createdDate”实际上是作为时间戳返回的,但我没有实际值。我唯一需要验证的是今天的日期。项目的顺序也不保证。我查看了https://intuit.github.io/karate/指定的javascript宏,但它没有我正在尝试做的示例。请让我知道任何建议。

  • 下面是我在点击特定Web服务时收到的JSON响应: 我不知道哪个索引有我的期望值(我需要在确定哪个具有)后验证多个值),这是动态的。不希望使用硬编码值。并匹配,因为这将在下次更改。 对此我有两个问题: 如何将响应传递给java代码并获取具有的数组索引,以便使用此索引进行验证? 下面的代码不起作用。

  • 任何人都可以在空手道API中如何部分下面的响应 这里我想从响应中提取partNumber和productTitle,其中响应中的初始数字是动态的,对于每个get方法,数字都会发生变化。 {"项目":{'41651625424':{itemCore:{部件号:'1234567',产品名称:'空手道API测试'}}}}

  • 早上好 我刚刚开始使用JSON,所以我知道这是一个非常基本的问题,有人能指出我在尝试验证下面的事件和问题ID方面的错误吗? id字段似乎已成功验证,但我的文件在尝试验证时失败。