-
Notifications
You must be signed in to change notification settings - Fork 59
21. Переезд на собственную инфраструктуру Java
В этом руководстве описано, как собрать собственный тестовый стенд, который используется для обучения в школе QA GURU. Для работы понадобится Docker, Selenoid, Jenkins, командная строка и любой редактор кода.
Для аутентификации необходимо создать SSH-ключ. Что-то похожее мы уже делали во время настройки GitHub. Сначала проверим есть ли уже какие-то ключи в директории .ssh
с помощью команды ls -l ~/.ssh grep id_rsa
.
Сгенерировать новый ключ можно с помощью утилиты ssh-keygen
. Команда для запуска генерации выглядит так: ssh-keygen -t rsa -b 4096 -C user@user.com
. Строка после ключа -C
служит в качестве комментария. В ней можно указать любую информацию, которая поможет понять для чего нужен этот ключ. К примеру, можно указать имя пользователя или адрес электронной почты.
Далее SSH-агенту надо передать ключи, чтобы он мог ими воспользоваться. Для этого воспользуемся командой ssh-add ~/.ssh/id_rsa
.
После ключ необходимо добавить на сервисе, который используется для аренды сервера. Также надо создать сервер и получить от системы его IP-адрес. Также на локальной машине можно перейти в папку .ssh
и в файле config
добавить в лейбл хоста его IP-адрес. Это поможет не вводить его каждый раз.
Когда всё это сделано, то из терминала можно подключиться к удалённому серверу с помощью команды ssh hostname
, где hostname
– имя хоста.
Первым делом необходимо изменить пароль сервера с помощью команды password
. Дале обновляем данные репозиториев. Вводим команду apt update && apt upgrade -y
.
Теперь установим утилиту Midnight Commander с помощью команды apt instal mc
. Запустить её можно с помощью команды mc
.
Java устанавливается с помощью команды sudo apt-get install default-jdk
. После установки проверим наличие переменной окружения командой echo $JAVA_HOME
.
Чтобы установить значение переменной откроем в редакторе файл environment
. Выполним команду sudo nano /etc/environment
. В нём создадим переменную JAVA_HOME
и передадим ей путь к Java. К примеру, целая строка может выглядеть так JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
.
Теперь обновим данные командой source /etc/environment
и ещё раз запустим echo $JAVA_HOME
. В консоль должен вывестись путь к Java.
Docker можно установить с помощью скрипта curl -sSL https://get.docker.com | sh
.
Теперь необходимо создать директории. Удобнее всего это будет сделать с помощью утилиты Midnight Commander, которую мы уже установили. Дерево директорий в итоге должно выглядеть следующим образом:
opt/
├─ test-bed/
│ ├─ work/
│ │ ├─ selenoid/
│ │ ├─ jenkins/
│ ├─ init/
│ │ ├─ selenoid/
Теперь в папке test-bed
надо создать файл docker-compose.yml
. В нём прописываем конфигурацию Jenkins:
version: `3.4'
services:
jenkins:
user: root
restart: unless-stopped
# build:
# context: ./image
image: jenkins/jenkins:lts
volumes:
- S(PWD)/work/jenkins:/var/jenkins_home
- /var/run/docker .sock:/var/run/docker .sock
ports:
- 8888:8080
network_mode: bridge
После, находясь в директории, вызываем команду docker compose pull
. Запустить можно командой docker compose up -d
. Затем можем перейти в консоль Jenkins, введя в адресной строке браузера http:/ip-address:8888
. Из плагинов можно сразу установить рекомендованные. Также надо будет пройти процесс первичной настройки администратора.
Из дополнительных плагинов необходимо установить Allure Report.
Для добавления конфигурации Selenoid дополним файл docker-compose.yml
следующим:
selenoid:
image: aerokube/selenoid:latest-release
volumes:
- "${PWD}/init/selenoid:/etc/selenoid"
- "${PWD}/work/selenoid/video:/opt/selenoid/video"
- "${PWD}/work/selenoid/logs:/opt/selenoid/logs"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- OVERRIDE_VIDEO_OUTPUT_DIR=work/selenoid/video
command: ["-conf", "/etc/selenoid/browsers.json", "-video-output-dir", "/opt/selenoid/video", "-log-output-dir", "/opt/selenoid/logs"]
ports:
- "4444:4444"
network_mode: bridge
Запустить можно командой docker compose up -d
.
Проверит работу Selenoid можно перейдя по адресу http:/ip-address:4444/status
.
Также дополняем файл docker-compose.yml
:
selenoid-ui:
image: "aerokube/selenoid-ui:latest-release"
network_mode: bridge
links:
- selenoid
ports:
- "8080:8080"
command: ["--selenoid-uri", "http://selenoid:4444"]
Запуск: docker compose up -d
.
Установим браузеры командой docker pull selenoid/vnc:chrome_101.0 && docker pull selenoid/vnc:chrome_102.0
.
✔️ Сайт
✔️ Чат в Telegram
✔️ Канал в Telegarm
Содержание
Командная строка
Кодировка UTF-8 в Java
Список полезных книг для автоматизаторов тестирования на языке Java
Список полезных книг для автоматизаторов тестирования на языке Python
Структура проекта
Github README.md
Java:
1. Вводное занятие. Сразу к практике.
2. Git. GitHub. Погружаемся.
3. Погружаемся в инструментарий и библиотеки
4. Основы Java
5. Продолжаем разрабатывать автотесты. PageObjects
6. JUnit 5
7. Allure Reports
8. Работа с файлами
9. Selenide #1
10. Jenkins. Создаем первую задачу
11. Управляем параметрами в коде и в Jenkins
12. Отправляем уведомления о результатах прохождения автотестов
13. Учимся быстро разрабатывать проекты для тестовых заданий
14. Selenoid
15. Библиотека Owner
16. REST API. Пишем автотесты с Rest assured
17. REST API. Декомпозируем UI тесты. Подключаем отчетность
18. REST API. Продолжаем изучать
19. Мобильная автоматизация #1. Разрабатываем автотесты с Browserstack
20. Allure TestOps
21. Переезд на собственную инфраструктуру Java
Python:
1. Вводное занятие. Сразу к практике!
2. Погружаемся в инструментарий и библиотеки
3. Git. GitHub. Погружаемся.
4. Основы Python
5. Selene #1
6. Основы Python. Часть II
7. Основы Python. Часть III
8. Page Object
9. Allure Reports
10. Работаем с файлами Python
11. Jenkins. Создаем первую задачу и управляем параметрами Python
12. Телеграм бот. Отправляем уведомления о результатах прохождения тестов
13. Pytest
14. Selenoid
15. Pytest. Часть II
16. Venv, Poetry и управление зависимостями проекта
17. REST API. Часть I. Пишем автотесты с Requests
18. REST API. Часть II. Продолжаем изучать
19. Мобильная автоматизация #1. Разрабатываем автотесты с Browserstack
20. Мобильная автоматизация #2. Разрабатываем автотесты с эмулятором Android устройства
21. Allure TestOps
22. Переезд на собственную инфраструктуру Python