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

空手道中如何利用if条件进行动态响应

扶誉
2023-03-14

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

我测试结果如下所示:

Given url ApiAdminURL

And path AdminPath

And header apigateway-apikey = apiGatewayKey

And header apigateway-basepath = 'lambdaTest'

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

* set myReq.apiConf.subscriptionTiers = subscriptionTiers

* print 'my subscriptions : ', myReq.apiConf

And request myReq 

When method post

Then status responseCode

* call read('Delete.feature')

Examples:

| subscriptionTiers                     |responseCode|               
| [Unlimited,Gold,Bronze, Silver]       |200         |
| [Unlimited,Gold,Bronze]               |200         |
| [Unlimited,Gold,BronzeAuto-Approved]  |400         | 

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

有人能帮我一下吗?

共有1个答案

微生毅
2023-03-14

请参阅文档:https://github.com/intuit/karate#condition-logic

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

另外一个注释是然后是status responseCode-我不认为这会起作用。

编辑-另请参阅:检查2个与空手道不同的状态

 类似资料:
  • 不幸的是,ei从我的后端获得的响应不是正确的xml格式,并且它以一种糟糕的格式给出了如下所示的响应: 因此,现在空手道无法读取响应并获取“WorkflowExternalRef”的值,这是我本次测试的目标。 空手道能读懂吗?

  • 我需要在空手道测试的功能中使用动态值。 我遇到了一些类似这样的问题和答案:如何从excel电子表格中读取输入数据并在空手道框架中传递JSON负载? 但不管我怎么努力,我都做不到。我相信我应该分享我试图使用的代码部分,这样讨论就可以开始了。 我有一个创建新用户的SOAP请求,如下所示: 正如你所看到的,我有一些将从外部给出的变量,它们是:帐户号、子标识、子类型和移动。 现在,我有了一个特性文件,我在

  • 我用空手道0.9。5.我正在测试一个返回125MB json响应的endpoint(我知道,不应该在json上这样做——但我现在还停留在这里)。我怎样才能禁止空手道解析响应json,而只是将其视为纯文本?响应需要几毫秒才能完成,但空手道只是挂起尝试解析响应。我不需要验证响应,只需检查200 OK。 谢谢

  • 例如,我试图使用匹配包含来验证模式响应和数据类型,有时它返回null,有时返回字符串。我正在尝试下面的操作,但我得到的断言失败了,因为它没有计算为true。 例如,为“firstName”返回的数据为“firstName”:null, 在比赛之前,我向每个人发送以下信息: 我不是在定义模式,我还没有弄清楚如何做到这一点,所以我不确定这是否是我的问题。我知道我应该这样做,但我还在学习。

  • 假设我有一个需求完全相同的测试场景,但有一个路径变量更改,如下所示: 方案:某些方案

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