Тестирование
Различия
Здесь показаны различия между двумя версиями данной страницы.
foxdev_7:тестирование [15.01.2018 15:53] admin |
foxdev_7:тестирование [20.05.2019 15:18] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | {{indexmenu_n>45}} | ||
- | |||
- | ==== Главная идея ==== | ||
- | |||
- | Все функциональные тесты создаются в виде DirAAP.\\ | ||
- | Распространяются и обновляются, как git или как app соответствующей платформы.\\ | ||
- | Тесты ставятся рядом с рабочим продуктом.\\ | ||
- | Желательно, ставиться и обновляться той же схемой, что и основной продукт.\\ | ||
- | Колво объектов в тестовой БД должно быть в 10 раз больше от реальных условий.\\ | ||
- | Обязательно проводим тесты ускоренного или сдвигаемого времени, для отлова ошибок перехода через 00 часов или 1 число месяца или 1 ое число года.\\ | ||
- | Тестовые виртуалки есть у каждого разработчика.\\ | ||
- | Есть тестовая вирталка для тестировании ветки testing где есть все коммиты всех разработчиков.\\ | ||
- | |||
- | |||
- | ==== TODO причесать. ==== | ||
- | |||
- | - тесты делятся на группы тестов (test_se_auto, test_api, test_cabinet и прочие)\\ | ||
- | - тесты деляется на быстрые (fast) и медленные (slow); рекомендуется соответствующие тесты располагать в подкаталогах <группа_тестов>/fast/ и <группа_тестов>/slow/\\ | ||
- | - придерживаемся directory as service, максимально все, необходимое для работы теста, должно располагаться внутри каталога с группой тестов; ислючения: устанавливаемые приложения (jenkins, firefox, selenium) - ставятся прямо в систему и конфигурируются скриптами, возможно использование общих библиотек для разных групп тестов\\ | ||
- | - в каждоый группе тестов в корне должно быть 2 файла: slow_test.sh и fast_test.sh, которыми запускается группа тестов; должны быть bash-скриптами, по-умолчанию содержат 1 строку с запуском внутреннего фреймворка/обходчика тестов данной группы тестов | ||
- | |||
- | Правила тестов:\\ | ||
- | - если тесту нужно запустить скрипт изнутри чрута (например, asr_billing), то он копирует нужный скрипт внутрь перед запуском и запускает\\ | ||
- | - для быстрых тестов действует ограничение: максимум 1 минута на выполнение для одной группы тестов; чтобы 1 прогон занимал минут 5-10, а разработчик попил чай/проверил почту, но сильно не отвлекся | ||
- | |||
- | Апп:\\ | ||
- | - тесты поставляются в аппе /app/tests_$PROFILE\\ | ||
- | - собирается и ставится с makedistro и или updater\\ | ||
- | - является directory-app и одновременно чрутом(для селениум файрфокс и тп)\\ | ||
- | - конфигурируются в /app/test_CRB-Billing/cfg/config\\ | ||
- | - запускаются /app/test_CRB-Billing/service fast_test и /app/test/service slow_test\\ | ||
- | - в аппе содержатся тесты для всех продуктов, располагаются:\\ | ||
- | /app/test_CRB-Billing/test_group1/fast/\\ | ||
- | /app/test_CRB-Billing/test_group2/fast/\\ | ||
- | /app/test_CRB-Reductor/test_group1/fast/\\ | ||
- | /app/test_CRB-Reductor/test_group1/slow/\\ | ||
- | /app/test_CRB-Reductor/test_group2/fast/\\ | ||
- | -<del> если для аппа нужно будет устанавливать приложения (jenkins, selenium), скрипт запуска тестов должен будет это делать сам, makedistro в апп приложения не устанавливает, в аппе только скрипты запуска тестов и сами тесты</del> | ||
- | - весь енвайромент должен поставляться в чруте в готовом виде, на хост ничего не ставим | ||
- | |||
- | Главный обходчик:\\ | ||
- | - запускается из крона и или руками\\ | ||
- | - конфигурируется через config\\ | ||
- | - для запуска тестовых групп использует jenkins (как сделано в makedistro)\\ | ||
- | - несет ответственность за блокировку/разблокирочку обновления | ||
- | |||
- | Тестовая сборка, бранч test:\\ | ||
- | - в него мержатся все бранчи разработчиков\\ | ||
- | - на него настроена виртуалка с тестированием | ||
- | |||
- | <code bash> | ||
- | /app/tests_CRB-Reductor/service | ||
- | /app/tests_CRB-Reductor/src.list | ||
- | |||
- | /app/tests_CRB-Reductor/tests_reductor/.git | ||
- | /app/tests_CRB-Reductor/tests_reductor/fast_test | ||
- | /app/tests_CRB-Reductor/tests_reductor/fast/ | ||
- | /app/tests_CRB-Reductor/tests_reductor/slow_test | ||
- | /app/tests_CRB-Reductor/tests_reductor/slow/ | ||
- | |||
- | /app/tests_CRB-Reductor/tests_reductor_satellite/.git | ||
- | /app/tests_CRB-Reductor/tests_reductor_satellite/slow_test | ||
- | /app/tests_CRB-Reductor/tests_reductor_satellite/slow/ | ||
- | |||
- | /app/tests_CRB-Reductor/tests_bgp_blackhole/.git | ||
- | /app/tests_CRB-Reductor/tests_bgp_blackhole/fast/ | ||
- | /app/tests_CRB-Reductor/tests_bgp_blackhole/fast_test | ||
- | /app/tests_CRB-Reductor/tests_bgp_blackhole/slow/ | ||
- | /app/tests_CRB-Reductor/tests_bgp_blackhole/slow_test | ||
- | </code> | ||
- | |||
- | ==== Дополнение1 ==== | ||
- | /app/tests_crb-billing5 тоесть имя профиля /app/tests_$PROFILE\\ | ||
- | внутри есть полный енвайромент-чрут для запуска firefox selenium и тд\\ | ||
- | тесты в виде каталогов с .git подкаталогом чтоб можно было сразу разрабатывать и править\\ | ||
- | /app/tests_crb-billing5 является и чрутом и не чрутом, чтоб можно было от корня запускать\\ | ||
- | Отдельный профайл tests_crb-billing5, в идеале он имеет туже версию что и продукт, и лежит в апдейтерАХ на мейкдитрах(в будущем на update5) как продукт, и ставится с апдейтера тулзой можно в стиле rsync.\\ | ||
- | |||
- | ==== Туду обновить эту статью по данным совещания ==== | ||
- | [[http://wika.carbonsoft.ru/проект_reductor:тестирование:инструкции:autotests-and-ci|]] | ||
- | |||
- | йц | ||