如何在Specflow中保留单个会话的测试与Specflow +excel

本文关键字:Specflow 测试 +excel 会话 保留 单个 | 更新日期: 2023-09-27 18:18:21

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

@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 test成功。当@menuNavigate测试被执行时,它会启动单独的会话。

是否有办法用相同的浏览器会话继续测试的其余部分

如何在Specflow中保留单个会话的测试与Specflow +excel

你可以在每个功能的基础上这样做(即你可以在一个功能的所有场景中重用相同的浏览器),通过在[BeforeFeature]钩子中创建你的浏览器实例,然后在每个场景中使用它。只要你的[beforeFeature[BeforeScenario]钩子在同一个类中,那么你可以声明一个静态字段,它持有你的浏览器实例,并在[BeforeFeature]钩子中填充它,并在[BeforeScenario]钩子中重用该字段。

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

我非常怀疑这种方法在长期内是否能很好地扩展。

如果你想有一些共同的设置,那么创建一个背景或创建一个步骤来完成设置,并从每个场景调用它。如果您希望设置步骤执行一些已经在另一个测试中使用过的操作,您甚至可以从这个设置步骤调用其他步骤。