1. Idea de implementación
-
Instalar Docker en el servidor Linux
-
Crear contenedor jenkins
-
Cree una imagen de Python basada en el paquete de dependencia del proyecto de automatización (cree un entorno de Python automatizado)
-
Ejecute el nuevo contenedor de Python y ejecute el proyecto de automatización extraído del almacén por jenkins
-
Eliminar el contenedor después de la ejecución.
2. Preparación ambiental
-
Un servidor Linux (el mío es CentOS7)
1. Los estudiantes que tienen un servidor en la nube usan directamente el servidor en la nube.
2. Los estudiantes que no tienen un servidor en la nube pueden consultar mi blog para instalar la máquina virtual ellos mismos.
VMware instala el diagrama de pasos de Centos7. (http://testingpai.com/article/1629981536584) -
Instale la ventana acoplable correctamente en el servidor
1. Extraiga la imagen de jenkins
jenkins/jenkins:alpine
2. Extraiga la imagen de python3 de la
ventana acoplable extraiga python:3-alpine
Si desea aprender sobre pruebas automatizadas, aquí le recomiendo un conjunto de videos. Se puede decir que este video es el tutorial de pruebas automatizadas número uno en toda la red en la estación B. Al mismo tiempo, la cantidad de personas en línea ha aumentado. Llegó a 1000 y hay notas para recopilar y compartir con usted. Dashen Technical Exchange: 798478386
3. Crea un contenedor jenkins
-
Utilice
docker run -dit --name=jenkins_save01 -p 9999:8080 -u=root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/ bin/docker jenkins/jenkins:alpino -
Descripción del parámetro
-i: significa ejecutar el contenedor
-t: significa que el contenedor ingresará su línea de comando después del inicio
-d: crea un contenedor en modo demonio y lo ejecuta en segundo plano
--name: nombre del contenedor
-p 9999:8080 : mapeo de puertos, puerto de host: puerto del contenedor Jenkins
-u=root: especifique el usuario del contenedor como usuario raíz
-v /var/run/docker.sock:/var/run/docker.sock: asigne docker.sock a jenkins contenedor.
El archivo docker.sock es un cliente de Docker. Archivo para comunicación con Docker Daemon
-v /usr/bin/docker:/usr/bin/docker: asigna el cliente de Docker host al contenedor jenkins. -
Efecto de ejecución
1. Si ve el ID del contenedor devuelto, significa que el contenedor jenkins se creó correctamente
Cuarto, configurar el contenedor jenkins.
-
Acceda al navegador http://192.168.1.66:9999, vaya a la página
1 de desbloqueo de jenkins, http://192.168.1.66 es la dirección IP del servidor Linux
2, 9999 es el puerto asignado del host -
Ejecute el comando en el servidor Linux para obtener la contraseña de administrador
1. Ejecute el comando: docker logs jenkins_save01 -
Copie la contraseña e ingrésela en el cuadro de contraseña, haga clic en Siguiente y accederá a la siguiente página (debe esperar un rato en el medio, aproximadamente 1 minuto, espere pacientemente)
-
Desmarque el complemento predeterminado y vaya al siguiente paso
-
Establezca el nombre de usuario y la contraseña del administrador (usará la contraseña de esta cuenta para iniciar sesión en su jenkins en el futuro)
-
Ejemplo de configuración
-
Una vez completada la inicialización de jenkins, podrá ver la siguiente interfaz
Cinco, complemento de instalación de jenkins
-
Haga clic en el paso anterior para comenzar a usar jenkins y acceder a la siguiente interfaz
-
Haga clic en Administrar Jenkins para ir a la siguiente página
-
Haga clic en Administrar complementos para instalar complementos
1, instalación del complemento Git2. Instalación del complemento Docker
3. Instalación del complemento HTML Publisher
4. Reinicie el contenedor jenkins una vez completada la instalación.
reinicio de la ventana acoplable jenkins_save01
6. Crear tarea jenkins
-
Inicie sesión en jenkins nuevamente, haga clic en Nuevo elemento
-
Crear proyectos de estilo libre
-
Configurar reglas de retención de registros de compilación
-
Configuración del repositorio Git
-
Configurar operaciones posteriores a la compilación
1. Agregar un módulo de operaciones posteriores a la compilación
2. Configure el script en ejecución
3. Configure la ruta del informe de prueba que se muestra en jenkins
4. Guarde todas las configuraciones del proyecto.
6. Cree una imagen de Python con un entorno de ejecución de proyectos.
-
Exporte el paquete de dependencia del proyecto al archivo requisitos.txt, el nombre del archivo txt se puede escribir libremente
pip congelar > requisitos.txt -
Cree un nuevo directorio en la máquina host (la máquina donde está instalado Docker) (mi directorio está en /app) y copie el archivo requisitos.txt en él.
-
Cree un archivo Dockerfile en el directorio de la aplicación (el nombre del archivo debe ser Dockerfile, sin sufijo)
-
El contenido del archivo requisitos.txt es el siguiente
unittestreport==1.3.2
openpyxl==3.0.7
ddt==1.4.2
pytest==6.2.2
selenium==3.141.0
pymysql==1.0.2
faker==8.1.0
jsonpath==0.82
BeautifulReport==0.1.3
rsa==4.7.2
pytest-html==3.1.1
allure-pytest==2.9.43
requests-toolbelt==0.9.1
-
El contenido y la explicación de Dockerfile son los siguientes
FROM python:3-alpine #基于python:3-alpine这个基础镜像镜像构建镜像
WORKDIR /app #切换工作空间目录
ADD ./requirements.txt /app #将python项目依赖包文件添加到镜像
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple #安装依赖包
CMD ["python3", "main.py"] #设置容器执行后自动执行的命令,这里main.py是我们自动化框架的执行入口文件
5. Ejecute el comando de creación de imágenes en el directorio de la aplicación.
docker build -t python3.9:haili.
-t: nombre de la imagen
Punto (.): El punto indica el directorio donde se encuentra el archivo Dockerfile. Ahora estoy en el directorio de la aplicación y el punto indica el directorio actual.
6. Una vez que la compilación se haya realizado correctamente, verá una nueva imagen (imágenes acoplables)
8. Completa build.sh
-
El contenido de build.sh es el siguiente
echo "运行容器python执行自动化" #输出日志
#-w=$WORKSPACE:指定workspace
#--volumes-from=jenkins_save01:将jenkins容器中的workspace映射到python容器中,此时jenkins中git拉下来的代码就会被映射进去
docker run --rm -w=$WORKSPACE --volumes-from=jenkins_save01 python3.9:haili
echo "python执行自动化执行成功"
-
Copie build.sh al directorio raíz de su proyecto
-
Envíe el código al almacén de Git
Git add.Git
commit -am'update'
Git push
Nueve, para construir la tarea de Jenkins.
-
Regrese a la página de inicio de jenkins y busque la compilación del punto del proyecto.
-
Ver proceso de construcción
-
registro de construcción de pips
-
Ver el proceso de compilación (el registro de salida del proyecto de automatización de Python también se puede ver aquí)
-
El proceso de construcción es el siguiente.
-
Ver informe de prueba
-
En este momento, el informe de prueba no tendrá estilo, porque Jenkins deshabilita el estilo CSS, debemos resolverlo manualmente.
10. Resuelva el problema de que el informe de prueba no tiene estilo.
Introduzca este código y ejecútelo: System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")
Si la ejecución es exitosa, el retorno está vacío, lo que indica que no hay problema.