我正在尝试使用带有selenium webdriver for php的BDD和Mink自动化sugarcrm功能。我已经正确安装了它们并能够运行behat和mink。例如,检查在sugarcrm上的登录是一个功能。
现在问题是当我创建两个功能文件时说login.feature和setup.feature。 Behat在浏览器中成功自动化登录过程但是一旦切换到需要从先前功能维护登录会话的setup.feature,它就会破坏会话并返回登录窗口。因此,第二次特征测试总是失败。
如何维护功能套件中每个功能的会话?
只是告诉大家我已经在一个功能文件中尝试了它们作为不同的场景,但没有运气,因为同样的事情是haapening
如果有人知道,请帮助我。
答案 0 :(得分:11)
功能和方案应独立。预期的行为是,如果您在一个场景中执行某些操作,则状态不会传递到下一个场景。
我不确定你想要实现的目标,但你肯定做错了什么。
编辑:
如果您需要在每个场景之前登录用户,只需编写一个元步骤来执行所有必要的操作:
Given I am logged in
您可以使用step execution chaining或直接致电Mink。
如果要素文件中的每个方案都需要登录,则可以使用背景:
Background:
Given I am logged in
Scenario: Listing users
Given ...
Scenario: Removing a user
Given ...
答案 1 :(得分:1)
我完全同意Jakub Zalas的回答
如果您的目标是摆脱重复的代码,在每个功能中声明背景,我相信您可以使用hooks在每个方案之前执行所有必需的操作