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

从具有多个场景的功能文件返回变量-空手道

微生季
2023-03-14

我们已经知道场景是并行运行的。但是我们需要从功能文件(将从另一个功能文件调用)返回变量。

我们在功能文件中有如下多个场景:

@mutation
Feature: Test GraphQL Create Item
Background:
    Given url baseUrl
    * configure headers = { Authorization: '#(token)' }

@negative
Scenario: Create item unauthorized
    * configure headers = { Authorization: ""}
    #Features calling function and others
    And match response.errors[0].message == errorUnauthorized

Scenario: Create story authorized
    #Features calling function and others
    And def idItem = response.data.CreateItem.id

我们正在重用上面的特征文件,以获取用于另一个特征文件的变量。然而,其他特征文件似乎间歇性失败,抱怨从其他特征文件获得的变量为空。

我的假设是返回的变量没有正确返回,因为功能文件上有多个场景。我们试图删除@负面场景,但只有1个场景。突然间,断断续续的故障消失了。

在保持并行运行场景的能力的同时,是否有任何方法可以避免这种间歇性故障?

谢啦

共有1个答案

魏楷
2023-03-14

没看到你的代码不能说。但是您可以尝试在调用功能文件中使用@并行=false注释:https://github.com/intuit/karate#parallelfalse

否则,这可能是空手道中的一个错误-因此请遵循以下流程:https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue

 类似资料:
  • 当运行我所有的功能文件时,通过竹/maven,使用“清洁测试”命令,我如何强制每个功能文件中的场景按顺序运行?在多个线程上。例如,如果我有100个功能文件,每个功能文件中有20个场景,当我用5个线程运行它们时,功能文件的顺序并不重要,功能10可以在功能15之前运行,但是每个功能内部的场景必须按顺序运行。我需要运行特性10场景1,然后运行特性10场景2,依此类推。 因此,使用5个线程: 线程1可以运

  • 在空手道中,您可以通过发送json/list调用该功能 例如: 引发错误:路径:$,实际值:'',应为:'30e093da-c4e3-4ee0-b180-e5d0b4302d9f',原因:不是子字符串 步骤: 在日志检查功能中,我试图使用 日志检查功能步骤 我尝试了另一种方法,我把它分配给 我将发送json的另一种方法 步骤为logcheck.feature 例如: 错误抛出:com.intuit

  • 我尝试用空手道设置一个集成/应用编程接口测试套件,并考虑使用空手道网络来模拟所需的服务。对于测试设置,测试A(Spring Boot应用程序)下的系统完全启动。空手道测试然后由针对该实例的Maven测试运行执行。 服务A依赖于多个其他服务,这些服务需要在测试中被模拟掉。为此,我的想法是将正在运行的KarateNetty独立实例配置为HTTP代理(由服务a的JVM参数完成)。 现在我的想法是创建一个

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

  • 我有IntelliJ 2017.1和TestNG和Cucumber。我可以从testng运行测试。xml。但是,当我在场景上用鼠标右键从IntelliJ中的Cucumber特性文件运行相同的程序并单击run时,testng中没有任何设置。xml很荣幸。无法指定testng。用于编辑配置中cucumber的xml。有解决办法吗?请帮忙!

  • 我有一个PySpark Dataframe,它有两列(,,其类型为),其值为或。我正在尝试添加一个新列,这是这两个列的总和。我遵循Pyspark中的示例:在UDF中传递多列 这显示了一系列的< code>NULL,而不是我期望的结果。 我尝试了以下任何一种方法,以查看数据类型是否存在问题 仍然得到空值。 我试着移除阵列: 这可以正常工作并显示 我试着移除UDF,但是离开了阵列: 这可以正常工作并显