我正在研究一组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|
电子表格如下所示:
有什么想法?您是否使用过不同的东西来避免在Cucumber定义中使用长数据表?
答案 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语句和对象是使用不同开关一起收集测试数据的好方法。尝试使用这些,不仅一切都看起来更干净,但它会使它更容易理解。