问题标签 [karate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4343 浏览

karate - 如何在场景大纲示例(空手道框架)中赋值?

在我的功能中,我有:

我想在场景大纲示例中使用 id :

但是'foo.com/13'我没有收到(假设 id 是 13),而是'foo.com/id'. 我尝试使用#,但它不起作用。我怎样才能替换这个ID?我需要以字符串格式测试这个 id。谢谢

0 投票
1 回答
5148 浏览

json - 如何使用 if 条件检查附加值(使用空手道框架)?

我想使用 json 模式检查来自 GET/birds 请求的响应。在我的功能中:

我需要将架构放在 json 文件中,而不是放在功能中。我必须根据性别检查其他值。例如:如果性别是男性,则检查颜色是蓝色,尾巴是长还是短。如果性别是女性,则检查“唱歌”是真是假以及鸡蛋的数量。

所以我输入了birds.json:

但它不起作用。错误:com.intuit.karate.exception.KarateException:路径:$[0].type,实际:'female',预期:'object',原因:不相等。如何在我的 json 文件中进行此条件检查?

0 投票
3 回答
4571 浏览

karate - 通过 Maven 通过命令行将其他参数传递给 karate-config.js

当通过 Maven 运行时,我需要将其他设置传递给空手道,这些设置将在 karate-config.js 中可用。目前我可以使用 karate.env 属性传入一个字符串 - 是否有必要将我的参数编码为 JSON 对象并通过这个属性传递它们,或者我可以执行以下操作:

这样我就可以在 karate-config.js 中引用 karate.clientid,我可以将它保存到返回的配置对象中。

我确定我在这里遗漏了一些明显的东西......

0 投票
1 回答
370 浏览

karate - 验证 json 的某些表达式不起作用

我正在尝试打印以下内容:

该表达式给出的值就像null我使用 JSON 评估器一样,我得到了正确的 json。

0 投票
1 回答
34 浏览

karate - 从 0.2.7 升级到 0.6.1 后测试失败

从 0.2.7 升级到 0.6.1 后,从 gradle 运行时我看到测试失败。

失败的测试很简单:

当我从 intellij 运行时,测试通过了。从 gradle 运行,记录以下内容:

不确定它是否相关,但 JSON 文档的长度超过 94k。但是,如果我将文档(来自日志)粘贴到 JSON 验证器 (jsonlint.com) 中,它会显示它是有效的。

我热衷于利用新功能,这是阻碍我的唯一问题。关于为什么这在 0.6.1 上失败的任何建议?

0 投票
1 回答
2068 浏览

intellij-idea - 在 Karate DSL 框架中,IntelliJ IDE 无法使用 Gradle 找到可见的功能文件

使用以下工具创建示例空手道 DSL 测试时;抛出“在 [classpath: packagename] 中找不到任何功能”:

IntelliJ 2017.2.3 Gradle 2.9

项目结构如屏幕截图所示。请注意,我在带有 Gradle 的 Eclipse Mars 4.5.2 中使用了完全相同的项目结构,但我无法复制此问题。我还将 Maven 与 Intellij 一起使用,并且没有发生此问题。

使用 Gradle 将问题隔离到 Intellij!有什么想法吗?

在此处输入图像描述

0 投票
1 回答
2083 浏览

karate - 如何从数据库中提取数据以与空手道的 rest api 响应进行比较

我在 github 中看到了一些文档 - https://github.com/intuit/karate/blob/8ba369f690bcdda0d779c41128b96a1d6684ddcc/karate-demo/src/main/java/com/intuit/karate/demo/util/DbUtils.java

但想知道更多——它是否支持对任何具有 JDBC 驱动程序支持的数据库、Cassandra、MongoDB 的数据库测试。如果我能看到更多使用空手道进行数据库验证的文档/功能测试,那就太好了。

0 投票
1 回答
3314 浏览

json - 在 Karate DSL 中,如何将替换文本用于其他数据类型,例如 int、float、Big 等?

我在 github 上找到了以下示例。

  • def text = '你好世界再见'

  • 替换文字 | 令牌 | 价值 | | 一个 | '残忍' | | 二 | '好' |

  • 匹配文本 == '你好残酷的世界再见'

如果我要替换的值只能接受整数或其他数据类型怎么办?例如,

  • 替换文字 | 令牌 | 价值| | 小时 | 90 | | 价格 | 123.45 | | 数量 | 999999999999 |

我无法将令牌放入另一个文件中,因为 json 验证器不喜欢没有双引号的 <>。有什么建议么?

0 投票
1 回答
2148 浏览

cucumber - 在黄瓜中使用背景部分时出现“所需(...)+循环与输入'场景:'中的任何内容不匹配”错误

我正在编写一个空手道 DSL 测试来测试一个 Web 服务端点。我已经在 karate-config.js 文件中定义了我的 url 库。但是当我尝试在背景部分使用它时,我收到以下错误。请帮忙。在下面提供了我的功能文件。

错误:“必需的 (...)+ 循环与输入‘场景:’中的任何内容都不匹配”

0 投票
2 回答
696 浏览

rest - In Karate DSL, How do I resolve an Unsupported Media Type for a valid POST REQUEST

So I created a dynamic POST Request using the features in Karate. I tested out the newly created request manually and It did return a 200. However, when running the request through Karate, I am getting a 415 Unsupported media type.

POST REQUEST:

Karate Syntax

Scenario: Submit a new Service Request POST:

  • def ServiceRequestPostTemplate = read('classpath:testsuite/testdata/ServiceRequestServiceTemplate.json') * replace ServiceRequestPostTemplate | token | value | | assetId | assetTblAssetId | | country | country | | sourceSystemCode | sourceSystemCode | | serviceRequestCode | 'Karate-Insert: ' + NewServiceRequestCode |

    Given path 'serviceRequests/' And request ServiceRequestPostTemplate

    • header Authorization = 'Bearer ' + Token When method post Then status 200

Error message in below attachment. Note, I checked the request manually through Swagger UI and everything worked fine. I also passed it in as a hard coded variable in Karate and it worked fine. However, something about using the 'table' feature seems to change the media type.

enter image description here