在afterFeature和afterScenario中,是否可以将呼叫状态作为html报告和空手道报告中的报告(最好两者都是)来查看
你能再检查一下吗。我以为《赛后》已经被记录下来了。老实说,只有在极少数情况下才应该使用after挂钩。但是,您可以随时提出功能请求,以便afterFeature也出现在日志中
编辑:实际上刚刚意识到,只有使用*.feature文件来实现afterScenario和afterFeature挂钩,才能看到日志。我刚刚测试过这个。所以你必须在hook JS中使用kar
在一个功能文件中有两个场景,场景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
我想将JSON值与空手道中的响应值相匹配。
如何从JSON和Response中检索所有字段值并进行匹配?
任何解决方案都值得赞赏
下面是示例JSON和响应
JSON: {
"Field1": 123,
" Field2": 456,
" Field3": "O",
" Field4": 1000
},
{ "Field1": 678,
" Field2": 234,
" Field3": "P",
" Field4": 20
我有一套现有的空手道测试,可以使用以下方法在不同的环境(dev/qa)上运行:
mvn test -DargLine="-DauthUser=*** -DauthPassword=*** -Dkarate.env=qa"
现在,我添加了一些gatling测试,当尝试使用以下命令在“qa”上运行测试时,测试仍然在我的默认环境中运行,即“dev”而不是“qa”
mvn gatling:test -DargLine="-DauthUser=*** -DauthPassword=*** -Dkarat
我沉浸在空手道的特色中。我有一个与从jar文件调用javascript函数相关的查询。我知道从罐子里调用javascript有点疯狂。我理解你的建议,在你建议使用java的地方使用复杂的定制工具,但我们有这个要求。请帮我做这个
我使用JavaInterop调用java函数(来自我创建的外部jar文件)
以类似的方式,我希望访问/使用javascript文件并使用其中的函数。其中javascript文件与我创建的jar文件位于同一个jar文件中
我能够从类路径中存在javascript文件的同一个
这是我的功能文件:
*def Json=read('1.Json')
*打印Json.Id
*set Json.Id=Product\u Num
*打印Json.Id
我想用新产品编号替换我的Id。运行空手道后,我看到结果是正确的,新产品编号被输出(通过第二次打印结果)
但id值不会在1.json文件中更新
如何更新1.json文件值?我需要替换试图写入文件的1.json文件中的id值。当你使用空手道时,这通常是不需要的,因此不直接支持。您是否希望您的测试数据一直在更改,因为您的测试正在更新从
抄袭
我收到以下错误消息:
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
我需要验证一个JSON响应(如下所示),并检查JSON数组中是否有任何一项的日期为createdDate
“createdDate”实际上是作为时间戳返回的,但我没有实际值。我唯一需要确认的是今天的日期。项目的顺序也不保证。我查看了在中指定的javascript宏,但它没有我尝试执行的示例。请让我知道任何建议
{
"items": [
{
"id": "...",
"name": "...",
"createDate": "03
在空手道中,我可以自动更新请求负载(JSON格式)中某个字段的值吗?
我正在处理以下场景-
1.提交POST请求以创建对象。使用请求有效负载(JSON格式)。
2.查询数据库以验证此对象是否已创建。每个对象创建都会生成一个唯一的ID。
3.提交另一个POST请求以删除在步骤1中创建的此对象。使用单独的请求负载(JSON格式)
问题-
如何自动更新请求负载以删除此对象?在这个有效负载中唯一需要更新的是ID字段,该字段带有ID的值,我将从DB中获取该值(步骤2)。基本上,除了Delete有效负载中的
我们需要将.avro文件作为输入请求发送到API。我真的被困在这一点上了。如果提供任何详细示例,我们将不胜感激。只需使用Java互操作:
您需要编写一个助手(从静态方法开始)来将JSON转换为Avro,反之亦然。我知道团队在gRPC中使用这个。阅读此帖子获取提示:
还有一个“空手道grpc”项目:非常感谢peter,我知道这是出于空手道要求avro转换为json,反之亦然转换参考。有什么帮助吗?@SandeepPadala我在谷歌上找到了一些链接。试试看!
当我在Eclipse中使用DBUtils.java并在那里运行测试时,它工作得很好,但是当我通过Jenkins运行它时,第一次使用DBUtils是失败的。第二部作品。。。
它第一次使用db.readRows时失败
Scenario: Account Create
Given path 'accounts'
And header Authorization = setup.authorization
And request {identifier: KarateC
我正在尝试在一个特性中实现重试直到功能
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
以下代码:
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
提供以下输出:
我必须将每个场景的结果更新到第三方应用程序,为了实现它,我在after场景中调用了一个特性(updateResults.feature)。但是我不知道如何将场景状态(通过,失败)传递到场景之后。
注意:使用空手道版本0.8.0.RC3参见示例,您可以传递参数:
karate.call('after-scenario.feature', { caller: info.featureFileName });
请参阅有关空手道的文档。karate.call():谢谢您的及时回复。我不确定哪个对象包含
我正在我的hook文件中执行karate.log(…args)。它打印在karate.log和控制台上
但是,我在surefire生成的.json文件中找不到日志,这导致日志没有出现在我的html报告中
这里有我遗漏的步骤吗
非常感谢 是,抱歉,钩子不会登录到HTML报告。你是在做测试还是只是担心报告:)啊,我明白了。哈哈,我只是想让这个错误在任何时候都能凸显出来:)我在这里找到了你的答案。会把它作为其他人谁是寻找同样的东西的参考。再次感谢你,彼得!:)@雷蒙德,develope分支中的一些修
“空手道”在读取XML时似乎丢弃了XML中的DTD部分。我的请求必须包含DTD。
有没有一种方法可以让我在不被丢弃的情况下添加它
我试过“set”,但显然它也被丢弃了
我尝试过使用“文本”,但是XML文件中的引用值也没有被解析,所以这不起作用
*def req=调用读取(myXML.xml)
myXML.xml看起来像这样
当我打印req时,我看到的是
在发送XML之前,先使用文本,然后使用字符串替换。有很多方法,看看这个答案:
编辑:一个提示是,如果希望使用字符串发出请求,但将内容类型
在我们基于web的应用程序中,URL包括数据语言,但为了在应用程序中创建数据,用户需要在每个场景中传递场景URL中的语言
我们是否可以在后台包含该语言,以便用户不需要在每个场景中传递该语言?请建议
例如,您是否尝试将*param lang=“en_US”添加到背景中?您是否尝试将*param lang=“en_US”添加到背景中?感谢您的回复。如果我们想在API URL的末尾使用这个lang(作为URL的一部分),并且在每个场景中也使用这个lang呢?我认为要做到这一点,您需要在karate-c
我试图通过空手道将一个特定的键、值添加到请求体中,作为x-www-form-urlencoded
示例中的最后一个“And请求”失败
通过邮递员,我创建了一个工作示例,为我们提供了正确的响应。(导出以下主要部分)
“项目”:[
{
“名称”:http://www.google.com/api",
“请求”:{
“方法”:“发布”,
“标题”:[
{
“键”:“内容类型”,
“名称”:“内容类型”,
“值”:“application/x-www-form-urlencoded”,
“类型”:“文本
媒体类型:多部分/表单数据和值作为查询类型
有关更多详细信息,请参阅附件
请参阅多部分字段:
如果您有查询参数,请使用param。但仅仅从一张截图就很难理解
如果您仍然被卡住,请提供一个cURL命令(您可以从邮递员、浏览器等导出),我们可以解决这个问题。请参阅多部分字段:
如果您有查询参数,请使用param。但仅仅从一张截图就很难理解
如果您仍然卡住,请提供一个cURL命令(您可以从邮递员、浏览器等导出),我们可以解决这个问题。请将您以前问题的答案标记为“已接受”:我已添加了我对以前问题的评论。
上述功能文件适用于空手道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() + ''
我试图在URL路径中传递一个变量值,该值进一步存储在示例表中。
不幸的是,它给了我错误。
谁能帮忙吗
背景:
*def challengeID=res.challengeID
*def版本='2'
给定url分派和路径'/api/fire/v'+version+'/sms/otp/'+
参数code=
标题内容类型='application/json'
当方法获得状态400时
很抱歉,示例:表不能是动态的。这是标准的“黄瓜”行为。使用表格:
但我认为你把事情复杂化了。你应该这样做:
And pa
我正在尝试将RunListener添加到空手道ParallelRunner类中。我已经使用@Karate.class为空手道跑步者做了这些,并添加了一个自定义跑步者。我正在将数据写入infuxdb并生成报告,这是grafana,我能够在空手道跑步者中成功实现它。下面是同样的代码片段。我正在使用这个自定义跑步器运行我的空手道跑步器,我在其中添加了这个监听器。我想为平行跑步者实现同样的目标
@Override
public void run(RunNotifier notifier) {
最近,我开始了微服务开发,并试图探索使用空手道框架进行合同测试。
我在空手道API自动化方面有很好的知识,但是当涉及到合同测试时,我无法在线收集很多文档或良好的起点。已经从Github中看到了test double和consumer provider示例。
请告知我可以遵循的任何示例或示例代码
已经从Github中看到了test double和consumer provider示例
在我看来,这已经足够了。只是为了确保您有正确的链接,因为此示例已简化,因此您可以将其作为独立的Maven项目运行-
我有两个json,如下所示:
* def first = [{"code":"00","name":"A","iconUrl":"https:env1.test.png"}, {"code":"01","name":"B"}, {"code":"03",&qu
我需要创建如下示例中所示的小猫:。但是我需要增加名字,比如name1和age1,name2和age2,name3和age3…而不是把名字和年龄放在kittens表中。我怎么能做到?感谢当您使用JSON数组调用功能时,它将在一个循环中调用该功能,在被调用的功能中,您可以访问一个名为\uu loop的特殊内置变量
请参阅此处的文档:
所以你可以做像{name:#('name'+u循环)}
(编辑):显然上面的内容太混乱了:/,让我试试另一个建议。请看这个例子:
您可以看到如何在循环中100%地控制小
@彼得·托马斯(peter Thomas)不确定您是否见过/听说过reportportal-。这很有趣,如果空手道能与之融合,那就太棒了。我还看到有人在那里提出了一个问题-。我将尝试集成并让您知道,我只是向您建议一些可以很好地增加价值的东西。你的想法?谢谢 我们不推荐TestNG runner,因此这可能是一个问题,除非有社区贡献:
Karate建议,要在CI环境中运行所有测试,应在功能文件(层次结构中)上方添加一个*Test.java文件,然后使用-mvn Test命令运行。
我正在使用Runner.java文件在运行测试之前创建测试数据,然后进行清理。我在IDE中运行这个runner文件,一切都正常运行——创建数据,运行同一个包中的所有功能文件,然后执行清理。我使用Runner文件创建数据的原因是,我使用karate本身创建测试数据,Runner文件将有关创建数据的一些信息传递给功能文件以运行api测试。我之前发布了一个
在空手道中,是否可以用模糊匹配标记构建逻辑和/或结构?比如:
* 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数组我建议您将匹配分为两个步骤,以避免过
我想用参数调用功能文件中的另一个功能文件,但前提是前一个api响应的数据值为真。在运行这个eval函数之后,我想让它继续运行我的主要功能的其他部分。我写了这段代码
eval if(response.data.eula==true)karate.call('classpath:eula/eula sign.feature'){no:'#(no)”,password:#(password)}
但我不能这样使用eval。我怎样才能达到我上面解释的目标
我尝试过条件逻辑方法,这在空手道直觉页面中有解
我在试着准备空手道。当我尝试登录应用程序时,会显示以下错误。请看一下配置文件,让我知道是否有错误,还请看一下下面包含的功能文件
使用karateConfig.js时,线程“main显示”中出现异常
下面是配置文件
function fn() {
var env = karate.env; // get system property 'karate.env'
karate.log('karate.env system property was:', env);
if (!en
数据中有三列
姓名年龄性别错误代码
南非15米成功
SR 20 F成功
如果api的状态仅为200,我应该检查姓名、年龄、性别的匹配响应
如果API的状态为400,我应该只检查错误代码。阅读以下内容:
请阅读以下内容:
到目前为止你试过什么?到目前为止你试过什么?
* def expected = responseStatus == 400 ? { err: 'code' } : { foo: 'bar' }
* match response contains expected
注意:这里没有本机或传统的下拉列表。使用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')
我正在使用示例Datatable使用csv文件,如下所示:
示例:
|读取('file.csv')|
我知道uu num将具有迭代的行号,并且能够使用*print u num打印它
但当我尝试将该行号添加到场景大纲标题时,它并没有给出值。其报告仅为_num。
尝试使用#和###,但运气不佳。
尝试以下方法:
场景大纲:场景#(uu num)
场景大纲:场景##(uu num)
场景大纲:场景“#”(uuu num)”
场景大纲:场景“###u num”
我可以在标题中添加单元格值,但行号不起作用
标签: Karate
jsonpathjsonresponse
我正在尝试验证json模式。当我尝试这样做时,我得到了以下错误
实际反应
{
“第2页”,
“每页”:6,
“总数”:12,
“总页数”:2页,
“数据”:[
{
“id”:7,
“电子邮件”:“迈克尔。lawson@reqres.in",
“名字”:“迈克尔”,
“姓氏”:“劳森”,
“阿凡达”:https://reqres.in/img/faces/7-image.jpg"
},
{
“id”:8,
“电子邮件”:“林赛。ferguson@reqres.in",
“名字”:“林赛”,
“姓”
我在github中看到一些文档-
但是想知道更多类似的东西-它支持JDBC驱动程序支持的任何数据库的DB测试吗,Cassandra,MongoDB。
如果我能看到更多关于使用空手道进行db验证的文档/特性测试,那就太好了。这只是JDBC的一个演示示例,您应该使用这个示例在项目中编写类似的实用程序
请参阅文档中的操作方法。以及演示示例中的dogs.feature
最好的:p这只是JDBC的一个演示示例,您应该使用这个示例在项目中编写一个类似的实用程序
请参阅文档中的操作方法。以及演示示例中的dog
我有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
我正在使用空手道为RESTAPI编写集成测试。在所有测试场景中,我都必须登录用户才能为所有与RESTAPI相关的调用获取身份验证令牌。因此,我想将登录逻辑放入一个单独的空手道功能中,这样我就不必将登录API调用复制并粘贴到所有其他场景中
从doku中,我可以知道如何在另一个功能中调用我的login.feature(注销,需要登录用户)。我还可以将用户名和密码从调用logout.feature传递给被调用的login.feature。但是我也希望我的login.feature可以自己执行,所以我必
我试图使用自述文件中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中
我想验证json响应的json模式,其中包含其他对象的对象。GET/persons/id请求的json响应示例,该请求将发送对象person:
{
"id":"789",
"name":"Jane",
"children":[
{
"id":"111",
"name":"Bill",
"hobbies":[
"chess",
"knitting"
],
"schools":[
{
"id":"111A",
"name":"LA public"
},
{
"id":"111B",
"name":"
我正在使用空手道自动化我的项目中的事情,我非常激动地说,空手道的方式提供了API测试的解决方案。我在我的项目中有一个要求,当多个用户同时执行相同的任务时(完全相同的时间,包括几秒钟),我需要检查对系统的影响。我想确定死锁、响应时间增加、应用程序崩溃等问题。。。使用此测试。给我一个提示,我怎样才能在空手道中获得并行测试解决方案?有一种叫做空手道加特林的东西,请阅读:
我从空手道功能文件中的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
我无法使用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
这可能是一个非常愚蠢的问题,但是有人能告诉我如何在空手道中对以下数组求和吗
简单数组[18190220,0]
像这样的
def响应=[18、190、220、0]
和断言响应==428参考循环:
如果上面的内容看起来太吓人了,你可以将其定义为一个可重用的函数,或者你可以使用你编写的Java实用程序:Thank you@peter,这是可行的,我实际上是在尝试使用reduce方法,但对于那些没有将其空手道版本升级到0.9.4的人来说,这不起作用。它将是*eval Karate.forEach(数
我正在测试我的网站的各个组件,要测试每个组件,用户必须登录是一个先决条件。当用户登录到网站时,web服务器在浏览器中创建cookie,然后允许用户访问这些组件/页面。现在,为了测试每个组件(我正在为其编写几个场景),我每次都在场景中编写登录代码,因为每当我的场景开始使用以下行时
@tag
Feature: User List
I want to use this template for my user list
@tag1
Scenario: Login failure erro
空手道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
将此问题带到下一步,可以同时删除部分满足条件的多个对象
* def json = [ { "id": "0a7936ed", "code": "test", "label": "test", "type": "sell" }, { "id": "7bc1909b2", "code"
我对我的api有以下要求。我将其外部化,以便创建动态请求
请求文件:
{
"barcodeIds": [
0
],
"batchSize": 1,
"email": "",
"etixTicketNumber": "#ETICKET#",
"fileKey": "#FILEKEY#",
"f
我有一个场景,作为响应,我收到了重复的值
And def abcName = $ListDataSet_Response.rowData[*].4
并打印abcName
[
"BP Part Sht NCA MS",
"BP Part Sht NCA MS",
"BP Part Sht NCA MS",
"BP Part Sht NCA MS",
"BP Part Sht NCA MS",
"Bay Pond USB, Inc MS",
"Bay Pond USB
我有一个json,看起来像这样
{
"name": "xyz.json",
"fileSize": "391 B",
"timestamp": "2020-06-22 12:03:00 GMT",
"tag": "abc1"
},
{
"name": "abc.json",
"fileSi
如何使用空手道DSL在cucumber报告中添加打印输出(响应正文-JSON或文本)?。还附加了一个文件,以便可以在报告中查看该文件
当前,cucumber报告中仅显示Docstg
如果提供任何样品,请提供帮助。谢谢。以下是关于如何集成Cucumber Reporting插件的文档,该插件将为您提供所需内容,并提供示例屏幕截图:
如果使用print语句,该输出也会显示在日志中,可以是JSON或XML。请注意,print语句可以进行“漂亮的打印”
在我看来,现在不需要额外的附件,也不支持附件。谢谢
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 37 页