问题标签 [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.
karate - 如何在场景大纲示例(空手道框架)中赋值?
在我的功能中,我有:
我想在场景大纲示例中使用 id :
但是'foo.com/13'
我没有收到(假设 id 是 13),而是'foo.com/id'
. 我尝试使用#,但它不起作用。我怎样才能替换这个ID?我需要以字符串格式测试这个 id。谢谢
json - 如何使用 if 条件检查附加值(使用空手道框架)?
我想使用 json 模式检查来自 GET/birds 请求的响应。在我的功能中:
我需要将架构放在 json 文件中,而不是放在功能中。我必须根据性别检查其他值。例如:如果性别是男性,则检查颜色是蓝色,尾巴是长还是短。如果性别是女性,则检查“唱歌”是真是假以及鸡蛋的数量。
所以我输入了birds.json:
但它不起作用。错误:com.intuit.karate.exception.KarateException:路径:$[0].type,实际:'female',预期:'object',原因:不相等。如何在我的 json 文件中进行此条件检查?
karate - 通过 Maven 通过命令行将其他参数传递给 karate-config.js
当通过 Maven 运行时,我需要将其他设置传递给空手道,这些设置将在 karate-config.js 中可用。目前我可以使用 karate.env 属性传入一个字符串 - 是否有必要将我的参数编码为 JSON 对象并通过这个属性传递它们,或者我可以执行以下操作:
这样我就可以在 karate-config.js 中引用 karate.clientid,我可以将它保存到返回的配置对象中。
我确定我在这里遗漏了一些明显的东西......
karate - 验证 json 的某些表达式不起作用
我正在尝试打印以下内容:
该表达式给出的值就像null
我使用 JSON 评估器一样,我得到了正确的 json。
karate - 从 0.2.7 升级到 0.6.1 后测试失败
从 0.2.7 升级到 0.6.1 后,从 gradle 运行时我看到测试失败。
失败的测试很简单:
当我从 intellij 运行时,测试通过了。从 gradle 运行,记录以下内容:
不确定它是否相关,但 JSON 文档的长度超过 94k。但是,如果我将文档(来自日志)粘贴到 JSON 验证器 (jsonlint.com) 中,它会显示它是有效的。
我热衷于利用新功能,这是阻碍我的唯一问题。关于为什么这在 0.6.1 上失败的任何建议?
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 的数据库测试。如果我能看到更多使用空手道进行数据库验证的文档/功能测试,那就太好了。
json - 在 Karate DSL 中,如何将替换文本用于其他数据类型,例如 int、float、Big 等?
我在 github 上找到了以下示例。
def text = '你好世界再见'
替换文字 | 令牌 | 价值 | | 一个 | '残忍' | | 二 | '好' |
匹配文本 == '你好残酷的世界再见'
如果我要替换的值只能接受整数或其他数据类型怎么办?例如,
- 替换文字 | 令牌 | 价值| | 小时 | 90 | | 价格 | 123.45 | | 数量 | 999999999999 |
我无法将令牌放入另一个文件中,因为 json 验证器不喜欢没有双引号的 <>。有什么建议么?
cucumber - 在黄瓜中使用背景部分时出现“所需(...)+循环与输入'场景:'中的任何内容不匹配”错误
我正在编写一个空手道 DSL 测试来测试一个 Web 服务端点。我已经在 karate-config.js 文件中定义了我的 url 库。但是当我尝试在背景部分使用它时,我收到以下错误。请帮忙。在下面提供了我的功能文件。
错误:“必需的 (...)+ 循环与输入‘场景:’中的任何内容都不匹配”
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.