java学习

利用Docker搭建Python+Selenium的自动测试环境

2018-09-18  本文已影响186人  e2f7c980cdca

前两天看一系列视频,恶补了一下Docker,而最近在搞一个Youtube网页框架上传的脚本,需要放到服务器下跑一下,发现需要的不同环境和依赖各种不同,还不如配置好Docker直接跑更方便.

这个镜像基于Python+Selenium+chromium+xvfb搭建,可以在仓库找到这个镜像,现在上传了2个版本3.7-slim3.7-stretch

流程:
1.需要先下载ChromeDriver,因为搭建过程发现中间环节下载的会出错,所以我下载到本地导入
目前Chrome浏览器的版本是69,对应的ChromeDriver版本是2.41,文件名:chromedriver_linux64.zip
2.本地建立一个文件:xvfb-chromium

#!/bin/bash

_kill_procs() {
  kill -TERM $chromium
  wait $chromium
  kill -TERM $xvfb
}

# Setup a trap to catch SIGTERM and relay it to child processes
trap _kill_procs SIGTERM

XVFB_WHD=${XVFB_WHD:-1280x720x16}

# Start Xvfb
Xvfb :99 -ac -screen 0 $XVFB_WHD -nolisten tcp &
xvfb=$!

export DISPLAY=:99

chromium --no-sandbox $@ &
chromium=$!

wait $chromium
wait $xvfb

3.创建Dockerfile,这里用到的底包是python:3.7-slim,这是Python官方镜像的底包,如果要编译环境使用python:stretch

FROM python:3.7-slim
RUN apt-get update && apt-get install -y curl xvfb chromium unzip libgconf-2-4
ADD xvfb-chromium /usr/bin/xvfb-chromium
ADD chromedriver_linux64.zip /home/chromedriver_linux64.zip
RUN ln -s /usr/bin/xvfb-chromium /usr/bin/google-chrome
RUN ln -s /usr/bin/xvfb-chromium /usr/bin/chromium-browser
ENV CHROMEDRIVER_VERSION 2.41
ENV CHROMEDRIVER_SHA256 71eafe087900dbca4bc0b354a1d172df48b31a4a502e21f7c7b156d7e76c95c7
RUN echo "$CHROMEDRIVER_SHA256  /home/chromedriver_linux64.zip" | sha256sum -c - \
    && unzip "/home/chromedriver_linux64.zip" -d /usr/local/bin \
    && rm "/home/chromedriver_linux64.zip"
RUN pip install pytest selenium
WORKDIR /usr/src/app
CMD bash

4.建立一个文件夹,如image,输入命令,自动建立

docker build -t="sexjpg/py3_xvfb_chromium:3.7-slim" .
image.png

3.7-stretch搭建完成图


image.png

5.建立后,输入命令,检查搭建效果

docker run -it sexjpg/py3_xvfb_chromium:3.7-slim

效果图


image.png
上一篇下一篇

猜你喜欢

热点阅读