Подробный процесс развертывания среды автоматизированного тестирования интерфейса/UI на основе Jenkins+Python+Ubuntu+Docker.
Подробный процесс развертывания среды автоматизированного тестирования интерфейса/UI на основе Jenkins+Python+Ubuntu+Docker.

1 Что такое Дженкинс?

  • Официальный сайт исследования:Официальный сайт Дженкинса,Официальный сайт Jenkins в Китае
  • JenkinsЭто открытый исходный код CI&CD Программное обеспечение для автоматизации различных задач, включая сборку, тестирование и развертывание программного обеспечения;
  • использоватьJavaнаписано на языке,Доступно наTomcatDockerЗапуск в популярных контейнерах,Также может запускаться независимо.

С точки зрения непрофессионала, например, процесс компиляции, упаковки, загрузки и развертывания в Tomcat передается Jenkins. Jenkins переносит код на свой «хост-сервер» (установка Jenkins) через заданный URL-адрес кода (адрес хранилища кода). ). location), скомпилируйте, упакуйте и опубликуйте в контейнере Tomcat.

2 Какова цель Дженкинса?

  • Непрерывно и автоматически создавайте программные проекты или Автоматизированное тестированиепроект;
  • Помогите быстро обнаружить проблемы и повысить эффективность разработки;
  • Автоматизированное Обучение может помочь повысить эффективность тестирования.

3 Что такое CI/CD?

3.1 Непрерывная интеграция CI

  • CI:Прямо сейчасContinuous integrationпродолжениеинтегрированный;
  • Подчеркнув, что разработчик представил новый,Немедленно соберите и (юнит) протестируйте. По результатам испытаний,Мы можем определить, правильно ли интегрирован новый и исходный код;
  • Команде необходимо готовиться к каждой новой функции、улучшение кода、Или исправление проблемы для создания варианта использования «Автоматизированное обучение»;
  • нужен одинпродолжениеинтегрированныйсервер,Он может отслеживать отправку кода,Автоматизированное тестирование с каждой новой подачей;
  • Отправьте как можно быстрее;
  • Следующие изображения взяты из Интернета и могут помочь в понимании и предназначены только для справки:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Преимущества:

① Получите результаты регрессионного тестирования заранее, чтобы избежать проблем при входе в производственную среду; ② Будет легче публиковать и компилировать;

③ Уменьшить переключение рабочих задач, быстро получать новости о сбое сборки и быстро решать проблему;

④ Значительно сокращаются затраты на тестирование, включая временные и трудовые затраты;

⑤ Экономьте время команды контроля качества и сосредоточьтесь на построении культуры качества.

3.2 Непрерывное развертывание компакт-диска

  • CD:Прямо сейчасcontinuous deploymentпродолжениеразвертывать;
  • Быстро доставляйте высококачественные продукты посредством автоматизированных циклов сборки, тестирования и развертывания;
  • Команда должна иметь полную концепцию тестирования;
  • Модульное тестирование особенно важно;
  • Документация и частота развертывания должны быть согласованными;
  • Преимущества:

① Частота быстрого выпуска; ② Риск снижается, и проблему можно быстро устранить; ③ Клиенты могут быстро увидеть результаты доставки продукта.

3.3 Непрерывная доставка компакт-диска

  • CD:Прямо сейчасContinuous Deliveryпродолжениедоставлять;
  • Это позволяет завершить процесс производства программных продуктов за короткий цикл, чтобы обеспечить стабильное и непрерывное поддержание программного обеспечения в состоянии, которое может быть выпущено в любое время;
  • существоватьпродолжениеинтегрированныйна основе,Разверните интегрированный код в более реалистичной операционной среде (производственной среде);
  • Цель состоит в том, чтобы ускорить и чаще создавать, тестировать и выпускать программное обеспечение;
  • нужен сильныйпродолжениеинтегрированныйкомпоненты и достаточное количество тестовых предметов, чтобыкудовлетворитькодпотребности;
  • Развертывание необходимо автоматизировать;
  • Следующие изображения взяты из Интернета и предназначены только для справки:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

4 среда Ubuntu

4.1 Экологические требования

  • Моя среда:

Установите виртуальную машину Hyper-V на операционную систему Windows 10, затем установите на виртуальную машину операционную систему Ubuntu и запустите автоматические тесты на Ubuntu;

Язык кода:python
кодКоличество запусков:0
копировать
# Наша среда:
1. Сервер Linux (у меня Ubuntu) на виртуальной машине, хаха
2. Правильно установите докер на сервер
3. Извлеките изображение Дженкинса: jenkins/jenkins:lts.
4. Извлеките образ python3: docker pull python:3.7

4.2 Идеи реализации

1. Установите докер на Linux-сервер; 2. Создайте контейнер Дженкинса;

3. Создайте образ Python на основе пакета зависимостей проекта автоматизации (создайте автоматизированную среду Python);

4. Запустите новый контейнер Python и выполните проект автоматизации, который Дженкинс извлек из хранилища.

5. Удалите контейнер после завершения выполнения.

5. Установите Docker под Ubuntu

6. Установите Дженкинс

6.1 Извлеките изображение Дженкинса

  • делатьиспользоватьdockerтянутьJenkinsзеркало:
Язык кода:python
кодКоличество запусков:0
копировать
docker pull jenkins/jenkins:lts
Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения

6.2 Запуск Дженкинса

Язык кода:python
кодКоличество запусков:0
копировать
docker run 
-dit 
--name=jenkins
-p 8080:8080 
-u=root 
-v /var/run/docker.sock:/var/run/docker.sock 
-v /usr/bin/docker:/usr/bin/docker 
jenkins/jenkins:lts
  • Описание параметра:
Язык кода:python
кодКоличество запусков:0
копировать
Описание параметра
-i: указывает на запуск контейнера
-t: указывает, что контейнер введет свою командную строку после запуска.
-d: создать контейнер в режиме демона и запустить его в фоновом режиме.
--name: имя контейнера
-p 8080:8080: сопоставление портов, порт хоста: порт контейнера Дженкинса
-u=root: указать пользователя контейнера в качестве пользователя root.
-v /var/run/docker.sock:/var/run/docker.sock: сопоставьте docker.sock с контейнером jenkins.
Файл docker.sock — это докер. клиент и докер файлы связи демона
-v /usr/bin/docker:/usr/bin/docker: сопоставляет клиент Docker хоста с контейнером jenkins.
Вставьте сюда описание изображения
Вставьте сюда описание изображения

6.3 Изменение разрешений Дженкинса

  • еслиdockerУстановитьjenkinsЗапустить не удалось;
  • Просмотр журнала показывает, что разрешений недостаточно:
Язык кода:python
кодКоличество запусков:0
копировать
docker logs jenkin
  • Затем измените указанный выше каталог/var/jenkins_homeразрешения:
Язык кода:python
кодКоличество запусков:0
копировать
chown -R 1000 /var/jenkins_home 
  • Или при запуске контейнера,кrootЗапустить с разрешения,добавлять-u=root
  • Просто введите адрес: 8080 в браузере:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

7. Начальная конфигурация Дженкинса

7.1 Просмотр журналов контейнера

Язык кода:python
кодКоличество запусков:0
копировать
docker logs jenkins
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • к Это нашеjenkinsпароль,копировать Разблокировать после Прямо сейчас Может;
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

7.2 Выбор плагина

  • Войдите на следующую страницу:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Плагин будет установлен следующим образом. Если появится сообщение об ошибке, просто нажмите «Повторить»:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

7.3 Создание пользователя-администратора

  • После установки плагина вы попадете в следующий интерфейс:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Запомните введенные вами имя пользователя и пароль, затем сохраните и продолжайте;
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Продолжайте сохранять, чтобы перейти к следующему шагу.
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

7.4 Установка плагинов

7.4.1 Установка плагина git

  • Когда мы раньше устанавливали плагин,,Выберите установку плагина по умолчанию,ТакgitПлагин уже есть Установитьхорошо,Может从к Посмотрите изображение ниже:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Нажмите【install plugins】Можетк Посмотреть уже Установитьплагин:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Нажмите【available plugins】Вы можете загрузить нужные вам плагины,здесь я Установить Внизgitee
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

7.4.2 Установка плагина Docker

  • Искать следующим образомdockerУстановить Прямо сейчас Может:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • После установки это выглядит следующим образом:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

7.4.3 Установка плагина HTML Publisher

  • Ищите следующим образом:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

7.4.4 Установка плагина расширения электронной почты

  • Как показано ниже:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

7.4.5 JDK, Maven, плагин SSH (необязательно)

  • УстановитьJDK
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Введите номер вашего счета и пароль:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Установитьmaven
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • КонфигурацияSSH
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Задайте хост и порт и нажмите [Добавить]:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Если при добавлении нет ответа, нажмите имя пользователя в правом верхнем углу, чтобы добавить его:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Вы можете попробовать сами, чтобы убедиться, что все в порядке.

После выполнения вышеуказанных шагов,Установить Перезагрузить после завершенияjenkinsконтейнер

Язык кода:python
кодКоличество запусков:0
копировать
docker restart jenkins
Вставьте сюда описание изображения
Вставьте сюда описание изображения

8 Подробная конфигурация Дженкинса

8.1 Создать новую задачу

  • Войдите сноваjenkins,точкаNew ItemКак показано на картинке:
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • Введите название проекта и выберите способ строительства по своему проекту. Здесь я выберу первый (создать проект в свободном стиле):
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

8.2 Задачи настройки

8.2.1 Настройка правил хранения записей сборки

  • существоватьGeneralв опциях,Настройки следующие:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

8.2.2 Конфигурация хранилища Git

  • Введите адрес, учетную запись и пароль git-склада:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

8.2.3 Настройка операций после сборки

  • Добавить модуль действий после сборки,linuxВыбрать следующийshell:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Настройте работающий скрипт:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • КонфигурацияjenkinsПуть к отчету о тестировании, показанный на:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Настройте триггеры электронной почты:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • После выполнения вышеуказанных действий сохраните его.

8.3 Настройка электронной почты

  • jenkinsуправлять-система Конфигурация-Jenkins Location。существоватьсистемауправлятьадрес электронной почты сотрудников,Введите соответствующий адрес электронной почты:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • jenkinsуправлять-система Конфигурация-Extended E-mail Notification,Заполните соответствующиеsmtpКонтент, связанный с сервером,Нажмите «Дополнительно».,Введите соответствующий адрес электронной почты иsmtpКод авторизации входа,Проверятьssl
Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • Настройте триггеры электронной почты:jenkinsуправлять-система Конфигурация-Default Triggers,По умолчанию оно будет отправлено только в том случае, если проверка не пройдена.,Можно настроить на постоянную отправку (или проверку в зависимости от потребностей),Таккаждый разбегатьпроект Письма будут отправляться каждый раз。
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

9. Создайте образ Python

9.1 Экспорт пакетов зависимостей

  • Создайте образ Python со средой выполнения проекта;
  • существоватьместныйPythonбегать环境中Воляпроект Экспортировать зависимые пакетыприезжатьrequirements.txtв файле;
Язык кода:python
кодКоличество запусков:0
копировать
pip freeze > requirements.txt
  • Моя заключается в следующем:
Язык кода:python
кодКоличество запусков:0
копировать
adbutils==0.11.0
alembic==1.6.5
allure-pytest==2.8.12
allure-python-commons==2.8.12
altgraph==0.17.2
amqp==5.0.6
anyjson==0.3.3
apipkg==1.5
apkutils2==1.0.0
Appium-Python-Client==0.50
asgiref==3.3.1
atomicwrites==1.4.0
attrs==20.3.0
BeautifulReport==0.1.3
beautifulsoup4==4.9.3
billiard==3.6.4.0
blinker==1.4
cached-property==1.5.2
celery==5.0.5
certifi==2020.12.5
cffi==1.14.5
chardet==3.0.4
cigam==0.0.3
click==7.1.2
click-didyoumean==0.0.3
click-plugins==1.1.1
click-repl==0.2.0
colorama==0.4.4
comtypes==1.1.8
configparser==5.0.2
coreapi==2.3.3
coreschema==0.0.4
coverage==5.5
cryptography==3.2.1
cycler==0.10.0
DataRecorder==3.2.2
ddt==1.4.2
decorator==5.0.9
defusedxml==0.7.1
Deprecated==1.2.12
deprecation==2.1.0
diff-match-patch==20200713
Django==2.2.16
django-bootstrap==0.2.4
django-bootstrap3==15.0.0
django-bootstrap4==2.3.1
django-celery==3.3.1
django-celery-beat==2.2.0
django-ckeditor==6.1.0
django-cors-headers==3.7.0
django-crispy-forms==1.12.0
django-crontab==0.7.1
django-filter==2.4.0
django-haystack==3.0
django-import-export==2.5.0
django-js-asset==1.2.2
django-mdeditor==0.1.18
django-ranged-response==0.2.0
django-redis==4.12.1
django-rest-framework-mongoengine==3.4.1
django-simple-captcha==0.5.13
django-simpleui==2021.6.2
django-timezone-field==4.1.2
django-tinymce==3.3.0
djangorestframework==3.12.2
djangorestframework-jwt==1.11.0
dnspython==1.16.0
docopt==0.6.2
docutils==0.17.1
dogtail==0.9.10
dominate==2.6.0
DownloadKit==0.5.0
drf-extensions==0.7.0
drf-haystack==1.8.10
DrissionPage==3.1.1
easygui==0.98.2
elasticsearch==2.4.1
et-xmlfile==1.0.1
eventlet==0.30.2
execnet==1.8.0
facebook-wda==1.4.3
filelock==3.0.12
Flask==1.1.2
Flask-Bootstrap==3.3.7.0
Flask-Excel==0.0.7
Flask-Login==0.5.0
Flask-Mail==0.9.1
Flask-Migrate==2.0.0
Flask-Moment==1.0.1
Flask-Script==2.0.5
Flask-SQLAlchemy==2.4.4
FlowViewer==0.2.2
freetype-py==2.2.0
fsspec==2022.8.2
future==0.18.2
greenlet==1.1.0
HTMLReport==2.3.1
idna==2.10
importlib-metadata==2.1.1
iniconfig==1.1.1
itsdangerous==1.1.0
itypes==1.2.0
jdcal==1.4.1
Jinja2==2.11.2
jsonpath==0.82
kiwisolver==1.3.1
kombu==5.1.0
lml==0.1.0
loguru==0.7.0
logzero==1.7.0
lxml==4.6.3
Mako==1.1.4
Markdown==3.3.4
MarkupPy==1.14
MarkupSafe==1.1.1
matplotlib==3.3.3
mock==3.0.5
mongoengine==0.22.1
more-itertools==8.7.0
mpmath==1.2.1
mutagen==1.44.0
mysql-connector==2.2.9
mysqlclient==2.0.3
numpy @ file:///C:/Users/Administrator/Downloads/numpy-1.21.0-cp37-cp37m-win_amd64.whl
odfpy==1.4.1
opencv-python==4.7.0.72
openpyxl==3.0.5
packaging==20.8
pandas==1.1.5
ParamUnittest==0.2
pefile==2021.9.3
Pillow==8.3.1
pipreqs==0.4.11
pluggy==0.13.1
progress==1.6
prompt-toolkit==3.0.19
psutil==5.8.0
py==1.10.0
pyasn1==0.4.8
pycparser==2.20
pycryptodomex==3.9.4
pyelftools==0.27
pyexcel==0.6.6
pyexcel-io==0.6.4
pyexcel-webio==0.1.4
pyexcel-xlsx==0.6.0
pygame==2.0.1
Pygments==2.9.0
pyinstaller==4.10
pyinstaller-hooks-contrib==2022.2
PyJWT==1.7.1
pymongo==3.11.3
PyMySQL==0.10.1
PyOpenGL==3.1.5
pyOpenSSL==19.1.0
pyparsing==2.4.7
PyQt5==5.15.4
pyqt5-plugins==5.15.4.2.2
PyQt5-Qt5==5.15.2
PyQt5-sip==12.11.0
pyqt5-tools==5.15.4.3.2
pytest==6.2.4
pytest-assume==2.4.3
pytest-cov==2.8.1
pytest-forked==1.1.3
pytest-html==2.0.1
pytest-ignore-flaky==2.0.0
pytest-metadata==1.8.0
pytest-ordering==0.6
pytest-repeat==0.9.1
pytest-rerunfailures==10.3
pytest-xdist==1.31.0
python-alipay-sdk==3.0.1
python-crontab==2.5.1
python-dateutil==2.8.1
python-dotenv==0.21.0
python-editor==1.0.4
pythonnet==2.5.1
pytz==2021.1
pywebview==3.4
pywin32==300
pywin32-ctypes==0.2.0
pywinauto==0.6.8
PyYAML==6.0
QQLoginTool==0.3.0
qt5-applications==5.15.2.2.2
qt5-tools==5.15.2.1.2
redis==3.5.3
requests==2.24.0
requests-file==1.5.1
retry==0.9.2
rsa==4.8
ruamel.yaml==0.17.21
ruamel.yaml.clib==0.2.7
scipy @ file:///C:/Users/Administrator/Downloads/scipy-1.7.0-cp37-cp37m-win_amd64.whl
selenium==3.141.0
Serializer==0.2.1
simplejson==3.17.2
six==1.15.0
sklearn==0.0.post5
soupsieve==2.0.1
SQLAlchemy==1.3.20
sqlparse==0.4.1
sympy==1.7.1
tablib==3.0.0
texttable==1.6.3
tldextract==3.4.0
toml==0.10.2
tornado==6.1
turtle==0.0.2
Twisted==20.3.0
ua-parser==0.10.0
uiautomation==2.0.10
uiautomator2==2.16.7
uritemplate==3.0.1
urllib3==1.25.11
user-agents==2.2.0
vine==5.0.0
visitor==0.1.3
wcwidth==0.2.5
websocket-client==1.5.0
weditor==0.6.4
Werkzeug==1.0.1
whichcraft==0.6.1
win32-setctime==1.1.0
WMI==1.5.1
wordninja==2.0.0
wrapt==1.12.1
wxgl==0.7.2
wxPython==4.1.1
xlrd==1.2.0
xlrd2==1.2.6
XlsxWriter==3.0.2
xlutils==2.0.0
xlwings==0.21.4
xlwt==1.3.0
xmltodict==0.12.0
yarg==0.1.9
zipfile37==0.1.3
zipp==1.2.0
  • На самом деле, это не занимает много времени. Это зависит от потребностей вашего проекта. Вы также можете войти в корневой каталог проекта и использовать следующую команду для экспорта пакетов зависимостей проекта:
Язык кода:python
кодКоличество запусков:0
копировать
pipreqs . --encoding=utf8 --force

9.2 Создать каталог приложений

  • существовать Хозяин(Установитьdockerмашина)Создайте новый каталог на(Мой каталогсуществоватьмой дом Создать в каталогеapp),Воляrequirements.txtдокументкопироватьвходить:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

9.3 Создание файла Docker

  • существоватьappСоздать в каталогеDockerfileдокумент(документ Имя должно бытьDockerfile,без суффикса) Dockerfileсодержаниек及解释如Вниз:
Язык кода:python
кодКоличество запусков:0
копировать
FROM python:3.7  #Создаем образ на основе базового образа Python:3.7 
WORKDIR /home/noamanelson/app   #Переключение каталога рабочей области 
ADD ./requirements.txt /home/noamanelson/app #Добавляем в образ файлы пакета зависимостей проекта Python 
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple #Установить пакеты зависимостей 
CMD ["python3", "main.py"] #Установите автоматическое выполнение команды после выполнения контейнера. Здесь start_all.py — это файл записи выполнения нашей платформы автоматизации.

9.4 Выполните команду построения образа

  • существоватьappв каталоге Выполнить команду сборки образа(此步骤也Можеткпомещатьприезжатьbuild.sh,каждый разjenkinsПерестроить на сборкезеркало,Но это будет медленнее,Так что если среда стабильна, то рекомендуется собрать ее заранее)
Язык кода:python
кодКоличество запусков:0
копировать
docker build -t python3.7:autopy .

-t: имя изображения Точка (.): точка указывает каталог, в котором находится файл Dockerfile. Сейчас я нахожусь в каталоге приложения, а точка указывает текущий каталог.

  • После успешной сборки вы увидите новое изображение:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

10 build.sh дизайн

  • build.shСодержание следующее,Комментарии следует писать с новой строки:
Язык кода:python
кодКоличество запусков:0
копировать
echo «Запустите контейнерный Python для автоматизации»  
#Вывод журнала
#-w=$WORKSPACE: указанное рабочее пространство
#--volumes-from=jenkins_save01: Сопоставьте рабочую область в контейнере jenkins с контейнером Python. На этом этапе будет сопоставлен код, извлеченный git в jenkins.
docker run --rm -w=$WORKSPACE --volumes-from=jenkins python3.7:autopy
echo «Автоматическое выполнение выполнения Python выполнено успешно»
  • Воляbuild.shкопироватьприезжатьтвойпроекткореньв каталоге:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • представлять на рассмотрениекодприезжатьGitсклад:
Язык кода:python
кодКоличество запусков:0
копировать
 git add .
 git commit -am'update'
 git push 

11 задач сборки

  • Ранее мы создали задачу:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Построить сейчас:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • История сборки:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Вывод консоли:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Нет стиля при просмотре отчета об испытаниях,из-за того, что яJenkinsзапретитьиспользовать ПонятноCSSстиль,Нужно решить вручную:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

12 Решение стилей отчета

Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • Напишите следующий код:
Язык кода:python
кодКоличество запусков:0
копировать
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • Если результат после выполнения пустой, значит все в порядке;
  • Перестройте, чтобы увидеть стилизованный отчет о тестировании:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Вышеупомянутый метод является временным, и его необходимо установить снова после перезапуска Jenkins, поэтому установка подключаемого модуля Groovy может навсегда решить эту проблему:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

13 Проверьте электронную почту

  • Судя по картинке, с электронной почтой тоже все в порядке;
Вставьте сюда описание изображения
Вставьте сюда описание изображения
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
boy illustration
Комплексная оценка мощного и простого в использовании программного обеспечения для офлайн-заметок: преимущества, недостатки, сравнение
boy illustration
[Новогоднее специальное предложение] Скидка 50% на удивительную цену TPNS через мобильную распродажу горячих продуктов всего за 9,8 юаней, новые и старые клиенты приходят быстро!
boy illustration
CentOS Linux солнце Устройство eth0, похоже, не присутствует
boy illustration
Список замены CentOS, какой из них лучше выбрать?
boy illustration
Автоматический выключатель, изоляция, повторная попытка, понижение версии, тайм-аут, ограничение тока — все основные стратегии управления трафиком архитектуры высокой доступности полностью освоены.
boy illustration
Дополнительные правила вознаграждения для послов промоакций в ноябре 2022 г.
boy illustration
[Система искусственного интеллекта] Области искусственного интеллекта, сценарии и отраслевые приложения
boy illustration
Принцип и метод построения рабочей характеристики приемника (ROC)
boy illustration
Патч для CVE-2024-38077, 2008R2 и 2012R2 применяет патч очень медленно и в конечном итоге не может выполнить откат решения.
boy illustration
Дополнительные правила вознаграждения для послов промоакций в феврале 2023 г.
boy illustration
Встряхните людей! Ищем представителей класса Double Eleven в техническом кругу через Интернет! Участвуйте в конкурсе эссе и выигрывайте призы каждую неделю
boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap