【问题标题】:Cucumber/Selenium different browser testingCucumber/Selenium 不同浏览器测试
【发布时间】:2021-03-16 15:38:43
【问题描述】:

我正在为 webui 编写测试,并且可以访问 WebGrid(实际上是 Zalenium)堆栈来发送我的 web ui 测试。我们需要针对不同平台上的不同浏览器进行测试。我们的实现目前支持从(实际上在任何地方)使用 selenium 功能从测试使用的浏览器/平台进行配置。我们使用的是用 Java 实现的 Cucumber。

我的问题是如何最好地涵盖我想在一次运行中测试的所有浏览器/平台组合中的所有测试?

我知道我可以这样做:

Scenario Outline: Basic ui test
  Given browser "<browser>" on platform "<platform>"
  When user does something
  Then something happens
  Examples:
    | browser | platform |
    | firefox | linux    |
    ...

但这有几个缺点:

  • 示例表需要在很多很多场景中保持一致
  • 按照设计的实际参数使用示例更加复杂(需要为实际示例数据的每个组合设置浏览器组合)

除了这些示例之外,还有没有办法使用不同的配置重新运行测试?一种选择是简单地使用不同的浏览器/平台配置多次运行测试套件,但我更愿意一次运行以进行报告。

【问题讨论】:

    标签: selenium cucumber cross-browser testng cucumber-java


    【解决方案1】:

    我认为构建测试然后使用不同的浏览器单独运行会更容易。 这样做:

    Browser 1:
    Test 1
    Test 2
    Test 3
    
    Browser 2:
    Test 1
    Test 2
    Test 3
    

    而不是

    Test 1:
    Browser1
    Browser2
    
    Test 2:
    Browser1
    Browser2
    
    Test 3:
    Browser1
    Browser2
    

    IMO 最好像版本一样跨浏览器运行,而不是在测试中混合和匹配。如果 chrome 出现故障,您会在整个运行过程中看到失败,而不是在浏览器级别。是浏览器问题还是 SUT 问题,需要更长的时间才能破译。

    【讨论】:

    • +1 此外,浏览器和平台最好作为环境或配置变量,这样可以将浏览器信息排除在测试之外。
    • 您通常会在构建系统中组织它。 stackoverflow.com/a/66404674/3945473
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 2011-11-27
    • 1970-01-01
    • 2017-12-14
    相关资源
    最近更新 更多