问题标签 [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 投票
1 回答
428 浏览

karate - 在空手道中访问构建的请求详细信息

就像如何通过response, responseHeadersetc 访问响应信息一样,有没有什么方法可以访问请求信息?我注意到请求信息不能通过变量获得。是否有任何解决方法可以访问此信息?

我知道我们使用 Given,When 步骤在测试场景中自己构建请求,因此听起来可能是多余的。我正在寻找这个的原因是我想访问完整的请求详细信息空手道将使用我们的测试定义构建。这个想法是使这些信息可用于可通过 Java 互操作调用的 java 类。更具体地说,我正在尝试构建一个用于空手道的招摇请求和响应验证器。

我正在使用的解决方法是显式创建 apipath 和 apimethod 之类的变量,并将它们与pathand一起使用method。这可以完成这项工作,但仍然必须确保明确设置这些变量。如果空手道构建的任何请求都可以通过变量访问,它会更干净。

0 投票
1 回答
712 浏览

karate - 如何使用空手道在 POST 方法中传递字符串和文件作为表单参数的输入

我正在尝试调用接受以下表单参数的 POST 方法

Path – 指定路径的字符串 FileName – 二进制文件媒体类型:multipart/form-data

下面的代码有助于二进制文件部分给定的多部分文件 xxx= { read: 'classpath:xxx', filename: 'xxx'}

但是,在同一个请求中,我还需要传递字符串参数。

请提出一种方法。

谢谢, 卡尼卡

0 投票
1 回答
3033 浏览

loops - 空手道 - 如何在循环中调用函数?

如何循环调用我的登录功能?

0 投票
1 回答
3408 浏览

javascript - 在空手道 DSL 中,我如何在“Then”语句中调用 javascript 函数

我已经编写了一个 JavaScript 函数,但我无法在我的请求的“Then”语句中调用它。我需要语法来调用 JavaScript 函数

不是一个很好的例子,但它会是这样的用例。我得到的错误是: javascript 评估失败:randomPhoneString(list)

0 投票
1 回答
756 浏览

unit-testing - 空手道 - 如何将输出验证为特定 json 格式的列表?

这是我的预期输出:

如何验证我的输出与具有这种格式的 json 的可变长度列表相匹配?

0 投票
1 回答
1160 浏览

karate - 空手道 - Cookie 在包含特殊字符时被拒绝

由于收到 Cookie Rejected 错误,我们正在努力将响应 cookie 传递给后续请求。我们也无法打印 cookie 响应:

这里有更多细节:给出请求和响应。看到最后的 Print 没有打印任何内容,并且在响应开始时有警告,我们认为这与不打印响应 cookie 有关。

0 投票
2 回答
874 浏览

javascript - 在空手道 DSL 中,调用 javascript 文件会返回 java.lang.RuntimeException

我有一个要调用的 javascript 文件。内容如下。当我尝试调用该文件时,即使明确定义了一个变量,我也会不断收到“没有找到名称的变量:响应”。该文件使用节点在命令行中执行良好,因此 javascript 函数有效。有什么想法吗?我在屏幕截图中附加了错误消息。

下面片段中的 Javascript 内容。

空手道脚本:

场景:调用 JavaScript:

在此处输入图像描述

0 投票
1 回答
46 浏览

karate - 空手道 - 如何使用多个模板验证输出?

有没有办法使用多个模板之一验证请求的输出?例如:

或者

0 投票
1 回答
232 浏览

karate - 空手道框架的 WSHttpBinding 问题

我们有使用 .NET 开发的 Web 服务,有些服务使用basicHttpBinding,有些使用wsHttpBinding

通过使用空手道框架,使用basicHttpBinding的服务可以正常执行,但不能正常执行wsHttpBinding 。获取响应代码415

通过在 SoapUI 端执行以下操作,使用wsHttpBinding的相同服务可以在另一个工具(如 SoapUI)中正常执行。

  • 检查启用 WS-A 寻址
  • 检查添加默认 wsa:Action
  • 检查添加默认 wsa:To

basicHttpbinding 服务的内容类型是'text/xml'但 wsHttpbinding 服务是'application/soap+xml'

是否有任何解决方案可以使用空手道框架使其工作。

0 投票
0 回答
340 浏览

karate - 空手道中的 POST 请求正文引发错误“Arity 不匹配:步骤定义”com.intuit.karate.StepDefs.method(String)

嗨,我已经设置了空手道并在我的应用程序中使用,我处于初始阶段,因此正在浏览文档并尝试自动化。我面临这个问题并且无法继续进行,尝试了所有可能性。任何人都可以帮助我解决这个原因我在我的 POST "request.cucumber.runtime.CucumberException: Arity mismatch: Step Definition 'com.intuit.karate.StepDefs.method(String) in "中看到了这个错误

步骤 1)我试图在我的应用程序上点击 POST 请求在此处输入图像描述。这是我的场景场景:验证 JIM IDR 请求和标头 Content-Type = 'Application/json' 和标头 Accept = 'application/json' 和标头Authorization = 'Basic UUEwMl9JbmNlbnRpdmVNYW5hZ2VyXzAwMDJpMTpZWkxaRjlGclR1eWhlcVNJbXlkTlBR' 给定 url 'http://{Myurl}/IncentiveManager/0002i1/WCF/V5.svc/InDataRequestCreators' 当方法发布时

"""

{
ScenarioId: '9f31c6da-ec56-4360-8589-d21b6320f99b', AdapterId: '0fcbd8d2-f5cb-4e2a-bda8-bb37037b022d', DataExpiresOnUtc: '2100-01-18T00:00:00', CreateScenarioIfMissing:

}

""" 然后状态 201

2)尝试场景:验证 JIM Idr 请求 Post And header Content-Type = 'Application/json' And header Accept = 'application/json' And header Authorization = 'Basic UUEwMl9JbmNlbnRpdmVNYW5hZ2VyXzAwMDJpMTpZWkxaRjlGclR1eWhlcVNJbXlkTlBR' Given url '{Myurl}/IncentiveManager/0 /WCF/V5.svc/InDataRequestCreators'When 方法发布

""" {
"ScenarioId": "32lkmsalkclxssss", "AdapterId": "0fcbd8d2-f5cb-4e2a-bda8-bb37037b022d", "DataExpiresOnUtc": "2100-01-18T00:00:00", "CreateScenarioIfMissing": "false "

} """ 然后状态 201

为什么我每次都收到此错误

预期结果:-状态 201 实际结果:-它抛出以下错误,如下所述

cucumber.runtime.CucumberException: Arity mismatch: Step Definition 'com.intuit.karate.StepDefs.method(String) in file:/C:/Users/sj13757/.m2/repository/com/intuit/karate/karate-core/带有模式 [^method (\w+)] 的 0.2.7/karate-core-0.2.7.jar' 用 1 个参数声明。但是,小黄瓜步骤有 2 个参数 [post, DocString: {
ScenarioId: '9f31c6da-ec56-4360-8589-d21b6320f99b', AdapterId: '0fcbd8d2-f5cb-4e2a-bda8-bb37037b022d', DataExpiresOnUtc: '2100-01-180T :00:00', CreateScenarioIfMissing: '假'

}

]。步骤:当 cucumber.runtime.StepDefinitionMatch.transformedArgs(StepDefinitionMatch.java:60) 在 cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37) 的 cucumber.runtime.StepDefinitionMatch.arityMismatch(StepDefinitionMatch.java:102) 方法发布时在 cucumber.runtime.Runtime.runStep(Runtime.java:300) 在 cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44)