背景:
.feature
文件,该文件包含18种情况。 问题:
我知道我们可以使用data tables
,scenario outline
,但是这里提到的数据将仅限于关联的方案,而不仅限于整个功能文件。
我只想{{1 }}执行完第一行数据后,应从CSV文件转到下一行,并继续执行直到CSV文件结束。
我尝试将数据表替换为MS Excel工作表,使用(.feature
个文件读取电子表格),但同样的事情再次发生,它仅在特定情况下运行。
例如这是一个POI apache
文件
.feature
现在,方案一继续运行500次(csv文件中的行数),一旦所有数据完成,它将启动第二种方案。我想要的是两种情况 应该在第1行运行,然后两种情况都应该在第2行运行,依此类推500次。
我该怎么办?是否有@regression @userValidation
Feature: User permission validation
Scenario Outline: Verify that user is able to login
Given I am on login page
When I enter "username" and "password"
Then I see new user successfully loggedin
Examples:
| username |password| // picked from excel sheet
| uname |pwd | // picked from excel sheet
Scenario: Verify that user can change the password
Given I am on user profile page
When I enter change password twice
Then I get password successfully changed pop-up
或Java
的方式(如果在黄瓜中无法做到)?
我在Windows上使用Java,Selenium WebDriver,JUnit,Cucumber,Maven
答案 0 :(得分:0)
一种方法是在功能文件的每个场景中添加示例,您已经在从外部源读取数据,因此它不会在场景级别复制数据。仍然需要为每个场景添加示例。例如:
@regression @userValidation
Feature: User permission validation
Scenario Outline: Verify that user is able to login
.....
Examples:
| username |password| // picked from excel sheet
| uname |pwd | // picked from excel sheet
Scenario Outline: Verify that user can change the password
...
Examples:
| username |password| // picked from excel sheet
| uname |pwd | // picked from excel sheet
在这种情况下,您需要注意每个方案的执行顺序。如果您使用gherkin with qaf,则可能如下所示:
@regression @userValidation
Feature: User permission validation
Scenario: Verify that user is able to login
.....
Examples: {'datafile':'resources/usersdata.csv'}
Scenario: Verify that user can change the password
...
Examples: {'datafile':'resources/usersdata.csv'}
此外,对于最新的BDD2 syntax,您可以使用以下功能文件:
@regression @userValidation
@datafile:resources/usersdata.csv
Feature: User permission validation
Scenario: Verify that user is able to login
.....
Scenario: Verify that user can change the password
...
关于执行顺序,qaf确保按脚本在功能文件中定义的顺序运行脚本。仍然可以在使用BDD2语法时在元数据中指定优先级,例如,第一种情况下为@priority:1
,第二种情况下为@priority:2
,等等。
上述情况的其他替代方案是根据条件更改优先方案,并将其视为background
,为此请参考how to use background with examples。