Java 堆 space 负载巨大的响应错误 |空手道 1.0.1
Java Heap space error for response with huge payload | karate 1.0.1
我们目前在我们的测试框架中使用空手道 0.9.6,要求以某种方式将整个响应主体与存储为 json 的文件相匹配(这是一个基于金融的应用程序,我们需要验证整个响应主体)
我正在尝试根据 upgrade guide
迁移到 1.0.1
升级到 1.0.1
后,我们针对保存的响应断言的场景失败并出现 Java 堆 space 错误
由于安全限制,我无法将响应主体放在这里,所以我尝试使用开源 api 和大型响应主体,但在以下用例中失败了
Given url "https://jsonplaceholder.typicode.com/photos"
And json expected_resp =read('classpath:<path_to_saved_file>/response.json')
When method GET
Then status 200
Then match response == '#(^^expected_resp)'
PS:我已经完成了here
中提到的所有步骤
抱歉,信息不足,无法复制。我尝试了以下方法并且有效:
Given url "https://jsonplaceholder.typicode.com/photos"
When method GET
Then status 200
无论如何我们已经打开了一个问题,但如果我们无法复制,将在一两天内将其关闭:https://github.com/intuit/karate/issues/1572
这是一个开源项目,我们依赖于您的贡献或至少更好的信息。
编辑:非常大的 JSON 数组的解决方案是对数组进行排序(现在在空手道 1.0 中很容易实现)然后进行精确匹配 - 这将避免执行 contains
匹配。
* def sorted = karate.sort(response, x => x.id)
* match sorted == read('photos.json')
我们目前在我们的测试框架中使用空手道 0.9.6,要求以某种方式将整个响应主体与存储为 json 的文件相匹配(这是一个基于金融的应用程序,我们需要验证整个响应主体)
我正在尝试根据 upgrade guide
迁移到 1.0.1升级到 1.0.1
后,我们针对保存的响应断言的场景失败并出现 Java 堆 space 错误由于安全限制,我无法将响应主体放在这里,所以我尝试使用开源 api 和大型响应主体,但在以下用例中失败了
Given url "https://jsonplaceholder.typicode.com/photos"
And json expected_resp =read('classpath:<path_to_saved_file>/response.json')
When method GET
Then status 200
Then match response == '#(^^expected_resp)'
PS:我已经完成了here
中提到的所有步骤抱歉,信息不足,无法复制。我尝试了以下方法并且有效:
Given url "https://jsonplaceholder.typicode.com/photos"
When method GET
Then status 200
无论如何我们已经打开了一个问题,但如果我们无法复制,将在一两天内将其关闭:https://github.com/intuit/karate/issues/1572
这是一个开源项目,我们依赖于您的贡献或至少更好的信息。
编辑:非常大的 JSON 数组的解决方案是对数组进行排序(现在在空手道 1.0 中很容易实现)然后进行精确匹配 - 这将避免执行 contains
匹配。
* def sorted = karate.sort(response, x => x.id)
* match sorted == read('photos.json')