【Docker】Docker运行Web UI自动化Demo

技术栈

Docker
Dockerfile
Pytest
selenium

代码

  1. test_docker_run_UI_automation.py
# encoding: utf-8 
"""
@File    : test_docker_run_UI_automation.py
@Author  : linshu
@Time    : 2021/8/20 8:59 AM
@Desc    :  Docker+Pytest+Selenium+Chrome
"""
from selenium import webdriver
import time


def test_open_baidu():
    options = webdriver.ChromeOptions()
    # 设置不打开Chrome浏览器
    options.add_argument('headless')
    options.add_argument('no-sandbox')
    driver = webdriver.Chrome(chrome_options=options)
    url = 'https://www.baidu.com/'
    driver.get(url)
    driver.find_element_by_id('kw').send_keys('test')
    driver.find_element_by_id('su').click()
    time.sleep(2)
    assert driver.title == 'test_百度搜索'
    driver.close()

主要是这两行代码,设置Chrome不用打开浏览器窗口运行:

options.add_argument('headless')
options.add_argument('no-sandbox')
  1. requirements.txt
selenium==3.141.0
pytest
  1. Dockerfile
FROM alpine:latest

LABEL maintaner="shadow1163 - https://github.com/shadow1163/"

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
        apk update && \
        apk upgrade && \
        apk add --no-cache python3 py3-pip chromium chromium-chromedriver python3-dev alpine-sdk xvfb && \
        (rm /tmp/* 2>/dev/null || true) && (rm -rf /var/cache/apk/* 2>/dev/null || true)

ADD requirements.txt /
ADD . /
RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ && pip3 install -r /requirements.txt

这里主要使用chromium和chromium-chromedriver代替Chrome

Linux机器上运行自动化

  1. 进入已安装好Docker的Linux
  2. 把上面3个文件复制到Linux的某个目录下
  3. 构建Docker镜像
docker build -t lingshu_ui_automation .
  1. 运行容器, 并进入容器终端
docker run -it lingshu_ui_automation sh

【Docker】Docker运行Web UI自动化Demo_第1张图片

  1. 在容器的伪终端运行自动化
# pytest test_docker_run_UI_automation.py

【Docker】Docker运行Web UI自动化Demo_第2张图片
这样,就实现了通过Docker来运行Web UI自动化测试

你可能感兴趣的:(自动化测试,Docker,docker,python,linux,自动化)