Тестовое задание по тестированию онлайн калькулятора валют от Сбербанка.
- Придумать сценарии для тестирования Калькулятора иностранных валют на сайте http://www.sberbank.ru/ru/quotes/converter
- Автоматизировать из них 3 сценария
Результат выполненного ТЗ:
- Реализовать функциональные (pytest) тесты сценариев.
- Использовать инструмент Selenium WebDriver
- Каждый тест должен выглядеть в отчете как отдельный тестовый сценарий
- Тест должны быть параметризирован в XML или CSV
- Результатом выполнения должен быть Yandex.Allure отчет
- Исходный код проекта должен быть выложен на github или bitbucket.
src/api/calcpage.py
находится PageObject для доступа к странице - класс CalcPage.src/api/drivers.py
- в модуле содержаться упрощенные методы получения драйверов. В случае, если не указаны пути для драйверов они будут скачаны (используется библиотека webdrvier_manager)src/test_calcPage.py
- тесты PageOjbect'а к странице. Заодно тестируют интерфейс.src/test_functional.py
- параметризированный тест на правильность подсчета. Сценарии лежат в файлеsrc/test_functional_scenarios.xml
. В нем можно задавать неограниченное количестов сценариев.allure
- бинарники для yandex.allure 2.7.0. Генерирует отчеты. В PageObject калькулятора (CalcPage) настроена интерпретация каждого действия как шаг (step) теста. Таким образом при выполнении любого теста с использованием CalcPage в генерируемом отчете будут показываться шаги выполнения (читаемые, на русском)
Требования:
- Python >= 3.6.5
- pip >= 9.0.3
- java >= 1.8.0_181-b13
git clone git@github.com:mirakulus/to.testcalc.git
cd to.testcalc
pip install -r requirements.txt
Указанная ниже последовательность комманд, запустит все тесты, сгенерирует и запустить в бразуере allure-отчет
cd to.testcalc
pytest --alluredir=reports
"allure/bin/allure" serve reports
На данный момент тесты запускаются в Хроме, в headless-mode. Работает стабильно, но полной уверенности в нем нет - во время разработки возникало много проблем. Если код вдруг упал на попытке доступа к элементу, то нужно либо перезапустить тесты еще раз, либо откзааться от headless режима. Выключить headless режим:
- test_CalcPage.py -
Test_CalcPage.setup_class()
, в методеdrivers.chrome(True)
убрать True - test_functional.py -
TestFunctional.setup_class()
, в методеdrivers.chrome(True)
убрать True