当前位置: 首页 > news >正文

Centons7 docker 安装 playwright

我这是 pytest + playwright +allure 的
前提就是 allure 是在 已经在 docker 外 配置好了的
其他的 一些依赖,我会放在 requirements.txt 里,docker 会自己去安装
在这里插入图片描述

这是 Dockerfile 文件

# 使用 Ubuntu 20.04 作为基础镜像
FROM ubuntu:20.04# 设置时区(避免在安装过程中出现提示)
ENV TZ=UTC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone# 安装 Python 3.8 和 pip
RUN apt-get update && \apt-get install -y python3.8 python3-pip && \ln -sf /usr/bin/python3.8 /usr/bin/python3 && \ln -sf /usr/bin/python3.8 /usr/bin/python && \# 清理缓存以减小镜像大小rm -rf /var/lib/apt/lists/*# 设置工作目录
WORKDIR /app# 安装系统依赖(包括Playwright所需的系统库)
RUN apt-get update && \apt-get install -y --no-install-recommends \curl \wget \unzip \# Playwright 系统依赖libnss3 \libnspr4 \libatk1.0-0 \libatk-bridge2.0-0 \libcups2 \libdrm2 \libdbus-1-3 \libxcb1 \libxdamage1 \libxext6 \libxfixes3 \libxrandr2 \libxcomposite1 \libx11-xcb1 \libxkbcommon0 \libatspi2.0-0 \libgbm1 \libpango-1.0-0 \libcairo2 \libasound2 \# 中文字体支持(根据需要可选)fonts-wqy-microhei \fonts-wqy-zenhei \# 其他有用的工具vim \git \&& rm -rf /var/lib/apt/lists/*# 将当前目录下的requirements.txt文件复制到容器的/app目录下
COPY requirements.txt .# 使用阿里云PyPI镜像安装Python依赖包,并避免缓存以减小镜像大小
RUN pip3 install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/# 安装allure-pytest适配器(正确的包名)
RUN pip3 install --no-cache-dir allure-pytest -i https://mirrors.aliyun.com/pypi/simple/# 安装Playwright并仅安装Chromium浏览器
RUN playwright install --with-deps chromium# 设置环境变量,确保Playwright在无头模式下运行(适用于大多数Docker环境)
ENV PLAYWRIGHT_HEADLESS=true# 设置容器默认的入口点为bash
ENTRYPOINT ["/bin/bash"]# 创建并复制验证脚本
COPY playwright_validation.py /app/playwright_validation.py# 设置一个健康检查(可选)
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \CMD python3 /app/playwright_validation.py || exit 1# 在构建的最后一步运行验证
RUN python3 /app/playwright_validation.py
(base) [webApp@centos7-base-images north_asia_project]$ 

然后

docker build -t playwright-pytest-env .

运行

docker run -it --rm   -v /test_workspace:/app/tests   -v /tmp/allure-results:/app/allure-results   -w /app/tests   --entrypoint=/usr/bin/python3   playwright-pytest-env   -m pytest --alluredir=/app/allure-results test_case/test_webs/test_kcc/test_loctain_list.py -v

这是验证脚本

#!/usr/bin/env python3
"""
playwright_validation.py
用于验证 Docker 容器内 Playwright 及 Chromium 是否正常安装的脚本
"""from playwright.sync_api import sync_playwrightdef test_playwright_chromium():print("🔍 开始验证 Playwright 及 Chromium 浏览器...")try:with sync_playwright() as p:# 尝试启动 Chromium 浏览器print("1. 尝试启动 Chromium 浏览器(无头模式)...")browser = p.chromium.launch(headless=True)# 创建新页面print("2. 创建新页面...")page = browser.new_page()# 访问一个测试网站test_url = "https://example.com"print(f"3. 访问测试页面: {test_url}")page.goto(test_url)# 获取页面标题title = page.title()print(f"4. 成功获取页面标题: '{title}'")# 进行一个简单的截图操作print("5. 尝试截图操作...")screenshot_bytes = page.screenshot(full_page=True)# 关闭浏览器browser.close()print("✅ Playwright 及 Chromium 验证成功!")print(f"   页面标题: {title}")print("   浏览器启动、页面导航、截图等功能均正常")return Trueexcept Exception as e:print(f"❌ 验证过程中出现异常: {str(e)}")return Falseif __name__ == "__main__":test_playwright_chromium()

文章转载自:

http://3vKPMc6A.xfxnq.cn
http://LDTKdJsI.xfxnq.cn
http://AMRSRv6p.xfxnq.cn
http://D8IGEWbu.xfxnq.cn
http://OWqVoEzZ.xfxnq.cn
http://G2YZQJjo.xfxnq.cn
http://yX9MlRW9.xfxnq.cn
http://cbVqFNlE.xfxnq.cn
http://hFOfeWIz.xfxnq.cn
http://qrwIIZMl.xfxnq.cn
http://2V32JVCG.xfxnq.cn
http://VNbGxsfH.xfxnq.cn
http://PsoyPxNU.xfxnq.cn
http://AuOexDuK.xfxnq.cn
http://Y1aNaFZi.xfxnq.cn
http://8BjMUneL.xfxnq.cn
http://hFMYGbR4.xfxnq.cn
http://3oik36Zv.xfxnq.cn
http://YQjxrdPg.xfxnq.cn
http://NCkIIIRk.xfxnq.cn
http://4LRUDeOZ.xfxnq.cn
http://o4sFUnKQ.xfxnq.cn
http://0cs8gPQt.xfxnq.cn
http://zcNRnsER.xfxnq.cn
http://qaYlCnBY.xfxnq.cn
http://cMbBJDuI.xfxnq.cn
http://Ppa1n41L.xfxnq.cn
http://DamKg52m.xfxnq.cn
http://mb4PmFSi.xfxnq.cn
http://E9bcjMST.xfxnq.cn
http://www.dtcms.com/a/388579.html

相关文章:

  • 远距离传输大型文件:企业数字化转型的挑战与突破
  • 氧气科技亮相GDMS全球数字营销峰会,分享AI搜索时代GEO新观
  • useMemo和useCallback
  • 【数据结构---图的原理与最小生成树算法,单源最短路径算法】
  • 有发声生物(猫狗鸟等)与无发声生物(蚂蚁蝙蝠蛇等)的 “感知-->行动“
  • CC 攻击为什么越来越难防?
  • 量化交易 - Multiple Regression 多变量线性回归(机器学习)
  • 【机器学习】基于双向LSTM的IMDb情感分析
  • CLR-GAN训练自己的数据集
  • LeetCode 242 有效的字母异位词
  • 中州养老:Websocket实现报警通知
  • python+excel实现办公自动化学习
  • 深度学习快速复现平台AutoDL
  • 《股票智能查询与投资决策辅助应用项目方案》
  • nvm安装包分享【持续更新】
  • 2025年- H143-Lc344. 反转字符串(字符串)--Java版
  • 数据库的事务
  • Cadence SPB 2025安装教程(附安装包)Cadence SPB 24.1下载详细安装图文教程
  • .NET Framework 4.8 多线程编程
  • qt QHorizontalPercentBarSeries详解
  • 软考中级习题与解答——第七章_数据库系统(3)
  • Redis(基础数据类型/String)
  • python的面试题
  • 内聚和耦合基础
  • Java基本类型与包装类在MyBatis中的应用指南
  • 《Unity3D VR游戏手柄振动与物理碰撞同步失效问题深度解析》
  • 基于 Rust 的 CAD 工具demo示例
  • 多模态大模型研究每日简报【2025-09-17】
  • 2D平台动作游戏《Haneda Girl》推出免费体验版
  • 《艾尔登法环:黑夜君临》DLC泄露:更多角色和Boss!