Небольшой фреймворк для написания и запуска selenium тестов (Java + TestNG + ExtentReports)

Привет! Вашему вниманию предлагается небольшой фреймворк для написания и запуска selenium тестов, написанный мной.

Сам проект находится здесь: GitHub - ViacheslavBulba/Slava-Selenium-Test-Framework: This project is a framework for writing and running selenium tests (Java + Maven + TestNG + Selenium)

Краткая инструкция по использованию приводится ниже.

Я использую систему сборки MAVEN.

Выполнение каждого теста начинается с открытия url, указанного в CONFIG\tests.properties

Там же можно указать адрес грида:

url = https://www.consumerreports.org/cro/a-to-z-index/products/index.htm
;seleniumGrid = http://10.8.11.55:4444/wd/hub

В папку DRIVERS надо подкладывать актуальные версии драйверов. На данный момент тесты будут работать только в CHROME, для других браузеров код пока не писал.

В папку LOGS сохраняется отчёт о прогоне тестов — LOG.HTML

В папку PAGESOURCES сохраняется HTML код страницы в случае падения теста.

В папку SCREENSHOTS сохраняется скриншот страницы в случае падения теста. Скриншоты также можно увидеть в отчёте LOG.HTML

Классы PAGE OBJECT нужно располагать в SRC\TEST\JAVA\PAGES

Классы тестов нужно располагать в SRC\TEST\JAVA\TESTS

В папке UTILS расположены вспомогательные классы (внутренности фреймворка).

В корне проекта лежит TESTNG.XML, в котором нужно прописывать какие классы с тестами запускать.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Consumer Reports Tests" parallel="methods" thread-count="2" data-provider-thread-count="2">
    <listeners>
        <listener class-name="utils.TestListener" />
        <listener class-name="utils.SuiteListener" />
    </listeners>
    <test name="tests">
        <classes>
            <class name="tests.ConsumerReportsAZProductsPageTests" />
        </classes>
    </test>
</suite>

Тесты можно запускать через IDE или цель мавена TEST.
В IntelliJ IDEA тесты можно запустить через меню RUN — EDIT CONFIGURATIONS, добавив необходимую конфигурацию (например, TestNG — Suite).

Тесты запускаются параллельно.

Может кому пригодится.

5 лайков

Есть куда расти.

Посмотри в сторону GitHub - bonigarcia/webdrivermanager: Automated driver management and other helper features for Selenium WebDriver in Java что бы не таскать за собой драйвер браузера (который в твоем случае будет работать только на винде):

System.setProperty("webdriver.chrome.driver",
                               userDir + fileSeparator + "drivers" + fileSeparator + "chromedriver.exe");

Также глянь в сторону GitHub - qatools/properties: This library provides convinient way to work with properties. It can handle property-files on hard drive, in classpath or get values from system properties что бы не городить свой костыль с вычиткой пропертей из файла.

Ну и как вишенка на торте - Log4j и Allure для логов и репортинга.

Во всем остальном лучше использовать http://ru.selenide.org/ ))) что бы не отгр■■■■■ с ожиданиями.

1 лайк

Да то всё понятно, не в этом была цель :grin: