Как реализовать многопользовательский вход в систему для тестов, которые извлекают данные для входа из файла, который содержит идентификаторы пользователя - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть веб-приложение, которое я тестирую с Selenium и Maven, выполняющими параллельные тесты. На данный момент я определяю идентификаторы для каждого теста. Что мне нужно, так это решение, в котором у меня будет пул пользователей, доступных для тестов. Во время выполнения тесты выберут идентификаторы пользователя для входа в систему из этого пула. После завершения параллельного теста идентификатор пользователя должен быть освобожден и доступен для следующих тестов. Пул должен контролироваться, а тесты должны выполняться только при наличии одного или нескольких пользователей, поэтому я буду избегать сбоев из-за недоступности пользователей.

Я новичок в этом, поэтому я ищу некоторые идеи / советы, как я могу реализовать вышеизложенное. Я использую Java.

1 Ответ

0 голосов
/ 10 апреля 2019

Вы можете сделать это, определив доступность пользователя как логическое значение.Рассмотрим эти четыре класса:

Класс для определения testUser как объекта:

package theo;

public class testUser {

    public String id;
    public String pwd;
    public boolean availability;

    public String getId() {
        return id;
    }

    public String getPwd() {
        return pwd;
    }

    public boolean getAvailability() {
        return availability;
    }

    public void setAvailability(boolean availability) {
        this.availability = availability;
    }

    public testUser(String id, String pwd, boolean availability) {
        this.id = id;
        this.pwd = pwd;
        this.availability = availability;
    }
}

Класс с testUsers:

package theo;

public class testUsers {

    testUser Jessica = new testUser("Jessica", "Jessica's password", true);
    testUser Julie = new testUser("Julie", "Julie's password", false);
    testUser Jane = new testUser("Jane", "Jane's password", true);

    public testUser[] allTestUsers = {
            Jessica,
            Julie,
            Jane
    };
}

Класс с методом теста:

package theo;

public class testMethod extends testUsers {

    public void testWhatever(testUser user) {

        System.out.println("Starting test with " + user.getId() + "'s credentials.");       
        user.setAvailability(false);        
        System.out.println(user.getId() + "'s availability is: " + user.getAvailability());     
        String id = user.getId();
        String pwd = user.getPwd();     
        // load login page, perform login and desired tests
        // ...      
        // possibly logout the user
        // ...      
        System.out.println("Login test finished, going to release user.");

        // and releasing the user
        user.setAvailability(true);

        System.out.println(user.getId() + "'s availability is: " + user.getAvailability());

    }
}

Класс для выполнения тестов в зависимости от доступности пользователя:

package theo;

import org.junit.Test;

public class testDemo extends testMethod {

    @Test
    public void performTestDueToUserAvailability() {
        for (testUser testUser: allTestUsers) {
            if (testUser.getAvailability()) {
                testWhatever(testUser);
            }
            else {
                System.out.println("User locked, skipping test.");
            }
        }
    }

}

Вывод:

Starting test with Jessica's credentials.
Jessica's availability is: false
Login test finished, going to release user.
Jessica's availability is: true
User locked, skipping test.
Starting test with Jane's credentials.
Jane's availability is: false
Login test finished, going to release user.
Jane's availability is: true
...