Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Практические руководства
    • Все руководства
    • Организация сине-зеленого и канареечного развертывания версий веб-сервиса
    • Автоматизация сборки образов с помощью Jenkins и Packer
    • Непрерывное развертывание контейнеризованных приложений с помощью GitLab
    • Тестирование приложений с помощью GitLab
    • Создание тестовых ВМ через GitLab CI
    • Интеграция GitLab с Tracker
    • Высокопроизводительные вычисления (HPC) на прерываемых ВМ
    • Нагрузочное тестирование gRPC-сервиса
    • HTTPS-тест с постоянной нагрузкой с помощью Phantom
    • HTTPS-тест со ступенчатой нагрузкой с помощью Pandora
    • HTTP-тест с нагрузкой по сценарию с помощью Pandora
    • Нагрузочное тестирование с нескольких агентов
    • Миграция результатов нагрузочного тестирования из OverLoad
    • Запуск внешних агентов для нагрузочного тестирования
    • Нагрузочный тест с помощью JMeter
    • Получение статистики запросов к объектам Object Storage с использованием Query
    • Получение количества запросов к объектам Object Storage
    • Вызов нагрузочного тестирования из GitLab CI
    • Развертывание GitLab Runner на виртуальной машине Compute Cloud
    • Сравнение результатов нагрузочных тестов

В этой статье:

  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Создайте виртуальную машину с GitLab
  • Настройте GitLab
  • Задайте настройки приватности
  • Создайте проект
  • Настройте и запустите тестирование для проекта
  • Настройте и зарегистрируйте runner
  • Создайте сценарий тестирования
  • Создайте ошибку в проекте
  • Как удалить созданные ресурсы
  1. Разработка и тестирование
  2. Тестирование приложений с помощью GitLab

Тестирование приложений с помощью GitLab

Статья создана
Yandex Cloud
Обновлена 6 марта 2025 г.
  • Подготовьте облако к работе
    • Необходимые платные ресурсы
  • Создайте виртуальную машину с GitLab
  • Настройте GitLab
    • Задайте настройки приватности
  • Создайте проект
  • Настройте и запустите тестирование для проекта
    • Настройте и зарегистрируйте runner
    • Создайте сценарий тестирования
    • Создайте ошибку в проекте
  • Как удалить созданные ресурсы

GitLab — это сайт и система управления репозиториями кода для Git. Также GitLab позволяет разработчикам вести непрерывный процесс для создания, тестирования и развертывания кода.

В этом сценарии вы настроите GitLab на виртуальной машине, создадите простой проект на языке программирования C++, настроите сценарий тестирования проекта и проверите его выполнение.

Чтобы создать и протестировать проект в среде GitLab:

  1. Подготовьте облако к работе.
  2. Необходимые платные ресурсы.
  3. Создайте ВМ с GitLab.
  4. Настройте GitLab.
  5. Задайте настройки приватности.
  6. Создайте проект.
  7. Настройте и запустите тестирование для проекта.
  8. Настройте и зарегистрируйте runner.
  9. Создайте сценарий тестирования.
  10. Создайте ошибку в проекте.
  11. Как удалить созданные ресурсы.

Подготовьте облако к работеПодготовьте облако к работе

Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь.
  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.

Подробнее об облаках и каталогах.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки сервера для GitLab входит:

  • Плата за диск и постоянно запущенную ВМ (см. тарифы Yandex Compute Cloud).
  • Плата за использование динамического или статического публичного IP-адреса (см. тарифы Yandex Virtual Private Cloud).

Создайте виртуальную машину с GitLabСоздайте виртуальную машину с GitLab

  1. На странице каталога в консоли управления нажмите кнопку Создать ресурс и выберите Виртуальная машина.

  2. В блоке Образ загрузочного диска в поле Поиск продукта введите Gitlab и выберите публичный образ GitLab.

  3. В блоке Расположение выберите зону доступности, в которой будет создана ВМ. Если вы не знаете, какая зона доступности вам нужна, оставьте выбранную по умолчанию.

  4. В блоке Диски и файловые хранилища выберите тип диска SSD и задайте размер 20 ГБ.

  5. В блоке Вычислительные ресурсы перейдите на вкладку Своя конфигурация и укажите необходимую платформу, количество vCPU и объем RAM:

    • Платформа — Intel Ice Lake.
    • vCPU — 4.
    • Гарантированная доля vCPU — 100%.
    • RAM — 8 ГБ.
  6. В блоке Сетевые настройки:

    • В поле Подсеть выберите сеть и подсеть, к которым нужно подключить ВМ. Если нужной сети или подсети еще нет, создайте их.
    • В поле Публичный IP-адрес оставьте значение Автоматически, чтобы назначить ВМ случайный внешний IP-адрес из пула Yandex Cloud, или выберите статический адрес из списка, если вы зарезервировали его заранее.
  7. В блоке Доступ выберите вариант SSH-ключ и укажите данные для доступа на ВМ:

    • В поле Логин введите имя пользователя. Не используйте имя root или другие имена, зарезервированные ОС. Для выполнения операций, требующих прав суперпользователя, используйте команду sudo.
    • В поле SSH-ключ выберите SSH-ключ, сохраненный в вашем профиле пользователя организации.

      Если в вашем профиле нет сохраненных SSH-ключей или вы хотите добавить новый ключ:

      • Нажмите кнопку Добавить ключ.
      • Задайте имя SSH-ключа.
      • Загрузите или вставьте содержимое открытого SSH-ключа. Пару SSH-ключей для подключения к ВМ по SSH необходимо создать самостоятельно.
      • Нажмите кнопку Добавить.

      SSH-ключ будет добавлен в ваш профиль пользователя организации.

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

  8. В блоке Общая информация задайте имя ВМ: gitlab.

  9. Нажмите кнопку Создать ВМ.

Подождите примерно пять минут, пока не будет создана ВМ и на ней не запустятся все сервисы. После полного запуска всех сервисов, GitLab станет доступен через веб-интерфейс в браузере.

Настройте GitLabНастройте GitLab

  1. На странице сервиса Compute Cloud выберите созданную ВМ gitlab и скопируйте ее публичный IP-адрес.

  2. Подключитесь к ВМ по протоколу SSH.

  3. Получите пароль администратора GitLab с помощью команды ВМ:

    sudo cat /etc/gitlab/initial_root_password
    
  4. Скопируйте пароль из строки Password (исключая пробелы) в буфер обмена или отдельный файл.

  5. Откройте в браузере ссылку http://<публичный_IP-адрес_ВМ>. Откроется веб-интерфейс GitLab.

  6. Войдите в систему с учетной записью администратора:

    • Username or email — root.
    • Password — пароль, скопированный ранее.

    Если вы не можете войти, сбросьте пароль учетной записи администратора.

  7. Смените пароль учетной записи администратора.

  8. Повторно войдите в систему с учетной записью администратора, используя новый пароль.

Задайте настройки приватностиЗадайте настройки приватности

Отключите возможность регистрации других пользователей через страницу авторизации:

  1. Перейдите в раздел Admin area.
  2. В панели слева перейдите в раздел Settings и выберите вкладку General.
  3. В блоке Sign-up restrictions нажмите кнопку Expand.
  4. Отключите опцию Sign-up enabled.
  5. Нажмите кнопку Save changes.

Теперь зарегистрировать новых пользователь может только администратор, через вкладку Users в разделе Overview.

Создайте проектСоздайте проект

Для того, чтобы создать проект:

  1. На главной странице GitLab выберите Create a project.

  2. На открывшейся странице укажите:

    • Имя проекта: My Project.
    • Группу и идентификатор проекта: root и my-project.
    • При необходимости задайте описание и область видимости проекта.
  3. Нажмите кнопку Create project.

    Создание проекта

  4. После создания проекта в панели слева перейдите в раздел Settings и выберите вкладку CI/CD.

  5. В блоке Auto DevOps нажмите кнопку Expand, отключите опцию Default to Auto DevOps pipeline и сохраните изменения кнопкой Save changes.

    Отключение Auto DevOps

  6. Добавьте файл проекта.

    1. В панели слева перейдите в проект GitLab.

    2. В строке навигации по репозиторию нажмите кнопку и в выпадающем меню выберите пункт New file.

    3. Назовите файл test.cpp. Добавьте в него код программы, которая проверяет результат умножения 2 × 2 и выводит Hello World, если результат равен 4:

      #include <iostream>
      #include <cassert>
      
      int main() {
        assert(2 * 2 == 4);
        std::cout << "Hello world!" << std::endl;
        return 0;
      }
      

      Добавление файла

    4. Укажите название коммита в поле Commit message.

    5. Нажмите кнопку Commit changes.

Настройте и запустите тестирование для проектаНастройте и запустите тестирование для проекта

Runner - это программа, которая осуществляет процесс тестирования и сборки проекта в среде GitLab по заданной инструкции.

Настройте и зарегистрируйте runnerНастройте и зарегистрируйте runner

  1. Зайдите по SSH на ВМ и перейдите в режим администратора в консоли:

    sudo -i
    
  2. Загрузите runner:

    curl --location --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
    
  3. Сделайте runner исполняемым:

    chmod +x /usr/local/bin/gitlab-runner
    
  4. Создайте отдельного пользователя для запуска runner:

    useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
    
  5. Установите и запустите runner:

    gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
    gitlab-runner start
    
  6. Зарегистрируйте runner в GitLab:

    1. Запустите интерактивную регистрацию командой gitlab-runner register.

    2. Введите адрес вашего GitLab-сервера. При запросе:

      Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com)
      

      введите http://<публичный_IP-адрес_вашей_ВМ>.

    3. Введите регистрационный токен для runner. Чтобы его найти, нужно перейти в GitLab на страницу проекта, затем в панели слева выбрать Settings и открыть вкладку CI/CD. После этого нажмите кнопку Expand в блоке Runners. В разделе Set up a specific Runner manually скопируйте токен из третьего пункта и введите его в ответ на запрос:

      Please enter the gitlab-ci token for this runner
      <токен>
      

      Получение токена

    4. На запрос:

      Please enter the gitlab-ci description for this runner
      

      введите описание runner: My runner.

    5. В поле ввода тегов не указывайте ничего, нажмите Enter. Иначе по умолчанию runner не будет выполнять работу без указания соответствующих тегов для проекта.

    6. Укажите среду выполнения. В нашем случае, на запрос:

      Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
      

      введите: shell.

На этом установка и настойка runner выполнена. Если все сделано правильно, то на странице, где вы копировали регистрационный токен, должен появиться раздел Runners activated for this project, в котором будет отображаться зарегистрированный runner.

Успешная настройка

Создайте сценарий тестированияСоздайте сценарий тестирования

Создайте сценарий тестирования, который будет выполнять runner. Сценарий описывается в специальном файле .gitlab-ci.yml, который должен находиться в корневой директории проекта. По сценарию runner будет компилировать исходный файл проекта в исполняемый файл, а затем запускать его.

Так как тестирование будет выполняться в операционной системе ВМ, установите приложения, которые необходимы для тестирования: git для клонирования проекта из репозитория и g++ для компиляции проекта.

Чтобы создать сценарий тестирования:

  1. Подключитесь к ВМ по SSH и установите необходимые приложения:

    sudo apt update
    sudo apt install -y git g++
    
  2. Добавьте сценарий тестирования:

    1. Откройте веб-интерфейс GitLab.

    2. Откройте проект GitLab.

    3. На открывшейся странице нажмите кнопку Set up CI/CD.

    4. Откроется страница с предложением добавить новый файл .gitlab-ci.yml, в котором в формате YAML нужно описать сценарий. Добавьте текст сценария:

      stages:
        - build
        - test
        - pack
      
      cache:
        paths:
          - hello
      
      build:
        stage: build
        script: g++ test.cpp -o hello
      
      test:
        stage: test
        script: ./hello
      
      pack:
        stage: pack
        script: gzip -c hello > hello.gz
        artifacts:
          paths:
            - hello.gz
      

      В сценарии указано, что работа разделена на три этапа, которые выполняются последовательно:

      • build — на первом этапе выполняется компиляция проекта в исполняемый файл hello.
      • test — на втором исполняемый файл запускается.
      • pack — на третьем этапе создается архив с исполняемым файлом, который можно будет загрузить через веб-интерфейс GitLab после успешного завершения сценария. В блоке artifacts указаны файлы, доступные для загрузки.

      В блоке cache указываются файлы и директории, которые необходимо передавать между этапами. Если его не указать, то на этапе test файл hello не будет доступен и произойдет ошибка.

      Сценарий тестирования

    5. Нажмите Commit changes

После коммита система автоматически начнет тестировать последний коммит. Чтобы проверить результаты тестирования, на панели слева в проекте GitLab выберите пункт Build, в выпадающем меню выберите пункт Pipelines. В результате должна появиться строчка с первым тестом и статусом passed. Нажав на значок с облаком вы можете загрузить артефакты сборки.

Создайте ошибку в проектеСоздайте ошибку в проекте

Теперь сделайте так, чтобы в проекте произошла ошибка, которую runner должен помочь найти в процессе выполнения тестирования. Для этого:

  1. Зайдите в репозиторий проекта и откройте файл test.cpp.

  2. Нажмите Edit.

  3. Укажите в проверке (assert), что результат выполнения умножения 2 на 2 должен быть равен 5. В этом случае при выполнении программы произойдет ошибка и она завершится некорректно.

    ...
    assert(2 * 2 == 5);
    ...
    
  4. Назовите коммит Wrong assert in test.cpp.

  5. Нажмите Commit Changes.

Откройте раздел Build → Pipelines. В столбце Stages видно, что в результате выполнения теста был успешно пройден первый этап build, а на втором этапе test произошла ошибка. Третий этап pack был пропущен и итоговые артефакты не были сформированы.

Если нажать на статус выполнения failed и перейти на вкладку Failed Jobs, можно увидеть текст ошибки, где указано, что не выполнился assert:

Ошибка выполнения

Как удалить созданные ресурсыКак удалить созданные ресурсы

Чтобы перестать платить за развернутый сервер, достаточно удалить созданную ВМ gitlab.

Если вы зарезервировали статический публичный IP-адрес специально для этой ВМ:

  1. Выберите сервис Virtual Private Cloud в вашем каталоге.
  2. Перейдите на вкладку IP-адреса.
  3. Найдите нужный адрес, нажмите значок и выберите пункт Удалить.

Была ли статья полезна?

Предыдущая
Непрерывное развертывание контейнеризованных приложений с помощью GitLab
Следующая
Создание тестовых ВМ через GitLab CI
Проект Яндекса
© 2025 ООО «Яндекс.Облако»