Releases: IBSCorp/Chameleon
Releases · IBSCorp/Chameleon
Chameleon-3.6.0
- Обновлена версия библиотеки webdrivermanager до 5.4.1
- Добавлен модуль chameleon-parallel-cucumber для поддержки параллельного выполнения тестов cucumber
- В WebDriverFacade метод quit() закрывает WebDriver только для текущего потока. Добавлен новый метод quitAll(), который закрывает все драйверы, созданные для разных потоков. Его следует вызывать как destroy-method.
- Добавлен интерфейс IDriverFacade, все взаимодействие с WebDriverFacade теперь рекомендуется выполнять через этот интерфейс
- Добавлена возможность получения всех элементов страницы с учетом вложенности блоков, IPageObject.getSeleniumField() и IPageObject.getCollection()
- Исправлено: при падении на не UI шагах, где браузер еще не запущен, происходит его запуск и создание скриншота с пустой страницы
- Добавлена возможность переопределения кода, написанного в стандартный хуках фреймворка: интерфейсы IAssertsLifecycle и IStorageLifecycle
- Исправлено: при использовании soft assertов не снимались скриншоты, если ошибки происходят чаще, чем раз в секунду
- Добавлен вариант снятия скриншотов для избежания дублирования, если UI не менялся
- Добавлены шаги ~SoftAssert "Прервать, если были ошибки" и ~SoftAssert "Выключить и прервать, если были ошибки", которые служат для управления прерыванием теста, если в блоке soft assert произошли ошибки. Без использования этих шагов выполнение теста происходит до конца или до появления первой ошибки, не включенной в блок soft assert.
- Добавлена обработка исключительных ситуаций при ожидании элементов коллекции
- Переработан механизм ожиданий элементов, добавлен служебный класс Waiting, поддерживающий различные сценарии ожидания
- Доработан механизм генерации фабрик локаторов Selenium и работа с декораторами web-элементов
Chameleon-3.5.0
- Изменено название фреймворка QualIT -> Chameleon
- Пакеты переименованы ru.ibsqa.qualit -> ru.ibsqa.chameleon
- Неймспейсы в XSD переименованы http://qualit.ibs-qa.ru/ -> http://chameleon.ibs-qa.ru/
- Переименованы классы:
- QualITSpringExtension -> ChameleonSpringExtension
- QualITFactory -> ChameleonFactory
- Переработан механизм автокомплита, предлагающего имена компонентов при редактировании BDD-сценария и перетаскивании шагов из плагина в сценарий
- Добавлен автокомплит компонентов в проекты DB и REST-API
- Обновление Appium до 8.2.1
QualIT-3.4.1
- Исправлена проблема с дублированием отчетов в случае запуска тестов через maven:
- Необходимо наличие опции junit.platform.execution.listeners.deactivate=io.qameta.allure.junitplatform.AllureJunitPlatform в файле junit-platform.properties
- Если на проекте подключен BDD фреймворк Cucumber, то также необходимо наличие файла cucumber.properties в ресурсных файлах проекта
QualIT-3.4.0
- Изменен подход для операций сравнения и добавлена возможность создания кастомных операций сравнения Операции сравнения
- Добавлена поддержка Java17
- Добавлены контексты и автокомплит для шагов с базами данных
- Сокращен вывод избыточной информации в лог при возникновении типовых ошибок
- Исправлена ошибка, при которой не создавался отчет после JUnit тестов
- Убран вывод в отчет информации о шагах при ожиданиях
- Добавлено логирование коллекций в режиме Debug
- Добавлен класс DelayUtils для шагов с ожиданием
- В плагин добавлена возможность запускать тесты из вкладки 'Тесты'
- В плагин добавлена возможность запускать тесты из вкладки 'Тэги' по выбранным тэгам
- В плагин добавлена кнопка 'Показать команду запуска тестов для Maven'
- В плагине исправлены ошибки при переносе шагов без аннотации @StepDescription из вкладки 'Действия' в сценарий
- Для плагина добавлена поддержка версий IntelliJ IDEA до 2023.1.1 включительно
- Дополнены примеры
QualIT-3.3.1
Исправлена ошибка для браузера Google Chrome 111
QualIT-3.3.0
- Обновление Spring Framework до версии 5.3.24
- Обновление Cucumber до версии 7.9.0
- Обновление Selenium до версии 4.6.0 (изменения в конструкторах драйверов - DesiredCapabilities больше не поддерживаются)
- В конфигурации драйверов методы set/getDesiredCapabilities заменены на set/getOptions
- Обновление Appium до версии 8.2.0
- Обновление webdrivermanager до версии 5.3.1
- бновление webdrivermanager до версии 5.3.1
- Актуализированы проектные тесты
- Убрана поддержка браузера OPERA
- Добавлена поддержка свободных конфигураций web-драйверов
- Добавлен функционал Soft Assert
- Добавлена аннотация @HiddenStep
- Добавлены шаги для работы с alert-ами - AlertSteps
- IFacadeSelenium в методе isFieldExists() теперь не анализируется отсутствие поля на странице, при отсутствии поля будет ошибка, для проверки отсутствия поля используйте метод isAbsent()
- ElementLocatorImpl:
- в методе findElements() таймаут теперь не применяется, при поиске отдельного элемента findElement() таймаут продолжает применяться
- В WaitingUtils добавлен вариант ожидания в произвольных единицах времени
- Во все классы шагов (наследующие AbstractSteps) добавлен служебный метод waiting(...), помогающий реализовать ожидание состояния; методы, реаилизующие интернационализацию сделаны статическими, при ожидании действие выполняется как минимум 1 раз
- в классах ElementProxyHandler и ElementBlockProxyHandler:
- общий функционал вынесен в AbstractElementHandler
- учитывается ожидание по умолчанию, если у элемента не указано конкретное время
- для полей коллекции не производится ожидание пропадания исключения StaleElementReferenceException (ожидание выполняется в слое шагов)
- добавлен InvokeFieldException для проброса ошибок работы с элементами (например StaleElementReferenceException) в модули core, абстрагированные от конкретной имплементации полей
- исправлена проблема при выполнении ожидания пропадания исключения StaleElementReferenceException
- задержка между циклами сокращена 500 -> 200 мс
- WebElementFacade:
- метод isDisplayed() теперь не выполняет ожидание и возвращает моментальное значение видимости поля
- новый метод waitToDisplayed() выполняет ожидание и теперь именно он используется при анализе загрузки страницы
- добавлен метод isAbsent(), он возвращает признак отсутствия поля на странице не выполняя ожидание и без учета невидимости поля
- добавлены индикативные интерфейсы фасадов - IFacadeWait и IFacadeAbsent
- CoreFieldSteps, добавлено ожидание состояния в рамках таймаута элемента в следующих шагах (новое поведение применяется не для всех полей, а только в том случае, если поле поддерживает таймаут):
- checkFieldValue
- checkFieldExists
- checkFieldNotExists
- SeleniumFieldSteps, добавлено ожидание состояния в рамках таймаута элемента в следующих шагах:
- fieldIsDisplayed, данный метод работает аналогично checkFieldExists
- fieldIsNotExist переименовано в fieldIsNotDisplayed, данный метод работает аналогично checkFieldNotExists
- fieldIsEnabled
- fieldIsDisabled
- checkFieldPlaceholder
- fieldIsEditable
- fieldIsNotEditable
- checkFieldError
- checkFieldAttribute
- CollectionSteps, добавлено ожидание состояния в рамках таймаута в следующих шагах:
- stepCheckItemCount
- searchItemByIndex
- searchItem
- checkSorted