Тестирование программного обеспечения | Jenkins Create Pipeline
Тестирование программного обеспечения | Jenkins Create Pipeline

Недавно я использовал Jenkins, чтобы помочь бизнес-команде построить конвейер, добавил в конвейер процесс тестирования и кратко записал процесс построения. Учитывая конфиденциальность проекта, в этой статье показаны только этапы построения и использование инструментов, а коды в статье являются псевдокодом.

Введение и установка JenkinsPipeline

01

Любой, кто знаком с Jenkins, наверняка слышал о конвейере. Pipeline — это набор синтаксиса Groovy DSL, представленный Jenkins 2.0, который управляет и поддерживает задачи, которые изначально выполнялись независимо на нескольких заданиях или нескольких узлах в форме кода.

02

Для установки конвейера Jenkins рекомендуется использовать образ Docker. Поскольку Jenkins написан на Java, вам необходимо установить среду Java, настроить переменные среды и выполнить другие операции. Иногда вы можете столкнуться с проблемами несовместимости с версией jdk. Чтобы громоздкий процесс установки не ослабил наш энтузиазм к обучению, рекомендуется выполнять развертывание с использованием образов Docker. Шаги установки очень просты:

1

Извлеките изображение JenkinsBlueOcean.

Язык кода:txt
копировать
docker pull jenkinsci/blueocean

2

Создать каталог монтирования

Язык кода:txt
копировать
mkdir /var/jenkins_home

3

Запустить Дженкинса

Язык кода:txt
копировать
docker run -d -p 8888:8080 -p 50000:50000 -v jenkins:/var/jenkins_home –v /etc/localtime:/etc/localtime --name jenkinsci-blueocean -d jenkinsci/blueocean

Если вы воспользуетесь вышеуказанными шагами для установки Jenkins, после входа в систему вы увидите следующий значок на левой панели навигации страницы:

Если вы установили обычную версию Jenkins,Можно найти в【Manage Jenkins】——【ManagePlugins】Искать вBlueOceanУстановить,После установки вы также можете увидеть значок на картинке выше в боковой панели навигации основного интерфейса.

После завершения установки начинаем входить в тему и создавать Pipeline двумя разными способами.

Создание конвейера в классическом режиме

Существует два способа создания конвейера. Первый способ, который мы называем традиционным, — это использовать классический интерфейс Jenkins и организовать этапы конвейера, написав собственный PipelineScript. Этот метод кратко представлен ниже с помощью диаграммы.

1. Войдите в Jenkins и нажмите «Создать» слева, чтобы создать новую задачу сборки.

2. Перейдите к следующему интерфейсу, введите имя задачи и информацию об ее описании, выберите параметр «Конвейер» и нажмите кнопку «ОК» ниже, чтобы создать задачу конвейера.

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

General

Общие сведения — некоторые базовые конфигурации Pipeline. Название, описание и некоторые основные настройки.

Ниже приводится краткое введение в несколько часто используемых настроек. По остальным элементам настройки, которые не представлены, вы можете обратиться к официальной документации Jenkins или справочной документации.

①.Проект GitHub

Исходный код этого конвейера размещен в Github. Выберите этот вариант, чтобы добавить адрес проекта в Github.

②.Preserve stashes from completed builds

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

③.Отменить старые сборки.

Здесь я настроил отмену сборок, сохраняя только историю сборок за последнюю неделю и не ограничивая количество сборок.

Создать триггер

Создать триггер очень легко понять,Это условие запуска строительства трубопровода. Ниже приводится краткое описание каждого условия триггера. Несколько из этих триггерных условий могут быть выбраны в соответствии с потребностями проекта.,Используйте в сочетании.

Мой код размещен в gitlab, и я хочу автоматически запускать сборку при обновлении кода, поэтому я выбрал «Опрос SCM».

Расширенные параметры проекта

Это установка отображаемого имени проекта. Он не имеет специальной функции и не требует особого внимания.

сборочная линия

Эта часть является основной частью конвейера. На этом этапе мы начнем определять сборочную линию.

В определении «Сборочная линия» используется скрипт Groovy., есть два способа сохранить скрипты.,Первый — написать это прямо в проекте Jenkins.,Другой хранится в файле Jenkins в каталоге проектов репозитория кода.,В реальном проекте большинство сценариев хранятся в каталоге проекта.,Но это используется только тогда, когда количество проектов невелико. Если проекта слишком много,Jenkinsfile разбросан по различным проектам.,Также будет неудобно поддерживать,На данный момент вы можете создать каталог для централизованного сохранения файла Jenkins.,Легко найти и поддерживать.

Выберите способ определения сборочной линии

Я использовал [PipelinescriptfromSCM] и добавил только адрес хранилища кода и информацию о токене, оставив все остальное по умолчанию.

Конечно, прежде чем вы решите создать сборку таким способом. Прежде чем создать линию, вы должны разработать сборочную линии шагов и написал надежный файл Jenkinsfile.

Прежде чем писать Jenkinsfile, давайте познакомимся с некоторыми терминами.

● Agent:существоватьJenkinsв кластере,Агент эквивалентен подчиненной машине,Получайте и выполняйте задачи, назначенные главной машиной.

● Stage:Pipelineразные этапы в,Например: «строить»,“тест”и“развертывать”。

Ниже приведена программа, которую я написал【Подборка】——[Скомпилировать образ Docker]——【развертывать】——【тест】Линия, состоящая из этих этаповсборочная линия. Студенты, не знакомые с PipelineScript, могут сначала ознакомиться с грамматикой. Грамматика не является предметом рассмотрения в статье. В центре внимания на.

Язык кода:txt
копировать
pipeline {
  agent any  //agent Его необходимо поместить в определение верхнего уровня конвейера или, при необходимости, определить на этапе. Если он размещен на этапе, он будет использоваться на разных этапах.
  stages {  //Pipeline В основной части декларации декларируются различные этапы, такие как Сборка, развертывание, тестирование
    stage('Build') {  //фаза компиляции
      steps {
        sh 'pwd'
        git(url: 'https://xxx.xxx.xxx.xxx/xxxxxxxx/xxxxxxx', poll: true, credentialsId: '0000000-0000-0000-0000-000000000000') //Извлекаем код
        echo «Скомпилируйте, используя инструменты компиляции»  //компилируем
        archiveArtifacts(artifacts: 'testProject', onlyIfSuccessful: true)  //компилируемый Архив продуктов
      }
    }

    stage('Docker Build')  //компилируемdocker Файл изображения
            agent any
            steps {
                unstash 'test'
                sh "docker login"
                sh "docker build"
                sh "docker push "
                sh "docker rmi"
            }

        }
    stage('Deploy') { //этап развертывания
        agent {  //Специально объявите агент на этапе, и этап будет выполнен в объявленном агенте.
            docker {
                image 'image_name'
            }
        }
        steps { //этапы выполнения
            sh "mkdir -p ~/.kube"
            echo 'Добавить шаги развертывания для завершения развертывания '
            echo «Запустить сервис»
        }

    stage('Test') { //Этап тестирования
      steps {
        echo «Этап тестирования»
        git(url: 'https://xxx.xxx.xxx.xxx/xxxxxxxx/xxxxxxx', poll: true, credentialsId: '0000000-0000-0000-0000-000000000000')
        echo «Выполнить тестовый пример»
      }
    }

  }
  environment {  //Переменные среды, используйте ${variable в satge имя}, чтобы позвонить
    image_name = 'testProject'
    project_path = '../testProject'
    K8S_CONFIG = credentials('jenkins-k8s-config')
    GIT_TAG = sh(returnStdout: true,script: 'git describe --tags --always').trim()
  }
}

Таким образом можно определить конвейер: Создание конвейера в классическом Режим является наиболее широко используемым методом. Однако существует определенный порог для использования этого метода, то есть вы должны быть знакомы с правилами синтаксиса PipelineScript. Итак, если вы скажете, что я новичок и не имею языковой базы, могу ли я не говорить самостоятельно? конвейер Понятно?конечнонет,Второй метод, который будет представлен ниже,Вам не нужно писать код вручную,Дженкинс автоматически сгенерирует его для вас.

Использование плагина BlueOcean

Создать конвейер

Помните установленный в начале статьи плагин BlueOcean? Этот плагин предоставляет визуальный интерфейс,Вы можете взаимодействовать с Создать конвейер, значительно снижает порог использования. Давайте испытаем это ниже!

На домашней странице Jenkins нажмите «Открыть BlueOcean», чтобы войти в следующий интерфейс.

Нажмите «Создать новую сборочную линию», чтобы перейти на страницу создания.

Выберите хранилище кода,Заполните адрес и токен,Создать сборку линия。

После создания добавьте этапы и различные шаги в соответствии с вашими потребностями.

Визуализация Создать конвейер более «глупый»,Очень простой в эксплуатации,Я не буду здесь рассказывать об этом подробно.,Заинтересованные друзья могут попрактиковаться в этом сами.

Следует отметить, что использование BlueOcean Create конвейер автоматически сгенерирует файл Jenkinsfile и, наконец, сохранит его в каталоге проектов хранилища кода. Сгенерированные шаги такие же, как в нашем рукописном файле Jenkins выше. Каждая модификация сборная рабочий процесс линии и отправка изменений изменят файл Jenkins один раз и создадут запись об изменении в репозитории кода.

Вышеупомянутое - Создать конвейердва пути,Друзья могут выбирать разные прически в соответствии со своими потребностями. Когда количество проектов относительно невелико,Может быть создан с помощью BlueOcean. Если проектов много или структура трубопровода сложна.,Использование этого метода будет очень медленным,И Jenkinsfile разбросан по различным каталогам проектов.,Неудобен в обслуживании,В настоящее время рекомендуется использовать классический режим для создания и обслуживания файла Jenkins, написав его самостоятельно.

boy illustration
Проблема со входом в Docker: невозможно подключиться к Docker Hub
boy illustration
Установите докер на виртуальной машине CentOS
boy illustration
Контейнерное путешествие программистов в облако в 2024 году. Эпизод 1: Пересечение границ
boy illustration
Инфраструктура как код (IaC): будущее автоматизированного управления инфраструктурой
boy illustration
Как создать онлайн-банк вопросов для тестов и помочь пользователям бесплатно формировать статьи и тесты.
boy illustration
Корпоративная практика Traefik: внедрение Traefik на производственном уровне
boy illustration
Каковы основные модели обслуживания облачных вычислений? Каковы их характеристики?
boy illustration
Уведомление о выпуске COS нового доменного имени tencentcos.cn
boy illustration
Дополнительные правила поощрения Роспотребнадзора на 22 марта
boy illustration
Анализ и лечение причин вирусов-вымогателей и майнинга на серверах
boy illustration
Hexo -26- Бесплатное ускорение CDN CloudFlare
boy illustration
Разница между традиционным хранилищем и объектным хранилищем
boy illustration
Использование хост-порта и хост-сети в Kubernetes
boy illustration
Учебное пособие о том, как создать частный сервер Palworld одним щелчком мыши
boy illustration
[Зона легкого облачного игрового сервера] Как продлить срок действия игрового сервера и вернуть деньги за него?
boy illustration
Исследование и практика реального бизнес-производства и применения GBI (генеративная бизнес-аналитика)
boy illustration
Перейти в облако государственных активов или облако по делам правительства? Безопасное облако зависит от оценки облака
boy illustration
Поговорим о ситуационной осведомленности с нуля
boy illustration
Внедрение промежуточного программного обеспечения универсального хранилища файлов через протокол S3.
boy illustration
Поймите управление продукцией в одной статье: от теоретических норм, практического применения до безопасности цепочки поставок.
boy illustration
Feiniu fnos использует Docker для развертывания учебника по iptv-источникам
boy illustration
RDMA — принцип проектирования подкачки по требованию ODP, преимущества и анализ исходного кода
boy illustration
Этот вычислительный кластер, выпущенный Goose Factory, может обучать большие модели с триллионами параметров за самые быстрые 4 дня.
boy illustration
[Техническая посадка] Дабл Одиннадцать! Приближается большая волна скидок на создание веб-сайтов, почему бы не прийти сюда, чтобы создать веб-сайт?
boy illustration
[Представление сообщества] Реализация шлюза k8s на основе Pingora, практика кода (1)
boy illustration
Стратегия создания веб-сайтов IIS на облачном сервере Сколько веб-сайтов может создать облачный сервер?
boy illustration
Cloud Native использует Docker для развертывания личной навигационной страницы на домашней странице.
boy illustration
Разработка приложения HarmonyOS | HarmonyOS Next-анализ всего процесса от разработки приложения до запуска
boy illustration
Поделитесь хорошим местом для загрузки оригинального iso-файла server2025 от Microsoft.
boy illustration
Feiniu fnos использует Docker для развертывания онлайн-офисного пакета для совместной работы с открытым исходным кодом onlyoffice