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

有做模仿易企秀网站吗海口做网站的公司

有做模仿易企秀网站吗,海口做网站的公司,织梦怎么做中英文网站切换,网站怎么做中英文交互Python Playwright:如何在Docker 容器运行测试? 前言一、简介二、环境准备1. 安装 DockerWindows 用户macOS 用户Linux 用户(以 Ubuntu 为例) 2. 启动 browserless 服务拉取 browserless 镜像启动 browserless 容器验证 browserl…

Python + Playwright:如何在Docker 容器运行测试?

    • 前言
    • 一、简介
    • 二、环境准备
      • 1. 安装 Docker
        • Windows 用户
        • macOS 用户
        • Linux 用户(以 Ubuntu 为例)
      • 2. 启动 browserless 服务
        • 拉取 browserless 镜像
        • 启动 browserless 容器
        • 验证 browserless 是否启动成功
    • 三、创建自动化测试项目
      • 1. 创建项目目录
      • 2. 新建 `requirements.txt`
      • 3. 新建 `conftest.py`
      • 4. 新建 `pages/baidu_page.py`
      • 5. 新建 `test_baidu.py`
    • 四、编写 Dockerfile
    • 五、编写 Docker Compose 文件
    • 六、运行测试
    • 七、常见问题与排查
    • 八、目录结构参考
    • 结语

前言

  • 在自动化测试领域,Playwright 结合 Docker 容器化部署,可以极大提升测试环境的可移植性和一致性, browserless 项目则为浏览器的无头远程管理提供了极佳的解决方案。
  • 本文将手把手教你如何在 Docker 容器中,利用 Python+Playwright,结合 browserless远程浏览器服务,运行自动化测试用例。

一、简介

  • Docker:容器化技术,保证环境一致性。
    在这里插入图片描述

  • browserless:基于 Docker 的无头浏览器服务,支持 Playwright、Puppeteer 等远程连接。
    在这里插入图片描述


二、环境准备

1. 安装 Docker

Windows 用户
  1. 访问 Docker Desktop 官网 下载 Windows 版本安装包。
    在这里插入图片描述

  2. 双击安装包,按提示完成安装。

  3. 安装完成后,启动 Docker Desktop,确保右下角 Docker 图标为绿色(表示已启动)。

  4. 打开命令行(PowerShell 或 CMD),输入以下命令验证安装:

    docker --version
    

    如果能看到 Docker 版本号,说明安装成功。

macOS 用户
  1. 访问 Docker Desktop 官网 下载 macOS 版本安装包。

  2. 双击 .dmg 文件,将 Docker 拖入 Applications 文件夹。

  3. 启动 Docker Desktop,等待 Docker 图标变为绿色。

  4. 打开终端,输入:

    docker --version
    

    出现版本号即为安装成功。

Linux 用户(以 Ubuntu 为例)
  1. 打开终端,依次执行以下命令:

    sudo apt-get update
    sudo apt-get install -y ca-certificates curl gnupg
    sudo install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    echo \"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update
    sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
  2. 验证安装:

    docker --version
    

    出现版本号即为安装成功。


2. 启动 browserless 服务

拉取 browserless 镜像

在命令行中执行:

docker pull browserless/chrome
启动 browserless 容器
docker run -d -p 3000:3000 --name browserless browserless/chrome
  • -d 表示后台运行
  • -p 3000:3000 将容器的 3000 端口映射到本机 3000 端口
  • --name browserless 给容器起个名字,方便后续管理
验证 browserless 是否启动成功

在浏览器中访问 http://localhost:3000
如果看到 browserless 的欢迎页面,说明服务已启动成功。


你的最新第三点“创建自动化测试项目(以百度为例)”的完整内容如下:


三、创建自动化测试项目

1. 创建项目目录

mkdir playwright-docker-demo
cd playwright-docker-demo
mkdir pages

2. 新建 requirements.txt

playwright
pytest

3. 新建 conftest.py

import pytest
from playwright.sync_api import sync_playwrightBROWSERLESS_WS_ENDPOINT = "ws://browserless:3000/playwright"@pytest.fixture(scope="session")
def browser():with sync_playwright() as p:browser = p.chromium.connect_over_cdp(BROWSERLESS_WS_ENDPOINT)yield browserbrowser.close()

4. 新建 pages/baidu_page.py

class BaiduPage:def __init__(self, page):self.page = pagedef goto(self):self.page.goto("https://www.baidu.com")def search(self, keyword):self.page.fill("input[name='wd']", keyword)self.page.keyboard.press("Enter")def has_result(self, text):self.page.wait_for_selector(f"text={text}")return text in self.page.content()

5. 新建 test_baidu.py

import pytest
from pages.baidu_page import BaiduPagedef test_baidu_search(browser):page = browser.new_page()baidu = BaiduPage(page)baidu.goto()baidu.search("Playwright")assert baidu.has_result("Playwright")page.close()

注意:browserless 是 Docker Compose 中的服务名,后文会详细说明。


四、编写 Dockerfile

在项目根目录新建 Dockerfile

FROM python:3.10-slimWORKDIR /appCOPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txtCOPY . .CMD ["pytest", "--maxfail=1", "--disable-warnings", "-v"]

五、编写 Docker Compose 文件

新建 docker-compose.yml

version: '3'
services:browserless:image: browserless/chromeports:- "3000:3000"environment:- MAX_CONCURRENT_SESSIONS=5- PREBOOT_CHROME=trueplaywright:build: .depends_on:- browserlessenvironment:- PYTHONUNBUFFERED=1# 保证 playwright 服务启动后再运行测试entrypoint: ["sh", "-c", "sleep 5 && pytest --maxfail=1 --disable-warnings -v"]

六、运行测试

在项目根目录下执行:

docker-compose up --build

你将看到 pytest 的输出,测试用例会通过 browserless 服务远程控制浏览器,完成自动化测试。


七、常见问题与排查

  1. 连接失败

    • 确认 browserless 服务已启动并监听 3000 端口。
    • 确认 Playwright 连接的 ws 地址为 ws://browserless:3000/playwright(服务名+端口)。
  2. 依赖问题

    • Playwright 依赖的 Python 包已在 requirements.txt 中声明。
    • 若需更多依赖,可在 Dockerfile 中添加。
  3. 网络问题

    • Docker Compose 默认服务间可通过服务名互通,无需额外配置。

八、目录结构参考

playwright-docker-demo/
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
├── conftest.py
├── test_baidu.py
└── pages/└── baidu_page.py

结语

通过本文的操作,你已经学会了如何利用Python+Playwright+Docker+browserless,在容器中高效运行自动化测试用例。这种方式不仅保证了环境一致性,还能轻松扩展到 CI/CD 流水线,助力自动化测试体系建设。


参考链接:

  • Playwright 官方文档
  • browserless GitHub
  • Docker 官方文档
http://www.dtcms.com/wzjs/15988.html

相关文章:

  • 学院网站建设服务宗旨如何软件网站优化公司
  • 有做电动车修车的网站吗天津做网站的网络公司
  • mooc 网站建设情况百度应用中心
  • 洛阳微网站建设网络营销工程师是做什么的
  • 网页设计十大排名惠州短视频seo
  • 巴中汽车网站建设搜索引擎营销的主要方法包括
  • 网站开发员纵向发展平台宣传推广方案
  • 烟台网络公司哪家好佛山快速排名seo
  • 做购物网站能赚钱吗爱站网爱情电影网
  • 重庆智能网站建设多少钱搜索引擎优化的办法有哪些
  • 珠海专业网站建设公司哪家好核心关键词是什么意思
  • 网站建设管理费一能多少钱网站运营师
  • 漫画网站源码关键词seo如何优化
  • 太原网站建设外包须知传媒优化建议
  • jquery效果网站郑州seo推广优化
  • 做企业网站的哪家好百度企业
  • 网站建设报价流程网上的推广
  • 赣州做网站的公司有哪家房地产网站模板
  • 做直播网站一定要idc吗今日头条最新新闻消息
  • 做免费导航网站搜索引擎平台有哪些软件
  • .net 网站开发教程seo推广方法集合
  • 网络运维工程师招聘武汉网站开发公司seo
  • 中山h5模板建站百度站长官网
  • 常用的网站建设技术有百度竞价优化排名
  • 学校资源网站建设有啥作用关键词点击优化工具
  • 专业网站建设定制外贸网站推广平台有哪些
  • 网站建设设计百度免费咨询
  • 全网获客营销系统重庆seo务
  • 芜湖做网站水果营销软文
  • 湛江有哪些网站建设公司直通车关键词怎么优化