我在不同环境中执行 cucumber-jvm 场景时遇到问题。包含在场景特征文件中的数据属于一个环境。为了在不同的环境中执行场景,我需要根据要执行的环境更新特征文件中的数据。
例如,在以下场景中,我将搜索条件包含在功能文件中。搜索条件适用于 QA 环境。
Scenario: search user with valid criteria
Given user navigated to login page
And clicked search link
When searched by providing search criteria
|fname1 |lname1 |address1|address2|city1|state1|58884|
Then verify the results displayed
它在 QA 环境中运行良好。但是要在其他环境(UAT,stage..)中执行相同的场景,我需要根据这些环境中的数据修改特征文件中的搜索条件。
我正在考虑在不同环境的属性文件中维护场景的数据,并根据执行环境读取它。
如果数据在属性文件中,场景将如下所示。而不是搜索条件,我将给出 propertyName:
Scenario: search user with valid criteria
Given user navigated to login page
And clicked search link
When searched by providing search criteria
|validSearchCriteria|
Then verify the results displayed
有没有其他方法可以维护所有环境的场景数据并根据场景正在执行的环境使用它?请告诉我。
谢谢
最佳答案
我明白这个问题,但我不太明白这个例子,所以请允许我提供我自己的例子来说明如何解决这个问题。
假设我们测试一个图书馆管理软件,并且在我们的开发环境中,我们的测试数据有 3 本书 Leo Tolstoy。
我们可以有这样的测试用例:
Scenario: Search by Author
When I search for "Leo Tolstoy" books
Then I should get result "3"
现在让我们假设我们创建了 QA 测试环境,并且在该环境中我们有 5 本书 Leo Tolstoy。问题是我们如何修改我们的测试用例,使其在两种环境中都能正常工作?
一种方法是使用标签。例如:
@dev_env
Scenario: Search by Author
When I search for "Leo Tolstoy" books
Then I should get result "3"
@qa_env
Scenario: Search by Author
When I search for "Leo Tolstoy" books
Then I should get result "5"
这里的问题是我们有很多代码重复。我们可以通过使用 Scenario Outline 来解决这个问题,如下所示:
Scenario Outline: Search by Author
When I search for "Leo Tolstoy"
Then I should see "<number_of_books>" books
@qa_env
Examples:
| number_of_books |
| 5 |
@dev_env
Examples:
| number_of_books |
| 3 |
现在当你执行测试时,你应该在开发环境中使用@dev_env标签,在QA环境中使用@qa_env。
我很高兴听到解决此问题的其他方法。
关于cucumber - cucumber 场景如何根据环境实现不同的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29713935/