当前位置: 首页 > 知识库问答 >
问题:

调用空手道功能与变量

章承
2023-03-14

在空手道中,您可以通过发送json/list调用该功能

例如:

引发错误:路径:$,实际值:'',应为:'30e093da-c4e3-4ee0-b180-e5d0b4302d9f',原因:不是子字符串

步骤:*调用read('Logcheck.feature'){请求ID:"#(响应头['请求ID'][0])"}

在日志检查功能中,我试图使用#(requestId)

日志检查功能步骤

* def resultFromServiceLog = utils.getResultFromLog(baseUrl,'#(requestId)','service')

我尝试了另一种方法,我把它分配给

* def x = {requestId : responseHeaders['request-id'][0]}
* call ('logcheck.feature;) x

我将发送json的另一种方法

*json req={recestId:"#(响应头['请求ID'][0])"} * 调用read('logcheck.feature')req

步骤为logcheck.feature
*print req*def结果FromServiceLog=utils.getResultFromLog(basUrl,'#(请求ID)','service')

例如:

错误抛出:com.intuit.karate.exception.KarateExcture:javascript评估失败:utils.getResultFromLog(basUrl,'#

打印请求输出为

[print]{"recestId":"c996f752-c288-40c7-9398-c913254971e6"}

共有1个答案

归翔
2023-03-14

您需要了解如何使用嵌入式表达式,请再次阅读文档:https://github.com/intuit/karate#rules-对于嵌入表达式

例如,这是错误的:

* def resultFromServiceLog = utils.getResultFromLog(baseUrl,'#(requestId)','service')

相反:

* def resultFromServiceLog = utils.getResultFromLog(baseUrl, requestId, 'service')

这是错误的:

 * call ('logcheck.feature') x

你可能是说:

* call read('logcheck.feature') x
 类似资料:
  • 我的API测试项目的工作,并已纳入空手道这样做。现在,我的要求是创建一个响应endpoint的服务器。所有这些都已完成,但我的要求是访问服务器功能中的空手道配置文件中定义的变量。我不能这样做。 例如:功能:示例服务器 场景:路径匹配('\variablevalue)**methodIs('get')) def响应=默认环境 注意:默认_env是空手道配置中的一个变量。js文件,并保存一些默认值。

  • 我需要在空手道测试的功能中使用动态值。 我遇到了一些类似这样的问题和答案:如何从excel电子表格中读取输入数据并在空手道框架中传递JSON负载? 但不管我怎么努力,我都做不到。我相信我应该分享我试图使用的代码部分,这样讨论就可以开始了。 我有一个创建新用户的SOAP请求,如下所示: 正如你所看到的,我有一些将从外部给出的变量,它们是:帐户号、子标识、子类型和移动。 现在,我有了一个特性文件,我在

  • 我正在从另一个功能文件调用登录功能文件,我在其中传递url、用户名和密码,但它对我不起作用。我没有在这里使用背景键,我也不想要。 在Login.feature我试图传递用户名和密码作为表单数据,即使这些都不起作用。有人能告诉我我在这里犯了什么错误吗? 我用的是最新空手道版本0.9.0

  • 我发现Karate非常有能力,能够满足我对自动化Json服务的需求。不过,我想了解更多有关这方面的细节。我使用了另一个框架以及groovy、Spock和Java。在我的场景中,我需要发送一个json请求,从响应中获取事务id,然后使用selenium web驱动程序执行UI测试。如何轻松地将空手道测试与selenium web驱动程序集成?这是一个示例场景,包括spock中的web服务和UI

  • 我正在使用空手道v0.9.6,这是一个很棒的工具。我有一个 我空手道配置的一部分。js: 我正在使用。sh文件如下: 而且,它在v.0.9.6上长时间运行良好。但是,当我尝试升级到v 1.0或1.0.1时,a给出了一个错误: 我发现这个问题:https://github.com/intuit/karate/issues/1515 但这些例子并不适合我。我试着用“文件:”和空手道。属性['karat

  • 我们已经知道场景是并行运行的。但是我们需要从功能文件(将从另一个功能文件调用)返回变量。 我们在功能文件中有如下多个场景: 我们正在重用上面的特征文件,以获取用于另一个特征文件的变量。然而,其他特征文件似乎间歇性失败,抱怨从其他特征文件获得的变量为空。 我的假设是返回的变量没有正确返回,因为功能文件上有多个场景。我们试图删除@负面场景,但只有1个场景。突然间,断断续续的故障消失了。 在保持并行运行