Playwright 安裝配置文件詳解

Playwright 安裝&配置文件詳解

環境準備

  • Node.js 14.0+(推薦 LTS 版本)
  • npm(推薦使用最新版)
  • 支持 Windows、macOS、Linux

一步到位的官方推薦安裝方式

1. 進入你的項目目錄

# Windows
cd 路徑\\你的項目
# macOS/Linux
cd /path/to/your/project

2. 初始化 Playwright 項目

npm init playwright@latest

操作提示:
在出現選項時,請用鍵盤的上下方向鍵選擇你想要的內容,然后按**回車(Enter)**鍵確認。

執行后會進入交互式引導,每個選項說明如下

選項1:Do you want to use TypeScript or JavaScript?
  • TypeScript:推薦(如果你的項目文件是 .ts 結尾,選這個)
  • JavaScript:如果你只用 .js 文件可以選這個
選項2:Where to put your end-to-end tests?
  • 輸入測試用例目錄名,建議用 testse2e(如果已有同名目錄會復用)
選項3:Add a GitHub Actions workflow? (y/N)
  • y:生成 GitHub Actions 工作流文件,方便 CI 自動化
  • n:不生成(本地開發可選 n)
選項4:Install Playwright browsers? (Y/n)
  • Y:自動下載 Chromium、Firefox、Webkit 三大主流瀏覽器(推薦)
  • n:跳過,后續可手動 npx playwright install

3. 運行初始化命令后的效果

Playwright 會自動:

  • 初始化 npm 項目(如無 package.json 會自動創建)
  • 安裝 Playwright 及相關依賴
  • 下載主流瀏覽器
  • 生成測試配置和示例代碼

生成的目錄結構示例

playwright/
├── playwright.config.ts           # Playwright 測試配置文件
├── package.json                   # 項目依賴與腳本
├── package-lock.json              # 依賴鎖定
├── node_modules/                  # 依賴包
├── tests/                         # 主測試目錄
│   └── example.spec.ts            # 官方示例測試
├── tests-examples/                # 額外官方示例
│   └── demo-todo-app.spec.ts      # TodoMVC 端到端測試
├── .gitignore                     # 忽略文件
└── README.md                      # 項目說明

詳細文件與目錄說明

  • playwright.config.ts

    • Playwright 的主配置文件。

    • 作用:配置測試目錄、并發、重試、報告、支持的瀏覽器(Chromium/Firefox/Webkit)等。

    • 詳細配置說明:

      import { defineConfig, devices } from '@playwright/test';export default defineConfig({// 測試目錄配置testDir: './tests',                    // 測試文件目錄testMatch: '**/*.spec.ts',             // 測試文件匹配模式timeout: 30000,                        // 單個測試超時時間(毫秒)// 全局設置globalTimeout: 600000,                 // 所有測試總超時時間expect: {timeout: 5000,                       // expect 斷言超時時間toHaveScreenshot: { maxDiffPixels: 100 }, // 截圖對比配置},// 并發配置workers: process.env.CI ? 1 : undefined, // CI 環境單進程,本地多進程fullyParallel: true,                   // 是否完全并行運行測試// 重試配置retries: process.env.CI ? 2 : 0,       // CI 環境失敗重試 2 次// 報告配置reporter: [['html'],                            // HTML 報告['list']                             // 命令行報告],// 瀏覽器配置use: {// 基礎配置baseURL: 'http://localhost:3000',    // 基礎 URLtrace: 'on-first-retry',             // 失敗時記錄追蹤screenshot: 'only-on-failure',       // 失敗時截圖// 瀏覽器配置viewport: { width: 1280, height: 720 }, // 視窗大小ignoreHTTPSErrors: true,             // 忽略 HTTPS 錯誤video: 'on-first-retry',             // 失敗時錄制視頻// 上下文配置locale: 'zh-CN',                     // 瀏覽器語言timezoneId: 'Asia/Shanghai',         // 時區geolocation: { longitude: 116.3, latitude: 39.9 }, // 地理位置permissions: ['geolocation'],        // 權限設置},// 多瀏覽器配置projects: [{name: 'chromium',use: { ...devices['Desktop Chrome'] },},{name: 'firefox',use: { ...devices['Desktop Firefox'] },},{name: 'webkit',use: { ...devices['Desktop Safari'] },},// 移動設備配置{name: 'Mobile Chrome',use: { ...devices['Pixel 5'] },},{name: 'Mobile Safari',use: { ...devices['iPhone 12'] },},],// 輸出配置outputDir: 'test-results/',            // 測試結果輸出目錄// 其他配置preserveOutput: 'always',              // 保留輸出文件forbidOnly: !!process.env.CI,          // CI 環境禁止 .onlyquiet: false,                          // 是否靜默輸出
      });
      
    • 配置項詳解:

      1. 測試目錄配置

        • testDir: 指定測試文件所在目錄
        • testMatch: 指定測試文件匹配模式
        • timeout: 單個測試用例超時時間
      2. 全局設置

        • globalTimeout: 所有測試的總超時時間
        • expect: 斷言相關配置
          • timeout: 斷言等待超時時間
          • toHaveScreenshot: 截圖對比配置
      3. 并發配置

        • workers: 并行運行的測試進程數
        • fullyParallel: 是否允許完全并行運行
      4. 重試配置

        • retries: 測試失敗時的重試次數
        • 建議在 CI 環境設置重試,本地開發可不設置
      5. 報告配置

        • reporter: 測試報告格式
        • 支持多種報告格式:html、list、dot、json 等
        • 可同時使用多個報告器
      6. 瀏覽器配置

        • use: 全局瀏覽器配置
          • baseURL: 基礎 URL,所有測試都會基于此 URL
          • trace: 追蹤記錄配置
          • screenshot: 截圖配置
          • viewport: 視窗大小
          • video: 視頻錄制配置
          • locale: 瀏覽器語言
          • timezoneId: 時區設置
          • geolocation: 地理位置模擬
          • permissions: 瀏覽器權限設置
      7. 多瀏覽器配置

        • projects: 定義多個測試項目
        • 每個項目可以配置不同的瀏覽器和設備
        • 支持桌面端和移動端設備
        • 可以使用預定義的設備配置
      8. 輸出配置

        • outputDir: 測試結果輸出目錄
        • preserveOutput: 輸出文件保留策略
      9. 其他配置

        • forbidOnly: 是否禁止使用 .only
        • quiet: 是否靜默輸出
        • use: 全局使用配置
    • 最佳實踐建議:

      1. 根據項目需求選擇合適的配置項
      2. CI 環境和本地開發環境使用不同配置
      3. 合理設置超時時間和重試次數
      4. 使用多瀏覽器配置確保跨瀏覽器兼容性
      5. 配置適當的報告格式便于問題分析
      6. 合理使用追蹤、截圖和視頻錄制功能
  • package.json

    • Node.js 項目的依賴和腳本清單。
    • 作用:記錄項目依賴(如 @playwright/test)、腳本命令、項目描述等。
    • 主要內容:
      • devDependencies:Playwright 及類型依賴。
      • scripts:可自定義測試命令。
      • descriptionauthorlicense 等元信息。
  • package-lock.json

    • 依賴鎖定文件。
    • 作用:確保團隊成員安裝的依賴版本一致,避免"我的能跑你的不能跑"。
  • node_modules/

    • 依賴包目錄。
    • 作用:存放所有通過 npm 安裝的依賴。
    • 注意:此目錄通常不需要提交到 git。
  • tests/

    • 主測試目錄。
    • 作用:存放你的 E2E 測試用例。
    • 默認包含 example.spec.ts,內容演示 Playwright 的基本用法。
    • 你可以在此目錄下添加、組織自己的測試文件。
  • tests/example.spec.ts

    • 官方自動生成的示例測試。
    • 作用:幫助你快速了解 Playwright 的基本斷言、頁面操作等。
    • 內容示例:
      • 訪問官網,斷言標題
      • 點擊"Get started"鏈接,斷言頁面內容
  • tests-examples/

    • 額外官方示例目錄。
    • 作用:提供更復雜的端到端測試案例,便于參考和學習。
  • tests-examples/demo-todo-app.spec.ts

    • TodoMVC 應用的完整端到端測試。
    • 作用:演示 Playwright 如何測試真實的前端應用,包括增刪查改、狀態斷言等。
    • 內容較長,適合進階學習。

4. 運行你的第一個測試

npx playwright test
  • 會自動運行 tests/ 目錄下的所有測試用例
  • 首次運行會自動打開瀏覽器下載和測試報告

5. 常見問題與建議

  • TypeScript/JavaScript 選錯了怎么辦?
    • 重新運行 npm init playwright@latest,或手動調整文件后綴和配置
  • 已有測試目錄/配置怎么辦?
    • 初始化時如遇同名文件,Playwright 會提示是否覆蓋,謹慎選擇
  • 瀏覽器沒裝全?
    • 可隨時運行 npx playwright install 補裝
  • 如何自定義配置?
    • 修改 playwright.config.ts

6. 參考:自動生成的示例測試內容

tests/example.spec.ts 示例:

import { test, expect } from '@playwright/test';test('has title', async ({ page }) => {await page.goto('https://playwright.dev/');await expect(page).toHaveTitle(/Playwright/);
});test('get started link', async ({ page }) => {await page.goto('https://playwright.dev/');await page.getByRole('link', { name: 'Get started' }).click();await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible();
});

7. 小結

  • Playwright 官方初始化命令一步到位,自動生成配置、示例和依賴
  • 每個交互選項都可根據實際項目需求選擇
  • 生成的目錄和文件結構清晰,便于團隊協作和持續集成

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/905528.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/905528.shtml
英文地址,請注明出處:http://en.pswp.cn/news/905528.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

中國古代史4

東漢 公元25年,劉秀建立東漢,定都洛陽,史稱光武中興 白馬寺:漢明帝時期建立,是佛教傳入中國后興建的第一座官辦寺院,有中國佛教的“祖庭”和“釋源”之稱,距今1900多年歷史 班超—西域都護—投…

springboot + mysql8降低版本到 mysql5.7

springboot mysql8降低版本到 mysql5.7 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.49</version></dependency>spring:datasource:driverClassName: com.mysql.jdbc.D…

4.4java常用類

在 Java 中&#xff0c;System 和 Runtime 類都是 java.lang 包下非常重要的類&#xff0c;它們提供了與系統交互以及管理 Java 虛擬機&#xff08;JVM&#xff09;運行時環境的功能。 System 類 System 類包含了一些有用的類字段和方法&#xff0c;它不能被實例化&#xff0…

【嵌入式筆記】Modbus TCP

1.概述 定義&#xff1a;Modbus TCP 是 Modbus 協議的變體&#xff0c;基于 TCP/IP 協議棧&#xff0c;用于通過以太網實現工業設備間的通信。 背景&#xff1a;由施耐德電氣&#xff08;原 Modicon 公司&#xff09;在 1999 年發布&#xff0c;將傳統的 Modbus RTU/ASCII 適配…

《解鎖React Native與Flutter:社交應用啟動速度優化秘籍》

React Native和Flutter作為當下熱門的跨平臺開發框架&#xff0c;在優化應用啟動性能方面各有千秋。今天&#xff0c;我們就深入剖析它們獨特的策略與方法。 React Native應用的初始包大小對啟動速度影響顯著。在打包階段&#xff0c;通過精準分析依賴&#xff0c;去除未使用的…

R語言學習--Day02--實戰經驗反饋

最近在做需要用R語言做數據清洗的項目&#xff0c;在網上看再多的技巧與語法&#xff0c;都不如在項目中實戰學習的快&#xff0c;下面是我通過實戰得來的經驗。 判斷Rstudio是否卡死 很多時候&#xff0c;我們在運行R語言代碼時&#xff0c;即使只是運行框選的幾行代碼&#…

How Sam‘s Club nudge customers into buying more

Here’s how Sam’s Club (or similar warehouse memberships) nudge customers into buying more: It’s a classic psychological strategy rooted in sunk cost fallacy and loss aversion. 1. Prepaid Membership Creates a “Sunk Cost” Once you’ve paid the annual …

OpenHarmony系統HDF驅動開發介紹(補充)

一、HDF驅動簡介 HDF&#xff08;Hardware Driver Foundation&#xff09;驅動框架&#xff0c;為驅動開發者提供驅動框架能力&#xff0c;包括驅動加載、驅動服務管理、驅動消息機制和配置管理。 簡單來說&#xff1a;HDF框架的驅動和Linux的驅動比較相似都是由配置文件和驅動…

自然語言處理 (NLP) 入門:NLTK 與 SpaCy 的初體驗

自然語言處理入門&#xff1a;NLTK 與 SpaCy 的初體驗 在當今數字化飛速發展的浪潮中&#xff0c;自然語言處理&#xff08;NLP&#xff09;已經成為了極具熱度的技術領域。自然語言處理的核心目標是讓計算機能夠理解、分析并生成人類語言&#xff0c;其應用場景極為廣泛&…

LLaVA:開源多模態大語言模型深度解析

一、基本介紹 1.1 項目背景與定位 LLaVA(Large Language and Vision Assistant)是由Haotian Liu等人開發的開源多模態大語言模型,旨在實現GPT-4級別的視覺-語言交互能力。該項目通過視覺指令微調技術,將預訓練的視覺編碼器與語言模型深度融合,在多個多模態基準測試中達到…

如何利用大模型對文章進行分段,提高向量搜索的準確性?

利用大模型對文章進行分段以提高向量搜索準確性,需結合文本語義理解、分塊策略優化以及向量表示技術。以下是系統性的解決方案: 一、分塊策略的核心原則 語義完整性優先 分塊需確保每個文本單元在語義上獨立且完整。研究表明,當分塊內容保持單一主題時,向量嵌入的語義表征能…

Java高頻面試之并發編程-17

volatile 和 synchronized 的區別 在 Java 并發編程中&#xff0c;volatile 和 synchronized 是兩種常用的同步機制&#xff0c;但它們的適用場景和底層原理有顯著差異。以下是兩者的詳細對比&#xff1a; 1. 核心功能對比 特性volatilesynchronized原子性不保證復合操作的原…

技術債務積累,如何進行有效管理

識別和評估技術債務、明確技術債務的優先級、制定系統的還債計劃、持續監控與預防技術債務產生是有效管理技術債務積累的重要策略。其中尤其要注重識別和評估技術債務&#xff0c;只有準確識別技術債務的種類和嚴重程度&#xff0c;才能制定出高效且有針對性的解決方案&#xf…

安裝windows版本的nacos

一、下載nacos安裝包 瀏覽器搜索nacos&#xff0c;進入nacos官網 https://nacos.io/docs/latest/overview/ 選擇下載windows版本的nacos 二、解壓縮 三、進入bin目錄&#xff0c;cmd命令行窗口 四、啟動nacos 查看日志 五、打開可視化頁面查看 以上&#xff0c;就是安裝wind…

小結:Android系統架構

https://developer.android.com/topic/architecture?hlzh-cn Android系統的架構&#xff0c;分為四個主要層次&#xff1a;應用程序層、應用框架層、庫和運行時層以及Linux內核層。&#xff1a; 1. 應用程序層&#xff08;Applications&#xff09; 功能&#xff1a;這一層包…

鴻蒙5.0項目開發——鴻蒙天氣項目的實現(歡迎頁)

【高心星出品】 文章目錄 歡迎頁面效果數據字典創建數據庫表格Splash頁面頁面功能歡迎頁代碼亮點 項目按照從數據庫連接層–視圖層–業務邏輯層這種三層架構開發&#xff0c;所以先設計了數據庫表格的結構&#xff0c;在EntryAbility中創建表格。 歡迎頁面效果 數據字典 sear…

使用譜聚類將相似度矩陣分為2類

使用譜聚類將相似度矩陣分為2類的步驟如下&#xff1a; 構建相似度矩陣&#xff1a;提供的1717矩陣已滿足對稱性且對角線為1。 計算度矩陣&#xff1a;對每一行求和得到各節點的度&#xff0c;形成對角矩陣。 計算歸一化拉普拉斯矩陣&#xff1a;采用對稱歸一化形式 LsymI?D…

MySQL 8.0 OCP 英文題庫解析(三)

Oracle 為慶祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免費考取原價245美元的MySQL OCP 認證。 從今天開始&#xff0c;將英文題庫免費公布出來&#xff0c;并進行解析&#xff0c;幫助大家在一個月之內輕松通過OCP認證。 本期公布試題16~25 試題16:…

【SQL】如何在 SQL 中統計結構化字符串的特征頻率

在數據分析場景中&#xff0c;我們經常會遇到需要解析結構化字符串并統計特征出現次數的需求。本文將以常用數據庫為例&#xff0c;探討如何高效處理類似 [特征A][特征B][特征C] 格式的字符串數據&#xff0c;并實現特征頻率統計。以下是完整的實現思路和解決方案。 一、問題場…

Docker Compose 的安裝方法

以下是 Docker Compose 的安裝方法整理&#xff0c;綜合了多篇指南的推薦步驟和注意事項&#xff1a; 一、安裝前準備 確保已安裝 Docker Docker Compose 依賴 Docker 引擎運行&#xff0c;需先安裝 Docker。若未安裝&#xff0c;可通過以下命令一鍵安裝&#xff08;國內服…