我可以使用空手道中的状态快捷方式来检查响应 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
检查是否成功,但快捷方式确实有助于提高测试的可读性。
您会考虑增强语言以支持响应 类 例如:
- 成功(意思是200-299)
- 重定向(意思是 300-399)
- 失败(意思是 400-499)
- 2xx
- 3xx
- 4xx
如果我考虑为此提交 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
我正在使用空手道来测试其他人对 API 的实现。在检查响应状态代码时,我经常需要接受多个响应。例如,在响应 PUT 时,我可能会看到 200、201、205——它们同样有效。我知道我可以使用
Then assert responseStatus >= 200 && responseStatus < 300
检查是否成功,但快捷方式确实有助于提高测试的可读性。
您会考虑增强语言以支持响应 类 例如:
- 成功(意思是200-299)
- 重定向(意思是 300-399)
- 失败(意思是 400-499)
- 2xx
- 3xx
- 4xx
如果我考虑为此提交 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