【发布时间】:2020-01-30 01:25:00
【问题描述】:
说明: 作为一名测试开发人员,我想使用一个场景来测试 3 个不同的环境。
简化场景示例:
@smoke
Scenario: Login to the login page and assert that the user is logged in
Given User navigates to the page
And User enters valid login credentials
When User clicks on the login button
Then Landing page can be seen
数据(这些是从属性文件中获取的 - 转换为 POJO):
Env1.class
url = www.environment1.com
username = john
password = doe1
Env2.class
url = www.environment2.com
username = john2
password = doe2
Env2.class
url = www.environment3.com
username = john3
password = doe3
测试设置
- 每个环境都有自己的测试运行器(故障安全)
- 每个环境并行运行。
- 测试运行并通过
~mvn clean verify构建 - 测试取决于属性文件,因为环境可能会发生变化。
可能的解决方案: 有没有办法在示例表中传递 POJO?还是 Cucumber 的数据表?
我是 BDD 和 Cucumber 的新手 - 任何帮助都会很棒。谢谢。
TLDR:有没有办法在 Cucumber 的示例表中传递 Prop 文件变量?
| URL | Username | Password |
| env1.getUrl | env1.getUsername | env1.getPassword |
原来如此
@smoke
Scenario: Login to the login page and assert that the user is logged in
Given User navigates to the page <URL>
And User enters valid login credentials <Username> and <Password>
When User clicks on the login button
Then Landing page can be seen
【问题讨论】:
-
当你说每个环境都有自己的测试运行器时,环境是如何传递给运行器的?是为所有三个环境运行相同场景的 Maven 吗?有没有办法在 Step Definition 代码中知道运行时的当前环境?
-
我在每个环境中使用一个 prop 文件。每个跑步者都是通过
verify触发的
标签: selenium cucumber bdd cucumber-java