courses:devops:project

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
courses:devops:project [2024/02/06 20:09]
azarevich.artem [Правила работы в репозитории]
courses:devops:project [2024/03/01 13:57]
korytov.pavel
Line 37: Line 37:
       * Форматирование Python (black) - https://​github.com/​psf/​black       * Форматирование Python (black) - https://​github.com/​psf/​black
       * Форматирование Python (flake8) - https://​github.com/​PyCQA/​flake8       * Форматирование Python (flake8) - https://​github.com/​PyCQA/​flake8
 +      * Форматирование HTML, JS (prettier) - https://​prettier.io
 +      * Форматирование Python (pindent) - http://​svn.python.org/​projects/​python/​trunk/​Tools/​scripts/​pindent.py
 +      * Форматирование Python (pybetter) - https://​github.com/​lensvol/​pybetter
 +      * Форматирование Python (ssort) - https://​github.com/​bwhmather/​ssort
 +      * Форматинование Pyhton (usort) - https://​github.com/​facebook/​usort
       * Проверка бьютификатором для HTML - https://​pypi.org/​project/​html-linter/​       * Проверка бьютификатором для HTML - https://​pypi.org/​project/​html-linter/​
       * Причесывание бьютификатором HTML - https://​pypi.org/​project/​css-html-prettify/​       * Причесывание бьютификатором HTML - https://​pypi.org/​project/​css-html-prettify/​
Line 42: Line 47:
     * Статический анализ - подключаем статическую проверку (через pylint) и встраиваем ее в цепочку запуска     * Статический анализ - подключаем статическую проверку (через pylint) и встраиваем ее в цепочку запуска
       * **Анализ по 10 существующим критериям** - выберите по 10 уникальных критериев проверки,​ настройте запуск на них и допустите все десять ошибок в коде проекта:​)       * **Анализ по 10 существующим критериям** - выберите по 10 уникальных критериев проверки,​ настройте запуск на них и допустите все десять ошибок в коде проекта:​)
-      * **Создание своего критерия и проверка толко по нему** - проверяем на наличие переменных,​ название которых совпадает с вашим именем +      * **Создание своего критерия и проверка только по нему** - проверяем на наличие переменных,​ название которых совпадает с вашим именем
     * Интеграционные тесты - пишем интеграционные тесты (через requests) и встраиваем их в цепочку запуска     * Интеграционные тесты - пишем интеграционные тесты (через requests) и встраиваем их в цепочку запуска
       * Проверка на коды возврата       * Проверка на коды возврата
       * Проверка на заголовки       * Проверка на заголовки
       * Проверка на загрузку файла       * Проверка на загрузку файла
-    * Selenium - пишем selenium тесты и встраиваем их в цепочку запуска (нельзя использовать для selenium отдельный контейнер,​ реализуйте тесты в рамах контейнера tester) +    * Selenium - пишем selenium тесты и встраиваем их в цепочку запуска (нельзя использовать для selenium отдельный контейнер,​ реализуйте тесты в рамах контейнера tester). ​См. описание ниже.
-      * **Заполнение формы авторизации (включая проверку верстки страницы)** - тест на заполнение формы и проверка ответа сервера,​ + проверка верстки страницы (ее динамической части) +
-      * **Правка html кода страницы** - вносим свои изменения в код страницы (добавляем лишние кнопки,​ меняем атрибуты полям - проверяем) +
-      * **Загрузка и получение файлов** ​ - проверка роутов на загрузку и получение файлов +
-      * **Переадресация,​ корректные коды возврата** - проверка запросов с переадресацией,​ проверка кодов возврата +
-      * **Отлов js исключений в консоли** - для этого задания вам потребуется модифицировать шаблон веб-страницы добавлением обработчика для ошибок js (рекомендую собирать ошибки в атрибут тега), а в selenium проверять содержимое этого тега +
-      * **Получение списка преподавателей кафМОЭВМ** - работаем не с демо приложением,​ а со страницей кафедры на сайте ЛЭТИСилами selenium (через запуск js кода) извлекаем список +
-      * **Поиск и обнаружение ​ошибок в консоли JS** -  +
-      * **Получение списка сертификатов пользователя по ссылке на профиль Stepik** - работаем не с демо приложением, а со stepik.org. Силами selenium (через запуск js кода) извлекаем список +
-      * **Получение списка PR в открытом github репозитории** - +
   * Docker   * Docker
     * Внешний SSH доступ в контейнеры - организуем доступ через протокол SSH контейнер одним из следующих способов:​ или по ключу в каталоге с проектом,​ или генерируем пароль для доступа и сообщаем его при сборке / запуске,​ или генерируем новую пару ключе и выводим их в файлы. Порт для SSH должен быть доступен снаружи docker-compose конфигурации.     * Внешний SSH доступ в контейнеры - организуем доступ через протокол SSH контейнер одним из следующих способов:​ или по ключу в каталоге с проектом,​ или генерируем пароль для доступа и сообщаем его при сборке / запуске,​ или генерируем новую пару ключе и выводим их в файлы. Порт для SSH должен быть доступен снаружи docker-compose конфигурации.
Line 82: Line 78:
       * **Ядра процессора** - ограничьте доступные в каждом контейнере количество ядер ЦПУ до (1 + НОМЕР_ВАРИАНТА % 2) (остаток от деления номера вашего варианта на два)       * **Ядра процессора** - ограничьте доступные в каждом контейнере количество ядер ЦПУ до (1 + НОМЕР_ВАРИАНТА % 2) (остаток от деления номера вашего варианта на два)
       * **Максимальное Количество процессов** - ограничьте до количества НОМЕР_ВАРИАНТА       * **Максимальное Количество процессов** - ограничьте до количества НОМЕР_ВАРИАНТА
 +
 +=== Selenium-тесты ===
 +Задача в написании Selenium-тестов - написать автотесты для нескольких форм ИС ИОТ. Тестовый инстанс находится по адресу https://​dev.digital.etu.ru/​trajectories-test/​.
 +
 +Тест должен включать в себя следующие шаги:
 +
 +1. Авторизация через ETU ID.
 +    * Используйте ваш логин/​пароль из ЛК ЛЭТИ. Укажите их в .env-файле,​ коммитить в репозиторий **не нужно**
 +    * Вы должны получить в системе права администратора. Если не получите - пингуйте нас в Discord.
 +    * В системе все персональные данные заменены на сгенерированные.
 +2. Если ваш вариант включает в себя работу с ОПОП, РП или формой "​Распределение документов",​ авторизуйтесь за пользователя id=1305 (Schimmel Вадим August) на форме "​Авторизация за другого пользователя"​. У этого пользователя есть все права на все документы.
 +3. Проверьте функционирование формы, указанной в задании:​
 +    * Инструкции по формам есть по ссылке:​ https://​digital.etu.ru/​doku.php?​id=navigation:​iot
 +    * Большинство форм включают в себя сохранение какого-то состояния (вкладки документа,​ выдача прав и т.п.). В таком случае задача - ввести в форму какие-то значения (не обязательно осмысленные),​ сохранить,​ обновить страницу и проверить,​ что внесенные данные сохранены.
 +    * В работе с документами - можете создать новый документ или взять существующий в статусе "​черновик"​. Если создаете новый, не забудьте удалить.
 +    * В работе с документами - берите документы с кафедрой,​ соотвествующей вашему положению в таблице "​Варианты заданий"​ (см. ниже). Так мы избежим конфликтов из-за одновременного выполнения тестов.
 +    * В работе с пользователями - берите пользователей,​ у которых фамилия соответствует вашей сгенерированной (можно посмотреть сверху в сайдбаре).
 +  ​
 +=== Перечень кафедр ===
 +
 +Кафедра,​ в которой вы работаете = (ваш номер в "​Варианты заданий"​) % 40 + 1.
 +
 +Кафедры:​
 +
 +- каф.АМ
 +- каф.ЛИНС
 +- каф.ЭПУ
 +- каф.ИИСТ
 +- каф.ВМ
 +- каф.МНЭ
 +- каф.РАПС
 +- каф.ЭП
 +- каф.ЭУТ
 +- каф.ФЛ
 +- каф.ИМ
 +- каф.ТВ
 +- каф.МОЭВМ
 +- каф.МСК
 +- каф.БЖД
 +- каф.СО
 +- каф.ВТ
 +- каф.САПР
 +- каф.ФЭТ
 +- каф.Фот
 +- каф.МВЭ
 +- каф.ПМИГ
 +- каф.ИНЯЗ
 +- каф.ТОЭ
 +- каф.СП
 +- каф.ПЭ
 +- каф.ТОР
 +- каф.БТС
 +- каф.РС
 +- каф.САУ
 +- каф.ИКГП
 +- каф.ЭТПТ
 +- каф.РЯ
 +- каф.МИТ
 +- каф.ФХ
 +- каф.РЭС
 +- каф.ИЗОС
 +- каф.АПУ
 +- каф.ИС
 +- каф.ФВиС
 +
 +Это не все кафедры ЛЭТИ, только те, по которым есть более 100 РП.
  
 ==== Варианты средней сложности ==== ==== Варианты средней сложности ====
courses/devops/project.txt · Last modified: 2024/03/01 13:58 by korytov.pavel