Behat Mink webdriver会话在套件中的每个功能之后被销毁

sim*_*put 3 php selenium webdriver behat mink

我试图通过BDD和Mink与selenium webdriver for php自动化sugarcrm功能.我已经正确安装了它们并能够运行behat和mink.例如,检查sugarcrm上的登录是一个功能.

现在的问题是当我创建两个功能文件时说login.feature和setup.feature.Behat在浏览器中成功自动化登录过程,但一旦切换到需要从以前的功能维护登录会话的setup.feature,它就会破坏会话并返回登录窗口.因此,第二个特征测试总是失败.

我如何为我的功能套件中的每个功能维护会话?

只是告诉大家我已经在一个功能文件中尝试了它们作为不同的场景,但没有运气,因为同样的事情是haapening

如果有人知道,请帮助我.

Jak*_*las 11

功能和场景应该是独立的.预期的行为是,如果您在一个场景中执行某些操作,则状态不会传递到下一个场景.

我不确定你想要实现什么,但你肯定做错了什么.

编辑:

如果您需要在每个场景之前登录用户,只需编写一个元步骤,该步骤将执行所有必要的操作:

Given I am logged in
Run Code Online (Sandbox Code Playgroud)

您可以使用步骤执行链接或直接调用Mink.

如果要素文件中的每个方案都需要登录,则可以使用背景:

Background:
    Given I am logged in

Scenario: Listing users
    Given ...

Scenario: Removing a user
    Given ...
Run Code Online (Sandbox Code Playgroud)

  • 我认为你在滥用这个问题.如果您的方案需要登录,则应将其明确定义为步骤.您有多种方法可以避免重复.阅读更多关于Gherkin语法(http://docs.behat.org/guides/1.gherkin.html)和Behat本身的信息.但是,我有一种感觉,你正在尝试用Behat编写功能测试.在这种情况下,你最好单独使用Mink. (2认同)