Karate 如何在空手道或黄瓜报告中获得后特写和后场景报告

在afterFeature和afterScenario中,是否可以将呼叫状态作为html报告和空手道报告中的报告(最好两者都是)来查看 你能再检查一下吗。我以为《赛后》已经被记录下来了。老实说,只有在极少数情况下才应该使用after挂钩。但是,您可以随时提出功能请求,以便afterFeature也出现在日志中 编辑:实际上刚刚意识到,只有使用*.feature文件来实现afterScenario和afterFeature挂钩,才能看到日志。我刚刚测试过这个。所以你必须在hook JS中使用kar

Karate 空手道中的Java net SocketTimeoutException

在一个功能文件中有两个场景,场景1执行时没有任何问题,但在执行场景2时出现以下错误 ERROR com.intuit.karate - **java.net.SocketTimeoutException**: Read timed out, http call failed after 31237 milliseconds for URL: projectURL com.intuit.karate.exception.KarateException: javascript function ca

Karate 如何在空手道中将JSON值与响应值匹配

我想将JSON值与空手道中的响应值相匹配。 如何从JSON和Response中检索所有字段值并进行匹配? 任何解决方案都值得赞赏 下面是示例JSON和响应 JSON: { "Field1": 123, " Field2": 456, " Field3": "O", " Field4": 1000 }, { "Field1": 678, " Field2": 234, " Field3": "P", " Field4": 20

Karate 空手道argLine参数与';mvn加特林:测试和x27;命令

我有一套现有的空手道测试,可以使用以下方法在不同的环境(dev/qa)上运行: mvn test -DargLine="-DauthUser=*** -DauthPassword=*** -Dkarate.env=qa" 现在,我添加了一些gatling测试,当尝试使用以下命令在“qa”上运行测试时,测试仍然在我的默认环境中运行,即“dev”而不是“qa” mvn gatling:test -DargLine="-DauthUser=*** -DauthPassword=*** -Dkarat

Karate 如何从外部jar文件配置空手道项目中的javascript文件

我沉浸在空手道的特色中。我有一个与从jar文件调用javascript函数相关的查询。我知道从罐子里调用javascript有点疯狂。我理解你的建议,在你建议使用java的地方使用复杂的定制工具,但我们有这个要求。请帮我做这个 我使用JavaInterop调用java函数(来自我创建的外部jar文件) 以类似的方式,我希望访问/使用javascript文件并使用其中的函数。其中javascript文件与我创建的jar文件位于同一个jar文件中 我能够从类路径中存在javascript文件的同一个

Karate “为什么”的问题;Set无法更改我的json文件值;

这是我的功能文件: *def Json=read('1.Json') *打印Json.Id *set Json.Id=Product\u Num *打印Json.Id 我想用新产品编号替换我的Id。运行空手道后,我看到结果是正确的,新产品编号被输出(通过第二次打印结果) 但id值不会在1.json文件中更新 如何更新1.json文件值?我需要替换试图写入文件的1.json文件中的id值。当你使用空手道时,这通常是不需要的,因此不直接支持。您是否希望您的测试数据一直在更改,因为您的测试正在更新从

Karate 字符串不支持的匹配类型:每个_等于

抄袭 我收到以下错误消息: unsupported match type for string: EACH_EQUALS 对于此步骤: * match each response/list/cost/Rate == 0.920509 对于此xml: <list> <cost> <Rate>#present</Rate> // contains 0.920509 </cost> <cost

Karate 空手道:验证JSON响应中的特定日期

我需要验证一个JSON响应(如下所示),并检查JSON数组中是否有任何一项的日期为createdDate “createdDate”实际上是作为时间戳返回的,但我没有实际值。我唯一需要确认的是今天的日期。项目的顺序也不保证。我查看了在中指定的javascript宏,但它没有我尝试执行的示例。请让我知道任何建议 { "items": [ { "id": "...", "name": "...", "createDate": "03

Karate 在空手道中,我可以自动更新请求负载(JSON格式)中某个字段的值吗?

在空手道中,我可以自动更新请求负载(JSON格式)中某个字段的值吗? 我正在处理以下场景- 1.提交POST请求以创建对象。使用请求有效负载(JSON格式)。 2.查询数据库以验证此对象是否已创建。每个对象创建都会生成一个唯一的ID。 3.提交另一个POST请求以删除在步骤1中创建的此对象。使用单独的请求负载(JSON格式) 问题- 如何自动更新请求负载以删除此对象?在这个有效负载中唯一需要更新的是ID字段,该字段带有ID的值,我将从DB中获取该值(步骤2)。基本上,除了Delete有效负载中的

Karate 空手道是否支持.avro文件作为输入请求?

我们需要将.avro文件作为输入请求发送到API。我真的被困在这一点上了。如果提供任何详细示例,我们将不胜感激。只需使用Java互操作: 您需要编写一个助手(从静态方法开始)来将JSON转换为Avro,反之亦然。我知道团队在gRPC中使用这个。阅读此帖子获取提示: 还有一个“空手道grpc”项目:非常感谢peter,我知道这是出于空手道要求avro转换为json,反之亦然转换参考。有什么帮助吗?@SandeepPadala我在谷歌上找到了一些链接。试试看!

Karate 在第一个场景中使用DBUtils时出错

当我在Eclipse中使用DBUtils.java并在那里运行测试时,它工作得很好,但是当我通过Jenkins运行它时,第一次使用DBUtils是失败的。第二部作品。。。 它第一次使用db.readRows时失败 Scenario: Account Create Given path 'accounts' And header Authorization = setup.authorization And request {identifier: KarateC

Karate 在定义之前无法识别重试

我正在尝试在一个特性中实现重试直到功能 Scenario: Send a valid request and verify response status = 200 Given path requestPath And configure retry = { count: 10, interval: 5000 } And retry until responseStatus == 200 When method get

Karate 在日志中隐藏密码

以下代码: Background: * url "https://www.google.fr" Scenario: hide password Given path "login" And form field username = 'john' And form field password = 'secret' When method post Then status 200 提供以下输出:

Karate 如何将数据(如TestCase ID、状态)从场景传递到场景之后

我必须将每个场景的结果更新到第三方应用程序,为了实现它,我在after场景中调用了一个特性(updateResults.feature)。但是我不知道如何将场景状态(通过,失败)传递到场景之后。 注意:使用空手道版本0.8.0.RC3参见示例,您可以传递参数: karate.call('after-scenario.feature', { caller: info.featureFileName }); 请参阅有关空手道的文档。karate.call():谢谢您的及时回复。我不确定哪个对象包含

afterScenario钩子上的karate.log(args)未嵌入到surefire json文件中

我正在我的hook文件中执行karate.log(…args)。它打印在karate.log和控制台上 但是,我在surefire生成的.json文件中找不到日志,这导致日志没有出现在我的html报告中 这里有我遗漏的步骤吗 非常感谢 是,抱歉,钩子不会登录到HTML报告。你是在做测试还是只是担心报告:)啊,我明白了。哈哈,我只是想让这个错误在任何时候都能凸显出来:)我在这里找到了你的答案。会把它作为其他人谁是寻找同样的东西的参考。再次感谢你,彼得!:)@雷蒙德,develope分支中的一些修

Karate 空手道-有没有办法在XML请求中保留(或添加)DTD

“空手道”在读取XML时似乎丢弃了XML中的DTD部分。我的请求必须包含DTD。 有没有一种方法可以让我在不被丢弃的情况下添加它 我试过“set”,但显然它也被丢弃了 我尝试过使用“文本”,但是XML文件中的引用值也没有被解析,所以这不起作用 *def req=调用读取(myXML.xml) myXML.xml看起来像这样 当我打印req时,我看到的是 在发送XML之前,先使用文本,然后使用字符串替换。有很多方法,看看这个答案: 编辑:一个提示是,如果希望使用字符串发出请求,但将内容类型

Karate 如果应用程序是多语言的,如何以及在何处传递应用程序数据语言?

在我们基于web的应用程序中,URL包括数据语言,但为了在应用程序中创建数据,用户需要在每个场景中传递场景URL中的语言 我们是否可以在后台包含该语言,以便用户不需要在每个场景中传递该语言?请建议 例如,您是否尝试将*param lang=“en_US”添加到背景中?您是否尝试将*param lang=“en_US”添加到背景中?感谢您的回复。如果我们想在API URL的末尾使用这个lang(作为URL的一部分),并且在每个场景中也使用这个lang呢?我认为要做到这一点,您需要在karate-c

Karate 空手道DSL:如何将x-www-form-urlencoded形式的特定键和值(XML)添加到请求体中?

我试图通过空手道将一个特定的键、值添加到请求体中,作为x-www-form-urlencoded 示例中的最后一个“And请求”失败 通过邮递员,我创建了一个工作示例,为我们提供了正确的响应。(导出以下主要部分) “项目”:[ { “名称”:http://www.google.com/api", “请求”:{ “方法”:“发布”, “标题”:[ { “键”:“内容类型”, “名称”:“内容类型”, “值”:“application/x-www-form-urlencoded”, “类型”:“文本

Karate 如何将以下soapUI请求放入空手道?

媒体类型:多部分/表单数据和值作为查询类型 有关更多详细信息,请参阅附件 请参阅多部分字段: 如果您有查询参数,请使用param。但仅仅从一张截图就很难理解 如果您仍然被卡住,请提供一个cURL命令(您可以从邮递员、浏览器等导出),我们可以解决这个问题。请参阅多部分字段: 如果您有查询参数,请使用param。但仅仅从一张截图就很难理解 如果您仍然卡住,请提供一个cURL命令(您可以从邮递员、浏览器等导出),我们可以解决这个问题。请将您以前问题的答案标记为“已接受”:我已添加了我对以前问题的评论。

从空手道0.9.2迁移到0.9.3问题-javascript评估失败 karate-config.js具有config=karate.callSingle('classpath:token read.js',config') token read.js上的Javascript函数是 功能文件代码如下所示 获取错误 javascript求值失败:OAuth2.adminUser(),TypeError:OAuth2.adminUser不是第1行的函数

上述功能文件适用于空手道0.9.2,但不适用于空手道0.9.3请阅读本节文档: 在此复制: 仅当Java对象引用或JS函数等非JSON值位于从karate-config.JS返回的JSON的“根”时,才支持它们。因此,下面的方法不起作用: function fn() { var config = {}; config.utils = {}; config.utils.uuid = function(){ return java.util.UUID.randomUUID() + ''

Karate 空手道中如何通过示例表传递路径中的响应变量

我试图在URL路径中传递一个变量值,该值进一步存储在示例表中。 不幸的是,它给了我错误。 谁能帮忙吗 背景: *def challengeID=res.challengeID *def版本='2' 给定url分派和路径'/api/fire/v'+version+'/sms/otp/'+ 参数code= 标题内容类型='application/json' 当方法获得状态400时 很抱歉,示例:表不能是动态的。这是标准的“黄瓜”行为。使用表格: 但我认为你把事情复杂化了。你应该这样做: And pa

空手道-如何将Junit RunListener添加到KarateParallel Runner

我正在尝试将RunListener添加到空手道ParallelRunner类中。我已经使用@Karate.class为空手道跑步者做了这些,并添加了一个自定义跑步者。我正在将数据写入infuxdb并生成报告,这是grafana,我能够在空手道跑步者中成功实现它。下面是同样的代码片段。我正在使用这个自定义跑步器运行我的空手道跑步器,我在其中添加了这个监听器。我想为平行跑步者实现同样的目标 @Override public void run(RunNotifier notifier) {

Karate 空手道合同测试,请举例说明

最近,我开始了微服务开发,并试图探索使用空手道框架进行合同测试。 我在空手道API自动化方面有很好的知识,但是当涉及到合同测试时,我无法在线收集很多文档或良好的起点。已经从Github中看到了test double和consumer provider示例。 请告知我可以遵循的任何示例或示例代码 已经从Github中看到了test double和consumer provider示例 在我看来,这已经足够了。只是为了确保您有正确的链接,因为此示例已简化,因此您可以将其作为独立的Maven项目运行-

Karate 特征增量(空手道)

我需要创建如下示例中所示的小猫:。但是我需要增加名字,比如name1和age1,name2和age2,name3和age3…而不是把名字和年龄放在kittens表中。我怎么能做到?感谢当您使用JSON数组调用功能时,它将在一个循环中调用该功能,在被调用的功能中,您可以访问一个名为\uu loop的特殊内置变量 请参阅此处的文档: 所以你可以做像{name:#('name'+u循环)} (编辑):显然上面的内容太混乱了:/,让我试试另一个建议。请看这个例子: 您可以看到如何在循环中100%地控制小

Karate 空手道与报表门户集成

@彼得·托马斯(peter Thomas)不确定您是否见过/听说过reportportal-。这很有趣,如果空手道能与之融合,那就太棒了。我还看到有人在那里提出了一个问题-。我将尝试集成并让您知道,我只是向您建议一些可以很好地增加价值的东西。你的想法?谢谢 我们不推荐TestNG runner,因此这可能是一个问题,除非有社区贡献:

Karate 为什么在运行Junit4 Test.java文件进行测试时,在运行功能文件之前不运行空手道运行程序文件

Karate建议,要在CI环境中运行所有测试,应在功能文件(层次结构中)上方添加一个*Test.java文件,然后使用-mvn Test命令运行。 我正在使用Runner.java文件在运行测试之前创建测试数据,然后进行清理。我在IDE中运行这个runner文件,一切都正常运行——创建数据,运行同一个包中的所有功能文件,然后执行清理。我使用Runner文件创建数据的原因是,我使用karate本身创建测试数据,Runner文件将有关创建数据的一些信息传递给功能文件以运行api测试。我之前发布了一个

Karate 在空手道中使用逻辑AND/OR和模糊匹配标记

在空手道中,是否可以用模糊匹配标记构建逻辑和/或结构?比如: * def response = {a:1, {b:null, c:2}}, {a:2, {b:[x,y,z], c:3} * match each response == {a:'#number', {b:('#present' && ('#null' || '#array'), c:'#number'} 基本上,检查键b是否存在,is value是否为null或一个JSON数组我建议您将匹配分为两个步骤,以避免过

Karate 如何对带参数的条件功能调用使用eval?

我想用参数调用功能文件中的另一个功能文件,但前提是前一个api响应的数据值为真。在运行这个eval函数之后,我想让它继续运行我的主要功能的其他部分。我写了这段代码 eval if(response.data.eula==true)karate.call('classpath:eula/eula sign.feature'){no:'#(no)”,password:#(password)} 但我不能这样使用eval。我怎样才能达到我上面解释的目标 我尝试过条件逻辑方法,这在空手道直觉页面中有解

线程中的异常';显示main';使用karateConfig.js时

我在试着准备空手道。当我尝试登录应用程序时,会显示以下错误。请看一下配置文件,让我知道是否有错误,还请看一下下面包含的功能文件 使用karateConfig.js时,线程“main显示”中出现异常 下面是配置文件 function fn() { var env = karate.env; // get system property 'karate.env' karate.log('karate.env system property was:', env); if (!en

Karate 如何在空手道框架中基于状态检查值

数据中有三列 姓名年龄性别错误代码 南非15米成功 SR 20 F成功 如果api的状态仅为200,我应该检查姓名、年龄、性别的匹配响应 如果API的状态为400,我应该只检查错误代码。阅读以下内容: 请阅读以下内容: 到目前为止你试过什么?到目前为止你试过什么? * def expected = responseStatus == 400 ? { err: 'code' } : { foo: 'bar' } * match response contains expected

Karate 空手道用户界面:Javascript下拉列表未被点击

注意:这里没有本机或传统的下拉列表。使用Javascript/Material UI下拉列表。使用鼠标()和输入(),例如 Scenario: Sample scenario Given driver 'https://material-ui.com/components/selects/' * delay(5000) * scroll("//div[@id='demo-simple-select']") * click('#demo-simple-select')

Karate 有没有办法在空手道中的场景大纲名称中添加Datatable行号

我正在使用示例Datatable使用csv文件,如下所示: 示例: |读取('file.csv')| 我知道uu num将具有迭代的行号,并且能够使用*print u num打印它 但当我尝试将该行号添加到场景大纲标题时,它并没有给出值。其报告仅为_num。 尝试使用#和###,但运气不佳。 尝试以下方法: 场景大纲:场景#(uu num) 场景大纲:场景##(uu num) 场景大纲:场景“#”(uuu num)” 场景大纲:场景“###u num” 我可以在标题中添加单元格值,但行号不起作用

Karate ';匹配每个';失败,不是json数组:+;[类型:JSON,值:com.jayway.jsonpath.internal。JsonContext@68c87fc3],路径:$

我正在尝试验证json模式。当我尝试这样做时,我得到了以下错误 实际反应 { “第2页”, “每页”:6, “总数”:12, “总页数”:2页, “数据”:[ { “id”:7, “电子邮件”:“迈克尔。lawson@reqres.in", “名字”:“迈克尔”, “姓氏”:“劳森”, “阿凡达”:https://reqres.in/img/faces/7-image.jpg" }, { “id”:8, “电子邮件”:“林赛。ferguson@reqres.in", “名字”:“林赛”, “姓”

如何从数据库中提取数据以与来自karate的restapi响应进行比较

我在github中看到一些文档- 但是想知道更多类似的东西-它支持JDBC驱动程序支持的任何数据库的DB测试吗,Cassandra,MongoDB。 如果我能看到更多关于使用空手道进行db验证的文档/特性测试,那就太好了。这只是JDBC的一个演示示例,您应该使用这个示例在项目中编写类似的实用程序 请参阅文档中的操作方法。以及演示示例中的dogs.feature 最好的:p这只是JDBC的一个演示示例,您应该使用这个示例在项目中编写一个类似的实用程序 请参阅文档中的操作方法。以及演示示例中的dog

Karate 在空手道DSL功能文件中使用模拟并单独运行

我有REST服务,它是用不同于Java的语言编写的。 它与其他REST服务几乎没有依赖关系 例如,正在开发和测试的服务是A,其他服务分别是B和C 我想为A运行系统测试,有些测试要求B或/和C联机并从A执行查询 我编写了b-mock.featue和c-mock.feature来表示mock中的服务 我还编写了一些a-test-smth.feature文件来针对a 是否可以将一些信息添加到a-test-smth.feature中,以便为具体测试启用一些模拟 现在,我应该运行独立的karate.jar

Karate 重写被调用功能中的变量

我正在使用空手道为RESTAPI编写集成测试。在所有测试场景中,我都必须登录用户才能为所有与RESTAPI相关的调用获取身份验证令牌。因此,我想将登录逻辑放入一个单独的空手道功能中,这样我就不必将登录API调用复制并粘贴到所有其他场景中 从doku中,我可以知道如何在另一个功能中调用我的login.feature(注销,需要登录用户)。我还可以将用户名和密码从调用logout.feature传递给被调用的login.feature。但是我也希望我的login.feature可以自己执行,所以我必

无法使用karate.merge()函数

我试图使用自述文件中JSON Transforms部分下的karate.merge()示例verbatim,但失败的原因是: javascript evaluation failed: karate.merge(foo, { b: 2 }), TypeError: karate.merge is not a function in <eval> at line number 1 有人能帮我指出我可能遗漏了什么吗?对我很有用。你一定是用错了空手道:啊。。。我看到该函数是在0.9.3中

Karate 空手道并行测试

我正在使用空手道自动化我的项目中的事情,我非常激动地说,空手道的方式提供了API测试的解决方案。我在我的项目中有一个要求,当多个用户同时执行相同的任务时(完全相同的时间,包括几秒钟),我需要检查对系统的影响。我想确定死锁、响应时间增加、应用程序崩溃等问题。。。使用此测试。给我一个提示,我怎样才能在空手道中获得并行测试解决方案?有一种叫做空手道加特林的东西,请阅读:

Karate 空手道中的日期格式

我从空手道功能文件中的SQL查询返回了以下日期: 2020-01-31 00:00:00.0 我需要将其转换为:31-JAN-20格式。我尝试了以下方法: * def effectiveDt = """ function(s) { var SimpleDateFormat = Java.type('java.text.SimpleDateFormat'); var sdf = new SimpleDateFormat("d

Karate 无法使用CLI运行空手道测试

我无法使用CLI执行测试。跑步者工作。我正在使用版本0.9.5.RC5和maven命令:“mvn test-f pom.xml exec:java-Dexec.mainClass=com.intuit.karate.cli.Main-Dexec.args='-d'-Dexec.classpathScope=test” 以下是错误: 错误com.intuit.karate-驱动程序配置/启动失败:无法按名称构造类:karate-http.properties未找到,正在中止,选项:{type=ch

Karate 如何添加此数组的所有值

这可能是一个非常愚蠢的问题,但是有人能告诉我如何在空手道中对以下数组求和吗 简单数组[18190220,0] 像这样的 def响应=[18、190、220、0] 和断言响应==428参考循环: 如果上面的内容看起来太吓人了,你可以将其定义为一个可重用的函数,或者你可以使用你编写的Java实用程序:Thank you@peter,这是可行的,我实际上是在尝试使用reduce方法,但对于那些没有将其空手道版本升级到0.9.4的人来说,这不起作用。它将是*eval Karate.forEach(数

Karate 空手道用户界面-维护浏览器cookies/会话/本地存储变量值

我正在测试我的网站的各个组件,要测试每个组件,用户必须登录是一个先决条件。当用户登录到网站时,web服务器在浏览器中创建cookie,然后允许用户访问这些组件/页面。现在,为了测试每个组件(我正在为其编写几个场景),我每次都在场景中编写登录代码,因为每当我的场景开始使用以下行时 @tag Feature: User List I want to use this template for my user list @tag1 Scenario: Login failure erro

Karate 空手道UI是否支持多远程/基于web的聊天应用程序?

空手道UI是否支持多远程或任何基于web的聊天应用程序?可以启动两个驱动程序吗?有人能推荐一下吗 Background: * configure driver1 = { type: 'chrome' } * configure driver2 = { type: 'chrome' } Scenario: try to login to github and then do a google search Given driver1 "<chat-url

Karate 如何使用空手道DSL在cucumber报告中添加打印输出(响应体-JSON或文本)?

如何使用空手道DSL在cucumber报告中添加打印输出(响应正文-JSON或文本)?。还附加了一个文件,以便可以在报告中查看该文件 当前,cucumber报告中仅显示Docstg 如果提供任何样品,请提供帮助。谢谢。以下是关于如何集成Cucumber Reporting插件的文档,该插件将为您提供所需内容,并提供示例屏幕截图: 如果使用print语句,该输出也会显示在日志中,可以是JSON或XML。请注意,print语句可以进行“漂亮的打印” 在我看来,现在不需要额外的附件,也不支持附件。谢谢

上一页   1   2    3   4   5   6  ... 下一页 最后一页 共 37 页