GithubHelp home page GithubHelp logo

imsolty / ci-cd-project Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 413 KB

Конфигурация docker-compose системы для автоматизированного тестирования веб-приложений – демонстрационного и тестового экземпляра ИС ИОТ. Система состоит из двух контейнеров: в одном запускается демонстрационное веб-приложение, второй используется для запуска нескольких этапов тестов

Python 92.08% Shell 7.92%
automated-testing docker docker-compose pylint selenium-python selenium-webdriver ssh-client yapf

ci-cd-project's Introduction

Настройка переменных окружения

Для работы с проектом необходимо создать файл .env и настроить переменные окружения. Пример содержания файла (.env.example):

APP_PORT=5000
LOGIN=login
PASSWORD=password

Сборка и запуск контейнеров

  1. Для того, чтобы собрать образы контейнеров ci-cd-app и ci-cd-tester необходимо выполнить следующую команду в директории с docker-compose.yml файлом:
docker compose build
  1. Для создания и запуска контейнеров из собранных образов необходимо выполнить следующую команду:
docker compose up

Работа с app-контейнером

При сборке контейнера ci-cd-app устанавливается SSH-клиент и запускается веб-приложение из репозитория https://github.com/moevm/devops-examples.git.

  • Публичный ключ, используемый в контейнере для внешнего доступа по SSH: ./ssh-keys/id-rsa.pub
  • Порт хост-машины, в который пробрасывается порт веб-приложения настраивается путем изменением соответствующей переменной окружения APP_PORT

Для получения доступа к контейнеру по SSH необходимо воспользоваться приватным ключом (./ssh-keys/id-rsa) и выполнить следующую команду:

ssh [email protected] -p 2222 -i <path-to-private-key>

Работа с tester-контейнером

При сборке контейнера ci-cd-tester в образ копируется директория ./tests с тестирующими скриптами.

Для запуска тестов необходимо воспользоваться скриптом ./tests/run_tests.sh:

  • Для запуска всех этапов тестирования необходимо выполнить следующую команду:

    docker exec ci-cd-tester bash ./tests/run_tests.sh
  • Для запуска отдельных этапов тестирования необходимо указать соответствующий аргумент при запуске скрипта:

    • Форматирование(yapf):

      docker exec ci-cd-tester bash ./tests/run_tests.sh code_style_tests

    • Статический анализ (pylint):

      docker exec ci-cd-tester bash ./tests/run_tests.sh pylint_tests

    • Интеграционные тесты:

      docker exec ci-cd-tester bash ./tests/run_tests.sh integration_tests

    • Selenium тесты (используются переменные окружения LOGIN и PASSWORD из .env-файла):

      docker exec ci-cd-tester bash ./tests/run_tests.sh selenium_tests

Этапы code_style_tests, pylint_tests, integration_tests выполняют тестирование веб-приложения из репозитория https://github.com/moevm/devops-examples.git.

Этап selenium_tests используется для автотестирования ИС ИОТ: https://dev.digital.etu.ru/trajectories-test/. Сценарий - "Создание ОПОП, заполнение вкладок 4, 5, 6"

В процессе выполнения тестирования формируются файлы, в которых отображаются результаты выполнения тестов. При сборке контейнера определяется монтирование файлов для возможности дальнейшей работы с ними на хост-машине:

  1. ./tests/test_results/stderr.log - стандартный вывод ошибок
  2. ./tests/test_results/stdout.log - стандартный вывод
  3. ./tests/test_results/selenium_screenshots - скриншоты, сделанные в процессе выполнения selenium-тестов

ci-cd-project's People

Contributors

imsolty avatar

Stargazers

Mihail Mironov avatar Egorkaispodgorki avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.