3.1 增加多进程执行playwright

文章描述了一个通过增加多进程支持来优化测试代码执行的过程。主要改动包括更新配置以支持新的目录结构,删除和重命名文件的逻辑,以及引入multiprocessing库来并行执行测试用例。修改后的代码能根据case目录下的测试文件数量,启动多个浏览器实例,提高了执行效率,同时每个进程有独立的视频记录,互不干扰。

增加了多进程的方式执行测试代码,对代码改动比较大

1、case

case目录依然是自动生成

 2、config

dir_collection.py新增了配置

mkdir_collections = [
    'case',
    'log',
    'img',
]
del_collections = [
    'results',
    'report'
]
del_regex = 'temp'

3、data/img/log/resource/video

data/img/log/resource目录没做修改,删除了video目录

4、results/report及以temp开头的目录是自动生成,且会每次运行前都会自动删除

5、utils目录

删除了delete.py

修改了dir_check.py

import os
from config.dir_collection import mkdir_collections, del_collections, del_regex
import shutil


def check_dir():
    mk_dir()
    del_files()


def mk_dir():
    li = os.listdir()
    for i in mkdir_collections:
        if i not in li:
            os.mkdir(i)


def del_files()
**`playwright install` 是 Playwright 测试框架的命令行工具命令**,用于**自动下载并安装浏览器二进制文件**(如 Chromium、Firefox、WebKit),以便在本地运行端到端测试时无需依赖系统已安装的浏览器。以下是其核心作用、使用场景和详细说明: --- ### **1. 命令的核心作用** #### **1.1 下载浏览器二进制文件** - Playwright 默认使用**无头模式(headless)**运行测试,但需要对应的浏览器内核(如 Chromium、Firefox、WebKit)。 - `playwright install` 会从官方 CDN 下载与当前操作系统兼容的浏览器版本,并保存到项目目录下的 `node_modules/.cache/ms-playwright` 或全局缓存中。 #### **1.2 支持多浏览器** - 默认安装所有 Playwright 支持的浏览器(Chromium、Firefox、WebKit)。 - 可通过参数指定安装特定浏览器(如仅安装 Chromium)。 #### **1.3 避免手动配置** - 无需手动下载浏览器或配置路径,Playwright 会自动管理浏览器版本和依赖。 --- ### **2. 命令语法与选项** #### **2.1 基本用法** ```bash npx playwright install ``` - 首次运行 Playwright 项目时,通常会自动触发此命令(如通过 `npx playwright test` 初始化项目时)。 #### **2.2 安装特定浏览器** ```bash npx playwright install chromium # 仅安装 Chromium npx playwright install firefox # 仅安装 Firefox npx playwright install webkit # 仅安装 WebKit ``` #### **2.3 强制重新下载** ```bash npx playwright install --force ``` - 忽略本地缓存,强制从远程重新下载浏览器。 #### **2.4 指定浏览器版本** - 通过环境变量 `PLAYWRIGHT_BROWSERS_PATH` 指定自定义缓存路径: ```bash PLAYWRIGHT_BROWSERS_PATH=/custom/path npx playwright install ``` --- ### **3. 执行后的文件结构** 安装完成后,浏览器二进制文件会存储在以下位置之一: - **项目本地缓存**(推荐): ``` node_modules/.cache/ms-playwright/ ├── chromium-XXXXXX/ ├── firefox-XXXXXX/ └── webkit-XXXXXX/ ``` - **全局缓存**(通过 `PLAYWRIGHT_BROWSERS_PATH` 配置): ``` /path/to/custom/cache/ ├── chromium-XXXXXX/ ├── firefox-XXXXXX/ └── webkit-XXXXXX/ ``` --- ### **4. 典型使用场景** #### **4.1 初始化 Playwright 项目** - 首次运行 `npx playwright test` 时,Playwright 会提示安装浏览器: ```bash Need to install browsers? Run "npx playwright install" or "npx playwright install chromium". ``` #### **4.2 CI/CD 环境** - 在 GitHub Actions、Jenkins 等 CI 环境中,需在运行测试前执行 `playwright install` 确保浏览器可用。 ```yaml # GitHub Actions 示例 steps: - name: Install Playwright Browsers run: npx playwright install --with-deps ``` #### **4.3 切换浏览器版本** - 升级 Playwright 后,可能需要重新安装浏览器以匹配新版本: ```bash npm update @playwright/test npx playwright install --force ``` #### **4.4 离线环境** - 在无网络的环境中,可提前在其他机器上运行 `playwright install`,然后将 `node_modules/.cache/ms-playwright` 复制到目标机器。 --- ### **5. 常见问题与解决** #### **Q1: 安装失败或卡住** - **原因**:网络问题、权限不足或磁盘空间不足。 - **解决**: - 检查网络连接(尤其是公司内网可能屏蔽 CDN)。 - 使用 `--force` 重新下载。 - 清理缓存后重试: ```bash rm -rf node_modules/.cache/ms-playwright npx playwright install ``` #### **Q2: 如何指定浏览器安装路径?** - 通过环境变量 `PLAYWRIGHT_BROWSERS_PATH` 自定义路径: ```bash export PLAYWRIGHT_BROWSERS_PATH=/opt/playwright-browsers npx playwright install ``` #### **Q3: 安装后仍报错“Browser not found”** - **原因**:Playwright 版本与浏览器版本不兼容。 - **解决**: - 升级 Playwright: ```bash npm update @playwright/test ``` - 重新安装浏览器: ```bash npx playwright install --force ``` #### **Q4: 如何跳过浏览器安装?** - 如果系统已安装对应浏览器(如 Chrome),可通过配置使用系统浏览器: ```javascript // playwright.config.ts import { defineConfig } from '@playwright/test'; export default defineConfig({ use: { channel: 'chrome', // 使用系统安装的 Chrome }, }); ``` - 但需确保浏览器版本与 Playwright 兼容。 #### **Q5: 安装的浏览器版本如何查看?** - 运行以下命令查看已安装的浏览器版本: ```bash npx playwright --version ``` - 输出示例: ``` Version 1.40.0 Chromium: 120.0.6099.0 Firefox: 121.0 WebKit: 17.4 ``` --- ### **6. 与其他命令的关系** | 命令 | 作用 | |---------------------|----------------------------------------------------------------------| | `npx playwright test` | 运行测试(首次运行时会隐式调用 `install`) | | `npx playwright codegen` | 启动交互式录制(依赖已安装的浏览器) | | `npx playwright open` | 打开 Playwright 测试报告或调试工具(依赖浏览器) | --- ### **7. 最佳实践** 1. **在 CI 中显式安装**: 避免依赖隐式安装,在脚本中明确执行 `npx playwright install`。 2. **缓存浏览器文件**: 在 CI 中缓存 `node_modules/.cache/ms-playwright` 以加速后续构建。 ```yaml # GitHub Actions 缓存示例 - name: Cache Playwright Browsers uses: actions/cache@v3 with: path: node_modules/.cache/ms-playwright key: playwright-browsers-${{ runner.os }} ``` 3. **统一浏览器版本**: 团队开发时,通过 `package.json` 锁定 Playwright 版本,避免因版本不一致导致的问题。 --- ### **总结** - **`playwright install` 的核心价值**:自动化下载和管理测试所需的浏览器,简化环境配置。 - **关键点**: - 默认安装 Chromium、Firefox、WebKit。 - 支持自定义路径和强制重新下载。 - 是 Playwright 测试流程的前置依赖。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值