黄瓜测试表长得太长

时间:2017-05-08 21:33:01

标签: datatable cucumber spreadsheet

我正在研究一组Cucumber测试,其测试表有可能增长很多。以下示例使用此表单:

Feature: Login Action with a Named User

Scenario Outline: Succesful first login with valid credentials
Given User is on Foo LoginPage
#   And User has recently registered
When User clicks on Start Session
    And User inputs "<user>" and "<pass>"
Then I validate that "<user_full>" appears as profile name
    And Mi perfil icon is displayed

Examples:
    |user       |pass   |user_full  |
    |foo@bar.com|Test123|Foo Bar    |

我的意思是,通过这个简单的登录,数据表有三个参数。但是当我开始填写表格时,数据表很容易增加到三十,四十个参数。

我想过如下所述重写测试用例。这样,测试表中最多有两个参数:测试用例名称和用户电子邮件,它们有点像主键。

然后,使用这两个参数从电子表格中提取数据,以填写由测试用例的其余部分访问的HashMap。

Feature: Login Action with a Named User

Scenario Outline: Succesful first login with valid credentials
Given User is on Foo LoginPage
#   And User has recently registered
When User logs into app with "<user>"
Then I validate user information appears in profile name
    And Mi perfil icon is displayed

Examples:
    |TC_NAME |user       |
    |TC01    |foo@bar.com|
    |TC02    |fee@bar.com|

电子表格如下所示:

Data Pool spreadsheet

有什么想法?您是否使用过不同的东西来避免在Cucumber定义中使用长数据表?

2 个答案:

答案 0 :(得分:3)

根据Kyle的回答,我挖掘了Cucumber文档,这导致我为每个步骤使用内联管道表,而不是在示例部分中有四十列,如下所示:

...
Scenario Outline: Compose an email in Gmail
Given I am logged onto gmail with:
 |user | pwd |
 |foo  | bar |
When I click the compose button
 And enter user email, subject and message as:
  |to  | subject | message |
  |fuu | subj    | ...     |
...

可以看到,当输入更多字段时,数据变得易于管理。 此外,有一个名为Tidy Gherkin的简洁工具可以对齐管道表,因此这是一个奖励。

答案 1 :(得分:0)

如果您的方案表中有很长的参数列表,那么您最有可能做错了。

Cucumber是为对话而构建的工具,而不是后台测试。这是关于有一个可以执行的需求文档。如果没有人能够理解文档(这对于40列需要的滚动量来说会很困难),那么它就是以错误的方式编写的。

要么使用更多场景而不是编写大量复杂的表格,要么缩短您编写的场景(这通常是更好的工作方式)。

以编程方式,excel工作表,switch语句和对象是使用不同开关一起收集测试数据的好方法。尝试使用这些,不仅一切都看起来更干净,但它会使它更容易理解。