我可以使用空手道中的状态快捷方式来检查响应 class 而不是只检查一个代码吗

Can I use the status shortcut in Karate to check a response class instead of just one code

我正在使用空手道来测试其他人对 API 的实现。在检查响应状态代码时,我经常需要接受多个响应。例如,在响应 PUT 时,我可能会看到 200、201、205——它们同样有效。我知道我可以使用

Then assert responseStatus >= 200 && responseStatus < 300

检查是否成功,但快捷方式确实有助于提高测试的可读性。

您会考虑增强语言以支持响应 类 例如:

如果我考虑为此提交 PR,您是否同意它有用,您是否有首选机制?这些 类 是否最好作为已解析的符号或字符串,当它检测到状态不是数字时强制执行不同的匹配?

是的,我的第一反应是不加新关键词。老实说,这似乎是一个罕见的要求 - 以前从未有过这个问题,我想 API 测试通常意味着可预测的响应。

我的建议是你可以写一个自定义函数:

* def statusSuccess = function(){ var status = karate.get('responseStatus'); return status >= 200 && status < 300 }

* url 'https://httpbin.org'
* path 'status', 200
* method get
* assert statusSuccess()

编辑 - 另请参阅:https://twitter.com/KarateDSL/status/1364433453412851714