如何在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测试被执行时,它会启动单独的会话。
是否有办法用相同的浏览器会话继续测试的其余部分
你可以在每个功能的基础上这样做(即你可以在一个功能的所有场景中重用相同的浏览器),通过在[BeforeFeature]
钩子中创建你的浏览器实例,然后在每个场景中使用它。只要你的[beforeFeature
和[BeforeScenario]
钩子在同一个类中,那么你可以声明一个静态字段,它持有你的浏览器实例,并在[BeforeFeature]
钩子中填充它,并在[BeforeScenario]
钩子中重用该字段。
但是考虑一下你是否真的想这样做。如果您的场景以不同的顺序运行,将会发生什么?没有什么能保证测试执行顺序。还是并行?
我非常怀疑这种方法在长期内是否能很好地扩展。
如果你想有一些共同的设置,那么创建一个背景或创建一个步骤来完成设置,并从每个场景调用它。如果您希望设置步骤执行一些已经在另一个测试中使用过的操作,您甚至可以从这个设置步骤调用其他步骤。