如何使用specflow + excel

时间:2015-10-20 03:49:49

标签: c# session selenium bdd specflow

登录谷歌系统时,我应该能够导航到所有菜单

@Login
Scenario: Successful Login to Google
 Given Google system launched
 When Login with XYZ
 Then Google main page displayed
@menuNavigate
Scenario Outline: Navigate to page from google menu 
    Given User navigates to <Tab> using the tabs
    When The Page is completely loaded with <Header>
    Then the result should be that a control with controlId <ControlId> is displayed on the screen

@source:menuNavigate.xlsx
Scenarios:
| Tab | Header  | ControlId |

@Login测试成功。执行@menuNavigate测试时,它会启动单独的会话。

有没有办法继续使用相同的浏览器会话进行剩下的测试

1 个答案:

答案 0 :(得分:1)

您可以在每个功能的基础上执行此操作(即,您可以在功能中的所有方案中重复使用相同的浏览器),方法是在[BeforeFeature] hook中创建浏览器实例,然后在每个方案中使用此实例。只要您的[beforeFeature[BeforeScenario]挂钩位于同一个类中,您就可以声明一个静态字段来保存您的浏览器实例并在[BeforeFeature]挂钩中填充它并重用该字段。 [BeforeScenario]挂钩。

但是考虑一下你是否真的想要这样做。如果您的方案以不同的顺序运行会发生什么?没有什么能保证测试执行顺序。或者并行?

我非常怀疑这种方法从长远来看会很好地扩展。

如果您希望有一些共同的设置,那么create a background或创建一个步骤来进行设置并从每个方案中调用它。如果您希望设置步骤执行已在另一个测试中使用的某些操作,您甚至可以call other steps from this setup step