如何在空手道中使用条件作为动态responseCodes

时间:2018-08-31 04:41:33

标签: dsl karate

我尝试运行一些测试,如果成功,则需要在每个方案结束时调用“ Delete.feature”文件,但是如果测试失败,则不应调用“ Delete.feature”文件。

我的测试看起来像这样:

给出网址ApiAdminURL

和路径AdminPath

和标头apigateway-apikey = apiGatewayKey

并且标头apigateway-basepath ='lambdaTest'

  • json myReq = read('users.json')

  • 设置myReq.apiConf.subscriptionTiers = subscriptionTiers

  • 打印'我的订阅:',myReq.apiConf

并请求myReq

方法发布时

然后显示状态响应代码

  • 调用read('Delete.feature')

示例:

| subscriptionTiers | responseCode |

| [无限,金,铜,银] | 200 |
| [无限,金,青铜] | 200 |
| [无限制,金,铜牌自动批准] | 400 |

如果响应代码为200,则应运行命令“ * call read('Delete.feature')”,如果responsCode为400,则应跳过此命令。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

请参考文档:https://github.com/intuit/karate#conditional-logic

Then assert responseStatus == 200 || responseStatus == 400
And eval if (responseStatus == 400) karate.call('delete.feature')

还有一条评论,Then status responseCode-我认为这行不通。