Глобальные переменные среды для cucumber-jvm и selenium WebDriver - PullRequest
0 голосов
/ 19 октября 2018

Я пишу автоматизированные тесты для веб-сайтов. Я использую 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.Как мне этого добиться?

1 Ответ

0 голосов
/ 25 октября 2018

Я нашел ответ, это не лучший подход, но он работает.

У меня есть переменные класса.

public class Variables {
 public String valid_username = "someusername";
 public String valid_password = "Test@123";
 public Map<String,String> variables = new HashMap<String,String>();
 public Variables(){
     variables.put("valid_username",valid_username);
     variables.put("valid_password",valid_password);
  }
 public String getVariable(String key){
     return variables.get(key);  
 }
 }

Это конфиги.В функции у меня есть шаг:

  When User enters "valid_username" as username
  And User enters "valid_password" as password

Вот и все.Тогда в моих определениях шагов я просто называю

variables.getVariable(arg1);  //arg1 is "valid_username" from feature file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...