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

如何让cucumber测试步骤只在Chrome上运行一半步骤,其余步骤在不同浏览器上运行?

应子真
2023-03-14
Given I navigate to my setup application
And I published an article
When I open client website
Then I can see the published article

步骤1和步骤2是需要在安装网站上运行的安装步骤,并且只需要在chrome上运行一次来为场景创建安装。一旦完成,那么步骤3和步骤4需要在客户端网站上的不同浏览器/设备(即Chrome,Firefox,Safari,Mobile)上进行检查。

我的框架是用Cucumber和JavaScript编写的。我如何在cucumber中实现这一点,场景的一些步骤只在chrome上运行一次,其余的步骤应该在不同的设备和浏览器上运行?

我相信我不能使用breefore和after hooks,因为每个测试的安装步骤不同,但是breefore和after hooks可以运行于框架中的所有测试。另外,不能使用background,因为background将是每个功能文件中所有测试的background。但在我的例子中,每个测试都有不同的设置。

共有1个答案

薛宏壮
2023-03-14

为什么在这个特定场景中,您需要通过浏览器执行前两个步骤。您肯定知道,一篇发表的文章只是数据存储中的一个记录。当然,您可能有一些场景显示可以使用web界面创建文章。

Scenario: Create article
  Given I can create an article
  When I create an article
  Then I should have created an article

但是一旦你有了这些,你就不再需要在每次你需要创建一篇文章的时候通过你的web界面了。相反,您可以通过

1)直接调用创建文章的服务(首选)2)直接写入数据库以创建适当的文章记录

Scenario: View my published article
  Given I have published an article  # shortcuts and does not use a browser
  When I view my article             # uses a browser
  Then ...
 类似资料:
  • 我试图找出是否有一个选项来找出当前正在执行的cucumber步骤,我试图根据步骤名称执行某些操作。 我可以看到StepDefinitionMatch类获得了这些步骤,但我不确定如何在运行时访问这些步骤。有人帮忙吗?如果有帮助,添加调用堆栈的快照。

  • 我设置了以下测试用例: 我想使用Groovy脚本测试步骤获得SoapRequest测试步骤的状态。 它可以如下所示完成: 但是我不想通过脚本运行TestStep,而只是使用soapui testrunner。在datasink测试步骤中,我可以使用这个: 不幸的是,上述方法在GroovyScript TestStep中不起作用 有什么想法吗?

  • 我目前正在尝试创建我的第一个cucumber测试。在Java Eclipse中,我创建了一个包含以下内容的“功能文件”: 我还创建了以下testrunner文件: 我还创建了我的步骤定义: 公共类LoginStepDefinitions{ } 当我将脚本作为Junit测试运行时,控制台会成功执行测试并显示结果: 但是当打开JUnit选项卡时,会发生两件事: 1)测试步骤似乎没有显示: 2)当我双击

  • 这个问题类似于如何运行github操作步骤,即使前一步失败,但仍然无法完成作业,但接受的答案对我没有帮助,因为它会创建一个额外的作业。 下面我要做的是 当测试应用程序(步骤2)通过时;测试清理步骤应该运行,github操作工作流返回成功 当测试应用程序(步骤2)失败时;应运行测试清洁、行动松弛和失败行动步骤。github操作工作流返回失败 我如何修复下面的代码来实现它?

  • 我已经在GitHub操作中设置了一个工作流来运行我的测试并创建测试覆盖的工件。我的YAML文件的精简版本如下所示: 问题是当测试失败时,工件不会被创建。 我从文档中找到了关于的条件,但这也会导致在我的步骤失败时运行此步骤。我不希望发生这种情况,因为在这种情况下没有什么可归档的。 如果上一步已经运行(成功或失败),我如何才能运行此步骤?

  • 我想在每个步骤之前和之后执行一些操作(而不是场景)。用cucumber怎么做? 就像jUnit中的后和前。 **我正在使用java。