【发布时间】:2018-10-25 21:44:46
【问题描述】:
我为网站编写自动化测试。我使用的是 cucumber-jvm 和 selenium webdriver。 我想在我的项目中有类似配置的东西。
例如假设我想测试两个网站的自动化。这两个网站上的一切都是一样的。 例如,在我的功能中,我有两种情况 - 用户名字段的成功自动化和边界检查。
想象一下我的功能文件是这样的:
Scenario: User enters valid parameters ....
Given User is on main page
When User enters "username" as "username"
When User enters "Test@123" as "password"
#Then do something
Scenario: User tries to enter more than 20 characters in username field
Given User is on main page
When User enters "30" characters as "username"
Then text length in the "username" field should be "20"
但网站的用户名和密码不同。用户名字段的最大长度也不同。我想要以下内容:
Scenario: User enters valid parameters
Given User is on main page
When User enters "@username" as "username"
When User enters "@password" as "password"
#Then do something
Scenario: User tries to enter more than 20 characters in username field
Given User is on main page
When User enters "30" characters as "username"
Then text length in the "username" field should be "@max_length_username"
当我更改我的网站时,我只想更改一些文件,其中定义了这个全局变量。
例如,在我的代码中,我有 @given 方法
public void user_is_on_Registration_page() throws Exception {
driver.get("https://website.test");
username.sendKeys("username");
password.sendKeys("Test123");
}
我想把它改成方法:
public void user_is_on_Registration_page() throws Exception {
driver.get(website);
username.sendKeys(username);
password.sendKeys(password);
}
我想要一个文件,我可以在其中设置所有配置和变量,并在我的 .java 和 .feature 文件中使用它们。 我怎样才能做到这一点?
【问题讨论】:
-
网站是一起测试还是分开测试?如果单独设置,那么您可以设置系统属性或与被测网站标识符类似的东西。创建一个具有逻辑的类,以根据系统属性从适当的配置文件中访问实际的键和值。将特征文件中的值传递给该类以获取实际值。
-
谢谢 Grasshoper,我按照你的解决方案做了
标签: selenium-webdriver automated-tests cucumber cucumber-jvm