c# - 如何使用 specflow+excel 为 Specflow 中的测试保留单个 session

标签 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 |

@登录测试成功。执行@menuNavigate 测试时,它会启动单独的 session 。

有什么方法可以用相同的浏览器 session 继续测试的其余部分

最佳答案

您可以通过在 [BeforeFeature] hook 中创建您的浏览器实例,以每个功能为基础执行此操作(即您可以在功能的所有场景中重复使用相同的浏览器)然后在每个场景中使用它。只要你的 [beforeFeature[BeforeScenario] Hook 在同一个类中,那么你就可以声明一个静态字段来保存你的浏览器实例并将其填充到 [BeforeFeature] Hook 并重用 [BeforeScenario] Hook 中的字段。

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

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

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

关于c# - 如何使用 specflow+excel 为 Specflow 中的测试保留单个 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33227652/

相关文章:

Java Soap Glassfish 登录后获取 session

python - 如何使用 Selenium 和 Python 定位具有多个类名的元素

c# - 从 SOAP 响应中获取附件并保存文件

c# - 如何在 C# 中编写 REST Get-Request?

c# - 使用 ASP.NET C# 生成要在表中使用的随机数

c# - 在 Windows 移动设备上调试时,如何阻止 Visual C# 2005 崩溃?

session - 进程内是经典 ASP 存储 session 状态的唯一方式吗?

java - 无法将 SessionVariable 传递给其他流 Mule

selenium - Protractor+Typescript => 获取 "Failed: Cannot read property ' sendKeys' of undefined"

Selenium:如何让 WebDriver 忽略 "Element is not visible"错误?