【问题标题】:Cucumber : How to read examples from external excel file for Scenarios OutlineCucumber:如何从外部 excel 文件中读取场景大纲的示例
【发布时间】:2018-11-07 16:37:06
【问题描述】:

我的要求是从外部 excel 文件中读取示例,而不是将其硬编码到功能文件中。我有 100 多个在功能文件中难以维护的示例。你能帮我解决这个问题吗?

这是我的场景 -

Scenario Outline: Browser Test

    When I visit the URL <base>/<page>/<ordNumber>/<custName>
    Then the browser contains test <custNumber>

    Examples: 
     | base                         | page   | ordNumber | custName |
     | http://www.stackoverflow.com | orders | 123       | John     |
     | http://www.stackoverflow.com | orders | 456       | Mike     |
     | http://www.stackoverflow.com | orders | 789       | Tom      |

我想创建一个包含示例数据的 excel 文件并在运行时加载它

examples.xls

 | base                         | page   | ordNumber | custName |
 | http://www.stackoverflow.com | orders | 123       | John     |
 | http://www.stackoverflow.com | orders | 456       | Mike     |
 | http://www.stackoverflow.com | orders | 789       | Tom      |

谢谢。

【问题讨论】:

    标签: cucumber bdd cucumber-jvm gherkin cucumber-java


    【解决方案1】:

    使用gherkin with QAF 支持您正在寻找的内容。 QAF 支持不同的外部data providers,包括 json、xml、csv、excel 和 DB。它还支持multiple bdd syntax

    下面是使用带有 QAF 的 Gherkin 或 BDD2 的示例:

    Scenario Outline: Browser Test
    
        When I visit the URL <base>/<page>/<ordNumber>/<custName>
        Then the browser contains test <custNumber>
    
        Examples: {'datafile': 'resources/testdata/examples.xls'}
    

    还有很多其他功能用于资源管理、执行配置、驱动程序管理和并行执行。

    【讨论】:

      【解决方案2】:

      在这种情况下,我会选择基于模板和使用模板引擎(如Velocity)生成功能文件。

      为了与 Excel 集成,您可以使用 POI 库正确读取您的 *.xls 文件。

      然后像使用“硬编码”文件一样运行生成的功能文件。

      希望这会有所帮助!

      【讨论】:

      • 如果单元格包含特殊字符怎么办? “换行符”,如何将其放入功能文件中?
      • 您可以用扩展版本替换实际字符(例如\n for new line),但是对于长的多行文本块,单元格不是最合适的,但是 DocString 可能是。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-23
      相关资源
      最近更新 更多