Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Алгоритм изучения



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


Алгоритм изучения
2018-06-11 11:17

Здравствуйте!

На сайте http://software-testing.ru есть много курсов. Но какой правильный алгоритм/порядок изучения курсов, если нужно начинать с нуля?

 

Работаю с сайтами в качестве менеджера проекта (интернет-магазина), но хотелось бы стать тестировщиком (заниматься автоматизованым тестированием. К примеру, на Java).

 

Можно узнать, какие курсы нужно пройти?  по порядку

 

Спасибо!



Самый полный мануал для тестировщиков ПО от Epam Systems - лидера в ра
2018-06-11 12:09
Ты студент или выпускник? Хочешь освоить интересную и высокооплачиваемую работу? 
Работа тестировщиком это не просто прохождение тестов, это еще и их создание! Для этого тебе понадобятся навыки программирования 
и другие навыки, которым ты обучишься в данном руководстве. В свободном доступе его нет, а купить его можно только у меня, как сотрудника данной компании. 
Ты конечно можешь собирать по крупицам информацию в интернете, но на это у тебя уйдет на порядок больше времени и сил, чем если ты прочитаешь этот грамотно 
структурированный, последовательный и наиболее полный мануал для тестировщика. И шансов трудоустроиться после качественного обучения у тебя будет гораздо 
больше, чем от постоянного насилования Гугла или Яндекса:) Хотя бы потому, что структурированная информация лучше воспринимается твоим мозгом, чем разрозненная. 
Начальная зарплата тестировщика всего лишь 30-40 тыс. рублей, но через 1.5-2 года она уже может вырасти до 100 тысяч рублей в месяц! 
А это сравнимо с зарплатой профессионального разработчика. 
По поводу приобретения мануала обращайтесь в личку
Сделка проходит строго через гарант-сервис! Вы получаете мануал, после этого переводите внесенный залог.
А вот и содержание мануала: 
ТЕМА 1: ОСНОВЫ  ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ 
1.1. ПРОЦЕСС РАЗРАБОТКИ И ТЕСТИРОВАНИЯ, РОЛЬ АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ 
1.1.1. СВЯЗЬ РАЗРАБОТКИ И ТЕСТИРОВАНИЯ 
1.1.2. ЗАДАЧИ АВТОМАТИЗАЦИИ 
1.2. КЛЮЧЕВЫЕ ПОНЯТИЯ ТЕСТИРОВАНИЯ 
1.2.1. РАЗВИТИЕ ТЕСТИРОВАНИЯ 
1.2.2. ОСНОВНАЯ ТЕРМИНОЛОГИЯ ТЕСТИРОВАНИЯ 
1.3. ТЕСТИРОВАНИЕ ДОКУМЕНТАЦИИ И ТРЕБОВАНИЙ 
1.3.1. ВАЖНОСТЬ ТРЕБОВАНИЙ 
1.3.2. УРОВНИ ТРЕБОВАНИЙ 
1.3.3. ТИПЫ ТРЕБОВАНИЙ 
1.3.4. СВОЙСТВА ХОРОШЕГО ТРЕБОВАНИЯ 
1.3.5. ТИПИЧНЫЕ ПРОБЛЕМЫ С ТРЕБОВАНИЯМИ 
1.3.6. ТЕХНИКИ РАБОТЫ С ТРЕБОВАНИЯМИ 
1.3.7. ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
1.4. РАЗРАБОТКА ТЕСТ-КЕЙСОВ 
1.4.1. КЛАССЫ ЭКВИВАЛЕНТНОСТИ И ГРАНИЧНЫЕ УСЛОВИЯ 
1.4.2. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
1.4.3. ОФОРМЛЕНИЕ ТЕСТ-КЕЙСОВ 
1.4.4. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
1.4.5. ОСОБЕННОСТИ ТЕСТ-КЕЙСОВ ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ 
1.5. ОРИЕНТАЦИЯ НА КАЧЕСТВО 
1.5.1. ЭФФЕКТИВНЫЕ ПРОВЕРКИ В ТЕСТИРОВАНИИ 
1.5.2. ДОМЕННОЕ ТЕСТИРОВАНИЕ КАК ТЕХНИКА ЭФФЕКТИВНЫХ ПРОВЕРОК 
1.6. СОЗДАНИЕ ОТЧЁТОВ ОБ ОШИБКАХ 
1.6.1. ЖИЗНЕННЫЙ ЦИКЛ ДЕФЕКТА 
1.6.2. ПРАВИЛА ОФОРМЛЕНИЯ ОТЧЁТОВ ОБ ОШИБКАХ 
1.6.3. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
1.7. ОТЧЁТНОСТЬ О РЕЗУЛЬТАТАХ ТЕСТИРОВАНИЯ 
1.7.1. СОЗДАНИЕ ОТЧЁТОВ О РЕЗУЛЬТАТАХ ТЕСТИРОВАНИЯ 
1.7.2. ОСОБЕННОСТЬ ОТЧЁТОВ О РЕЗУЛЬТАТАХ ТЕСТИРОВАНИЯ В АВТОМАТИЗИРОВАННОМ ТЕСТИРОВАНИИ 
ТЕМА 2:ОСНОВЫ ПРОГРАММИРОВАНИЯ НА JAVA ДЛЯ СПЕЦИАЛИСТОВ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ 
2.1. ОСНОВЫ РАБОТЫ С JAVA 
2.1.1. ОСНОВНЫЕ СВЕДЕНИЯ О JAVA 
2.1.2. JDK, ЕГО УСТАНОВКА И НАСТРОЙКА 
2.1.3. КОД ПРОСТЕЙШЕГО ПРИЛОЖЕНИЯ 
2.1.4. КОМПИЛЯЦИЯ И ЗАПУСК ИЗ КОМАНДНОЙ СТРОКИ 
2.1.5. ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
2.1.6. ИСПОЛЬЗОВАНИЕ IDE ECLIPSE 
2.2. ОСНОВЫ ЯЗЫКА JAVA 
2.2.1. ИДЕНТИФИКАТОРЫ, ТИПЫ ДАННЫХ, КОНСТАНТЫ И ПЕРЕМЕННЫЕ 
2.2.2. ОСНОВНЫЕ ОПЕРАЦИИ 
2.2.3. ОПЕРАТОРЫ УПРАВЛЕНИЯ 
2.2.4. ПРЕОБРАЗОВАНИЕ ТИПОВ 
2.2.5. РАБОТА С ДРОБНЫМИ ЧИСЛАМИ 
2.2.6. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
2.2.7. ВЫПОЛНЕНИЕ МАТЕМАТИЧЕСКИХ ОПЕРАЦИЙ 
2.2.8. ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
2.2.9. РАБОТА СО СТРОКАМИ 
2.2.10. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
2.2.11. МАССИВЫ И РАБОТА С НИМИ 
2.2.12. РАБОТА С КОНСОЛЬЮ 
2.2.13. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
2.3. ОБРАБОТКА ДАННЫХ НА JAVA 
2.3.1. КОЛЛЕКЦИИ И РАБОТА С НИМИ 
2.3.2. РАБОТА С ФАЙЛАМИ И КАТАЛОГАМИ 
2.3.3. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
2.4. ООП В JAVA 
2.4.1. ПРИНЦИПЫ ООП 
2.4.2. СОЗДАНИЕ КЛАССОВ И МЕТОДОВ 
2.4.3. КОНСТРУКТОРЫ И ПЕРЕКРЫТИЕ МЕТОДОВ 
2.4.4. МОДИФИКАТОРЫ ДОСТУПА 
2.4.5. ИНТЕРФЕЙСЫ 
2.4.6. ПАРАМЕТРИЗАЦИЯ 
2.5. ИСКЛЮЧЕНИЯ И ИХ ОБРАБОТКА 
2.5.1. БЛОКИ TRY … CATCH 
2.5.2. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
ТЕМА 3: ВВЕДЕНИЕ В АВТОМАТИЗАЦИЮ ТЕСТИРОВАНИЯ 
3.1. КЛЮЧЕВЫЕ ПОНЯТИЯ И ОБЛАСТИ ПРИМЕНЕНИЯ АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ 
3.1.1. ОПРЕДЕЛЕНИЯ 
3.1.2. ОБЛАСТИ АВТОМАТИЗАЦИИ 
3.1.3. УЧИТЫВАЕМЫЕ ПРИ АВТОМАТИЗАЦИИ ФАКТОРЫ 
3.1.4. ПЛЮСЫ И МИНУСЫ АВТОМАТИЗАЦИИ 
3.1.5. ТЕХНИЧЕСКИЕ ОСОБЕННОСТИ АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ 
3.1.6. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
3.2. ПЛАНИРОВАНИЕ И ОЦЕНКА ТРУДОЗАТРАТ НА ОСНОВЕ ТРЕБОВАНИЙ И ТЕСТКЕЙСОВ 
3.2.1. ОЦЕНКА ТРУДОЗАТРАТ – ОБЩИЕ ИДЕИ 
3.2.2. ОЦЕНКА НА ОСНОВЕ ТРЕБОВАНИЙ 
3.2.3. ОЦЕНКА НА ОСНОВЕ ТЕСТ-КЕЙСОВ 
3.2.4. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
ТЕМА 4: АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ С ПРИМЕНЕНИЕМ TESTCOMPLETE 
4.1. ВОЗМОЖНОСТИ TESTCOMPLETE 
4.1.1. ОБЩИЕ СВЕДЕНИЯ 
4.1.2. КЛЮЧЕВЫЕ ВОЗМОЖНОСТИ И ОСОБЕННОСТИ 
4.1.3. ТЕХНОЛОГИЯ RECORD & PLAYBACK В TESTCOMPLETE 
4.1.4. ЗАПИСЬ И ВОСПРОИЗВЕДЕНИЕ ТЕСТОВ В TESTCOMPLETE 
4.2. ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ TESTCOMPLETE 
4.2.1. ИНТЕРФЕЙС TESTCOMPLETE 
4.2.2. KEYWORD-ТЕСТЫ 
4.2.3. ЭЛЕМЕНТЫ ПРИЛОЖЕНИЯ И РАБОТА С НИМИ 
4.2.4. РУЧНОЕ НАПИСАНИЕ КОДА 
4.2.5. КОД И ФУНКЦИОНАЛЬНАЯ ДЕКОМПОЗИЦИЯ 
4.2.6. ОСНОВЫ ПРИМЕНЕНИЯ JSCRIPT 
4.2.7. ОСНОВНЫЕ БИБЛИОТЕКИ TESTCOMPLETE 
4.2.8. ПРОЕЦИРОВАНИЕ ИМЁН, СОБЫТИЯ, ИСКЛЮЧЕНИЯ В TESTCOMPLETE 
4.2.9. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
ТЕМА 5: МОДУЛЬНОЕ ТЕСТИРОВАНИЕ В JAVA 
5.1. КЛЮЧЕВЫЕ ПОНЯТИЯ МОДУЛЬНОГО ТЕСТИРОВАНИЯ 
5.1.1. ОБЩИЕ СВЕДЕНИЯ 
5.1.2. ФРЕЙМВОРКИ 
5.1.3. ФРЕЙМВОРКИ МОДУЛЬНОГО ТЕСТИРОВАНИЯ В JAVA 
5.1.4. КАК ТЕСТИРОВАТЬ… 
5.1.5. ТИПИЧНЫЕ ОШИБКИ ПРИ СОЗДАНИИ МОДУЛЬНЫХ ТЕСТОВ 
5.1.6. АННОТАЦИИ В JAVA И ИХ СВЯЗЬ С МОДУЛЬНЫМ ТЕСТИРОВАНИЕМ 
5.2. JUNIT 
5.2.1. СОЗДАНИЕ JUNIT-ТЕСТОВ В ECLIPSE 
5.2.2. ОСНОВНЫЕ АННОТАЦИИ В JUNIT 
5.2.3. ОСНОВНЫЕ ПРОВЕРКИ В JUNIT 
5.2.4. ТЕСТОВЫЕ СЦЕНАРИИ В JUNIT 
5.2.5. JUNIT 4 И JUNIT 3 
5.2.6. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
5.3. TESTNG 
5.3.1. СРАВНЕНИЕ TESTNG И JUNIT 
5.3.2. УСТАНОВКА TESTNG 
5.3.3. СОЗДАНИЕ TESTNG-ТЕСТОВ В ECLIPSE 
5.3.4. ОСНОВНЫЕ АННОТАЦИИ В TESTNG 
5.3.5. ОСНОВНЫЕ ПРОВЕРКИ В TESTNG 
5.3.6. ТЕСТОВЫЕ СЦЕНАРИИ В TESTNG 
5.3.7. ПРЕОБРАЗОВАНИЕ JUNIT-ТЕСТОВ В TESTNG-ТЕСТЫ 
5.3.8. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
5.4. РАЗРАБОТКА ПОД УПРАВЛЕНИЕМ ТЕСТИРОВАНИЕМ 
5.4.1. ОБЩИЕ СВЕДЕНИЯ 
5.4.2. ПРИНЦИП RED-GREEN-REFACTOR 
5.5. JMOCK 
5.5.1. ПОНЯТИЕ MOCK-ОБЪЕКТОВ 
5.5.2. ПРИМЕНЕНИЕ JMOCK В РАЗРАБОТКЕ ПОД УПРАВЛЕНИЕМ ТЕСТИРОВАНИЕМ 
5.5.3. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
ТЕМА 6: ПОДХОДЫ К АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ, ПОСТРОЕНИЕ ФРЕЙМВОРКОВ 
6.1. ПОДХОДЫ К ОРГАНИЗАЦИИ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ 
6.2. ТЕСТИРОВАНИЕ ПОД УПРАВЛЕНИЕМ ДАННЫМИ 
6.2.1. ВНЕШНИЕ ИСТОЧНИКИ ДАННЫХ 
6.2.2. XML И ЕГО ПРИМЕНЕНИЕ 
6.2.3. ПРИМЕРЫ 
6.2.4. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
6.3. ТЕСТИРОВАНИЕ ПОД УПРАВЛЕНИЕМ КЛЮЧЕВЫМИ СЛОВАМИ 
6.3.1. ОБЩИЕ ПРИНЦИПЫ 
6.3.2. ПРИМЕР 
6.4. ФУНКЦИОНАЛЬНАЯ ДЕКОМПОЗИЦИЯ И ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ 
6.4.1. ФУНКЦИОНАЛЬНАЯ ДЕКОМПОЗИЦИЯ 
6.4.2. ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ НА ПРОСТЫХ ПРИМЕРАХ 
6.5. ПРИНЦИПЫ СОЗДАНИЯ ФРЕЙМВОРКОВ 
6.5.1. ОБЩИЕ ИДЕИ 
6.5.2. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
ТЕМА 7: ТЕСТИРОВАНИЕ ПРОИЗВОДИТЕЛЬНОСТИ 
7.1. КЛЮЧЕВЫЕ ПОНЯТИЯ ТЕСТИРОВАНИЯ ПРОИЗВОДИТЕЛЬНОСТИ 
7.1.1. ОБЩАЯ ТЕРМИНОЛОГИЯ 
7.1.2. ЦЕЛИ ТЕСТИРОВАНИЯ ПРОИЗВОДИТЕЛЬНОСТИ 
7.1.3. ОСНОВНЫЕ ТЕСТЫ ПРОИЗВОДИТЕЛЬНОСТИ 
7.2. ЭТАПЫ ПРОВЕДЕНИЯ ТЕСТИРОВАНИЯ ПРОИЗВОДИТЕЛЬНОСТИ 
7.3. ОТЧЁТНОСТЬ О ТЕСТИРОВАНИИ ПРОИЗВОДИТЕЛЬНОСТИ 
7.3.1. ПРИНЦИПЫ ФОРМИРОВАНИЯ ОТЧЁТОВ О ТЕСТИРОВАНИИ ПРОИЗВОДИТЕЛЬНОСТИ 
7.3.2. ЗАДАНИЕ ДЛЯ САМОСТОЯТЕЛЬНОЙ ПОДГОТОВКИ 
7.4. APACHE JMETER 
7.5. ДОПОЛНИТЕЛЬНЫЕ СРЕДСТВА СБОРА ИНФОРМАЦИИ О ДЕЯТЕЛЬНОСТИ ПРИЛОЖЕНИЯ 
7.5.1. ИСТОЧНИКИ ИНФОРМАЦИИ 
7.5.2. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
ТЕМА 8: АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ ВЕБ-ОРИЕНТИРОВАННЫХ ПРИЛОЖЕНИЙ 
8.1. ВВЕДЕНИЕ 
8.2. ИСПОЛЬЗОВАНИЕ SELENIUM IDE 
8.2.1. ОБЩИЕ СВЕДЕНИЯ 
8.2.2. КЛЮЧЕВЫЕ ПОЛЯ 
8.2.3. ЛОКАТОРЫ 
8.2.4. ЗАПИСЬ И ВОСПРОИЗВЕДЕНИЕ ТЕСТОВ 
8.2.5. ИСПОЛЬЗОВАНИЕ XPATH 
8.3. РАБОТА С ЭЛЕМЕНТАМИ HTML-ДОКУМЕНТА 
8.3.1. УНИВЕРСАЛЬНЫЕ ДЕЙСТВИЯ 
8.3.2. РАБОТА С URL 
8.3.3. РАБОТА С ФОРМАМИ 
8.3.4. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОЙ ПОДГОТОВКИ 
8.3.5. ПРИМЕНЕНИЕ XPATH ДЛЯ АНАЛИЗА ДОКУМЕНТА 
8.3.6. БАЗОВЫЕ ОПЕРАЦИИ С ПОЛЯМИ ВЕБ-ФОРМ В SELENIUM IDE 
8.4. ИСПОЛЬЗОВАНИЕ SELENIUM RC И WEB DRIVER 
8.4.1. ОБЩИЕ СВЕДЕНИЯ 
8.4.2. ПОДГОТОВКА FIREFOX 
8.4.3. ВЫПОЛНЕНИЕ ТЕСТОВ SELENIUM IDE В SELENIUM RC 
8.4.4. JAVA И SELENIUM RC 
8.4.5. ПЕРЕНОС ТЕСТОВ В WEB DRIVER 
8.4.6. НЕКОТОРЫЕ ВОПРОСЫ СОВМЕСТИМОСТИ 
8.4.7. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
8.4.8. ПОЛНЫЙ ПЕРЕХОД НА WEB DRIVER 
8.4.9. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
8.5. ИСПОЛЬЗОВАНИЕ HTMLUNIT 
8.5.1. ОБЩИЕ СВЕДЕНИЯ 
8.5.2. ПОДКЛЮЧЕНИЕ HTMLUNIT 
8.5.3. ОСНОВНЫЕ ОБЪЕКТЫ И ОПЕРАЦИИ В HTMLUNIT 
8.5.4. ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ HTMLUNIT 
8.5.5. АЛЬТЕРНАТИВНОЕ ПРИМЕНЕНИЕ HTMLUNIT 
8.5.6. ЗАДАЧА ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ 
ТЕМА 9: ТЕХНОЛОГИИ РАЗРАБОТКИ ЭФФЕКТИВНЫХ ТЕСТОВ - ПРАВИЛЬНОЕ ПОНИМАНИЕ ЦЕЛЕЙ 
9.1. ДОСТИЖЕНИЕ ЦЕЛЕЙ ТЕСТИРОВАНИЯ 
9.1.1. ПРЕДЕЛЬНО КРАТКИЙ ОБЗОР ТЕРМИНОЛОГИИ 
9.1.2. ПРОБЛЕМА НЕКАЧЕСТВЕННЫХ ТРЕБОВАНИЙ И ТЕСТ-КЕЙСОВ 
9.1.3. ПРОЦЕСС ПРОДУМЫВАНИЯ ТЕСТОВ 
9.1.4. ПРИМЕР ПРОДУМЫВАНИЯ ТЕСТОВ 
9.2. ПРИМЕРЫ И РЕКОМЕНДАЦИИ 
9.2.1. ПРИМЕРЫ ИЗ РАЗНЫХ ВИДОВ ТЕСТИРОВАНИЯ 
9.2.2. ИСПОЛЬЗОВАНИЕ МЕНТАЛЬНЫХ КАРТ (MIND-MAPS) И ЧЕК-ЛИСТОВ 
9.2.3. ЗАДАНИЕ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ 
9.2.4. ЗАКЛЮЧЕНИЕ И ПОЛЕЗНЫЕ СОВЕТЫ 
 
 


Page Object ver.2
2018-06-11 12:41

Всем еще раз привет! Вот тут http://software-testing.ru/forum/index.php?/topic/36695-nasledovaniia/ я создавал тему касающейся правильности создания архитектуры Page Object. Мне указали на мои ошибки, и я начал гуглить и искать информацию по их устранению.

 

 

И так:

Архитектура классов тут: https://www.screencast.com/t/uUoP0S0wN7

 

Пока что реализовал вот как:

Создал класс BaseTest, в котором у меня реализована инициализация драйвера, также убрал SetProperty с явным указанием в нем пути к драйверу заменив его dependency WebDriverManager в pom файле. В итоге получился такой код:

public class BaseTest {

    protected WebDriver driver;

    @BeforeClass
    public void setUpDriver(){
        WebDriverManager.chromedriver().setup();
        driver = new ChromeDriver();
    }

    @AfterClass
    public void tearDown(){
        driver.quit();
    }
}

От этого класса у меня будут наследоваться все тестовые классы.

 

Дальше создал класс BasePage, от которого будут наследоваться все пейджы. Так как пейджам нужен драйвер, то в данном классе (BasePage) я создал конструктор, в итоге каждый пейдж который будет создаваться, получит драйвер через super(driver).

Также я тут создал метод find, который заменит длинное написание driver.findElement().

Код ниже:

public class BasePage {

    protected WebDriver driver;

    public BasePage(WebDriver driver){
        this.driver = driver;
    }

    public WebElement find(By locator){
        return driver.findElement(locator);
    }
}

Дальше класс самой страницы. Тут я оставил пару методов просто для наглядности, что бы не копипастить весь класс. В итоге создаем конструктор страницы, получаем драйвер, создаем переменные типа By с которыми будем работать, создаем маленькие методы (например заполнить поле, выбрать с селекта), потом создаем метод cardFill() который обьеденит эти методы.

public class NewOrgRegistrationPage extends BasePage{

    public NewOrgRegistrationPage(WebDriver driver) {
        super(driver);
    }

    String url = "http://192.168.1.111:8085/share/page/context/mine/sxg-external-registration";
    By orgRegistrationReasonDropBox = By.name("prop_uxp_orgnRegistrationReason");
    By fullOrgNameField = By.name("prop_uxp_orgnName");


    public NewOrgRegistrationPage selectOrgRegistrationReason(){
        Select selectOrg = new Select(find(orgRegistrationReasonDropBox));
        selectOrg.selectByIndex(1);
        return this;
    }
    public NewOrgRegistrationPage setFullOrgNameField(String orgName){
        find(fullOrgNameField).sendKeys(orgName);
        return this;
    }
    public NewOrgRegistrationPage visit(){
        driver.get(this.url);
        return this;
    }

    public void cardFill(){
        visit();
        selectOrgRegistrationReason();
        setFullOrgNameField("some name");
    }
}

И наконец то сам тест класс

public class CreatingNewOrgTest extends BaseTest{

    @Test
    public void cardFill(){
        NewOrgRegistrationPage page = new NewOrgRegistrationPage(driver);
        page.cardFill();
    }
}

Жду конструктивной критики особенно от пользователя Noksa, так как прошлый раз очень хорошие были замечания.

 

Но помимо критики у меня сразу есть вопросы. 

 

1. Мне кажется что в тестовых классах я не должен иметь возможности делать driver.findElement, driver.click и т.д. Тоесть на прямую обращаться к драйверу. Или я ошибаюсь?

 

2. В архитектуре классов у меня есть также класс SummaryAPI. В лекции что я смотрел, от этого класса неследовались классы BasePage и BaseTest - тоесть в них была реализация чего то общего для этих двух классов, например того же метода find:

 public WebElement find(By locator){
        return driver.findElement(locator);
 }

Я этого к сожелению понять не могу, зачем мне этод метод в тестовых классах? Если я могу его создать в BasePage, что я собстевнно и сделал, так как только в пейджах которые наследуються от этого класса я и буду его использовать. В чем смысл заносить его в SummaryAPI, потом наследовать в BaseTest и в тестовом методе иметь возможность делать find(By name("q")).

Я много где видел советы по созданию класса общего для BasePage и BaseTest. Но что там должно быть? Наведите пожалуйста примеры. Спасибо!



© 2010 | Software-Testing.Ru


В избранное