# @arghajit/playwright-pulse-report 中文文档

规范地址：https://npmcn.com/package/%40arghajit/playwright-pulse-report/

版本：0\.3\.5
npm 元数据更新时间：2026-03-22T10:42:40.073Z
中文译文更新时间：2026-11-06T22:43:35.068Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40arghajit/playwright-pulse-report
原文对照：https://npmcn.com/package/%40arghajit/playwright-pulse-report/?lang=original
项目主页：https://arghajit47.github.io/playwright-pulse/
源码仓库：https://github.com/Arghajit47/playwright-pulse

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：964 kB，27 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：15 个
- peer 依赖：@playwright/test \>=1\.40\.0
- 首次发布：2025-05-06T19:51:53.698Z
- 最新版本发布：2026-03-22T10:42:39.959Z
- 近 30 天下载量：2224（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：24（近 12 个月 10 个）

## 中文简介

一个用于可视化测试结果的Playwright记者和仪表板.

## 安装

```sh
npm install @arghajit/playwright-pulse-report
```

也可以使用：`pnpm add @arghajit/playwright-pulse-report`、`yarn add @arghajit/playwright-pulse-report`、`bun add @arghajit/playwright-pulse-report`

## README

# Playwright Pluse 报告

[![NPM Version](https://img.shields.io/npm/v/@arghajit/playwright-pulse-report.svg)](https://www.npmjs.com/package/@arghajit/playwright-pulse-report) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![NPM Downloads](https://img.shields.io/npm/dm/@arghajit/playwright-pulse-report.svg)](https://www.npmjs.com/package/@arghajit/playwright-pulse-report)

![Playwright Pulse Report](https://ocpaxmghzmfbuhxzxzae.supabase.co/storage/v1/object/public/images/pulse-report/playwright-pulse-report.png)

_终极Playwright记者——具有历史趋势分析功能的交互式仪表板,CI/CD已准备好的独立的HTML报告,并硬性支持可缩放的测试执行._

## [现场直播](https://arghajit47.github.io/playwright-pulse/demo.html)

## ![Features](https://ocpaxmghzmfbuhxzxzae.supabase.co/storage/v1/object/public/images/pulse-report/features.svg)

## **文档**数字 : [脉冲报告](https://arghajit47.github.io/playwright-pulse/)

## 可用的脚本

此工程提供这些工具命令 :

| 命令 | 说明 |
| --- | --- |
| `generate-report` | 生成 playwright-pulse-report.html, 从附件/ 目录中动态地装入截图和图像, 生成一个更轻的 HTML 文件, 初始负载更快, 在查看报告时需要显示附件/ 目录 |
| `generate-pulse-report` | 生成 `playwright-pulse-static-report.html`,自成一体,不需要服务器,保护所有仪表板功能,所有附件都嵌入到报表中,在查看报表时不需要有附件/目录,带有黑暗的主题并更好的初始负载处理 |
| `merge-pulse-report` | 合并多个平行测试 json 报告, 基本用于硬化 |
| `generate-trend` | 分析测试结果的历史趋势 |
| `generate-email-report` | 生成方便电子邮件的报告版本 |
| `send-email` | 通过电子邮件生成方便电子邮件的报告版本并发布报告 |

运行 `npm run <command>`

## \* 如何运作

1.  **记者收藏**数字 :
    
    -   自定义记者在测试执行过程中收集详细结果
    -   通过合并处理硬化 `.pulse-shard-results-*.json` 文件
2.  **JSON 输出**数字 :
    
    -   产生全面的 `playwright-pulse-report.json`
3.  **可视化选项**数字 :
    
    -   **静态 HTML**: 包含所有数据的自成一体的报告文件
    -   **电子邮件**: 向利益攸关方发送格式报告

## QQ 快速启动

### 1\. 安装

```bash
npm install @arghajit/playwright-pulse-report@latest --save-dev
```

### 2\. 配置剧作家

```typescript
// playwright.config.ts
import { defineConfig } from "@playwright/test";
import * as path from "path";

const PULSE_REPORT_DIR = path.resolve(__dirname, "pulse-report");

export default defineConfig({
  reporter: [
    ["list"],
    [
      "@arghajit/playwright-pulse-report",
      {
        outputDir: PULSE_REPORT_DIR,
      },
    ],
  ],
  // Other configurations...
});
```

### 3\. 生成报告

运行测试后 :

```bash
npx generate-pulse-report  # Generates static HTML
npx send-email            # Sends email report
```

### 4\. 自定义输出目录(可选)

现在所有的 CLI 脚本都支持自定义输出目录, 给予您在生成报告的地方的充分灵活性 :

```bash
# Using custom directory
npx generate-pulse-report --outputDir {YOUR_CUSTOM_REPORT_FOLDER}
npx generate-report -o test-results/e2e
npx send-email --outputDir custom-pulse-reports

# Using nested paths
npx generate-pulse-report --outputDir reports/integration
npx merge-pulse-report --outputDir {YOUR_CUSTOM_REPORT_FOLDER}
```

**重要内容:** 保证你 `playwright.config.ts` 自定义目录匹配 CLI 脚本 :

![Custom Output Directory](https://ocpaxmghzmfbuhxzxzae.supabase.co/storage/v1/object/public/images/pulse-report/custom-output-directory-config.png)

## 报告选项

### 备选案文1:静态的 HTML 报告(附件)

```bash
npm run generate-pulse-report
or,
npx generate-pulse-report
```

-   生成 `playwright-pulse-static-report.html`
-   自成一体,不需要服务器
-   保存所有仪表板功能

### 备选案文2: HTML 报告(基于附件)

```bash
npm run generate-report
or,
npx generate-report
```

-   生成剧作家-脉冲-report.html
-   从附件/ 目录中动态装入截图和图像
-   生产更轻的 HTML 文件, 初始负载更快
-   查看报告时需要显示附件/ 目录

### 备选案文3:电子邮件报告

1.  配置 `.env`数字 :
    
    ```bash
    RECIPIENT_EMAIL_1=recipient1@example.com
    RECIPIENT_EMAIL_2=recipient2@example.com
    # ... up to 5 recipients
    ```
    
2.  发送报告 :
    
    ```bash
    npx send-email
    ```
    

注:电子邮件将附带一个轻量级的html文件,可在邮件预览应用程序中打开.

## AI 分析

该仪表板包括AI动力测试分析,提供:

-   测试碎片检测
-   业绩瓶颈
-   失败模式识别
-   建议优化

## QQ 向邮件发送报告

这个 `send-email` CLI 覆盖整个电子邮件流 :

-   生成一个轻量级的 HTML 摘要( E)`pulse-email-summary.html`从最新 `playwright-pulse-report.json`。 。 。 .
-   构建一个统计表(启动时间、持续时间、总数、通过、失败、跳过、百分比).
-   作为正文和HTML附件发送带有该摘要的电子邮件.

### 1\. 配置收件人

通过环境变量设置最多5个收件人:

```bash
RECIPIENT_EMAIL_1=recipient1@example.com
RECIPIENT_EMAIL_2=recipient2@example.com
RECIPIENT_EMAIL_3=recipient3@example.com
RECIPIENT_EMAIL_4=recipient4@example.com
RECIPIENT_EMAIL_5=recipient5@example.com
```

### 2\. 选择信誉流动

脚本支持获得SMTP证书的两种方式:

**A流-基于环境的证书(建议)**

通过环境变量提供邮件主机和证书:

```bash
PULSE_MAIL_HOST=gmail        # or: outlook
PULSE_MAIL_USERNAME=you@example.com
PULSE_MAIL_PASSWORD=your_app_password
```

-   `PULSE_MAIL_HOST` 支持 `gmail` 或者说 `outlook` 只有这个.
-   对于Gmail/Outlook,使用应用程序密码或SMTP启用的证书.

**流量 B – 默认流量(回落)**

如果以上变量没有设置,脚本会倒置以默认邮件主机的相容性.

### 3\. 运行CLI

使用默认输出目录 :

```bash
npx send-email
```

或指向自定义报告目录( 必须包含) `playwright-pulse-report.json`:

```bash
npx send-email --outputDir <YOUR_CUSTOM_REPORT_FOLDER>
```

盖下,这个会:

-   解析报告目录(来自 `--outputDir` 或者说 `playwright.config.ts`) (中文(简体) ).
-   运行 `generate-email-report.mjs` 创建 `pulse-email-summary.html`。 。 。 .
-   使用节点邮件通过所选提供者(Gmail或Outlook)发送邮件.

## CI/CD 一体化

### 基本工作流程

```yaml
# .github/workflows/playwright.yml
name: Playwright Tests
on:
  push:
    branches: [ main, master ]
  pull_request:
    branches: [ main, master ]
jobs:
  test:
    timeout-minutes: 60
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-node@v4
      with:
        node-version: lts/*
    - name: Install dependencies
      run: npm ci
    - name: Install Playwright Browsers
      run: npx playwright install --with-deps
    - name: Run Playwright tests
      run: npm run test
    - name: Generate Pulse Report
      run: npx generate-report
    - uses: actions/upload-artifact@v4
      if: always()
      with:
        name: pulse-report
        path: pulse-report/
        retention-days: 30
```

详细情况请参见 [基本CI/CD整合](https://arghajit47.github.io/playwright-pulse/advanced-usage.html)。 。 。 .

### 困难的工作流程

```yaml
# .github/workflows/playwright.yml
name: Playwright Tests with Pulse Report
on: [push]
jobs:
  test:
    timeout-minutes: 60
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        shard: [1, 2, 3, 4]
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 18
      - run: npm ci
      - run: npx playwright install --with-deps
      - run: npx playwright test --shard=${{ matrix.shard }}/${{ strategy.job-total }}
      - uses: actions/upload-artifact@v4
        if: always()
        with:
          name: pulse-report-shard-${{ matrix.shard }}
          path: pulse-report/
          retention-days: 1

  merge-report:
    needs: test
    if: always()
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 18
      - run: npm ci

      # Download all shard artifacts to a single directory
      - uses: actions/download-artifact@v4
        with:
          path: all-reports
          pattern: pulse-report-shard-*

      # Merge all shard reports into a single report
      - run: npx merge-pulse-report -o all-reports

      # Generate the final HTML report
      - run: npx generate-pulse-report -o all-reports

      # Upload the final merged report
      - uses: actions/upload-artifact@v4
        with:
          name: final-playwright-pulse-report
          path: all-reports/
          retention-days: 7
```

详细情况请参见 [脉冲报告](https://arghajit47.github.io/playwright-pulse/sharding.html)。 。 。 .

## 页:1

-   **`npm run generate-report` 生成 HTML 报表( 截图/ 图像将实时取自“ attachments/” 目录 ).**
-   **`npm run generate-pulse-report` 生成一个完全自成一体的静态 HTML 报表( 所有截图和图像都使用 Base64 编码直接嵌入到 HTML 中,它简化了分布,但可能导致文件大小更大和加载时间更长.**
-   每个硬体产生自己的剧作家-脉冲-报告. json 内脉-报告/.
-   活体用硬体类型(matrix.config.type)来命名.
-   测试矩阵完成后,报告会被下载,重新命名,并合并.
-   合并-报告是一个自定义的节点.js脚本,将所有JSON文件合并为一个.

## ![Folder-Structure](https://ocpaxmghzmfbuhxzxzae.supabase.co/storage/v1/object/public/images/pulse-report/pulse-folder-structures.svg)

### 🚀 **现在升级**

```bash
npm install @arghajit/playwright-pulse-report@latest
```

* * *

## 高级配置

### 处理顺序测试运行

默认情况下, 记者将覆盖 `playwright-pulse-report.json` 每个新测试运行时的文件。 这通常是我们想要的。 但是,如果我们在同一个岗位上连续进行测试, 像这样:

```bash
npx playwright test test1.spec.ts && npx playwright test test2.spec.ts
```

默认情况下,在上述情况下,从测试1得到的报告会丢失. 要解决这个问题,可以使用重置OnEachRun选项.

```javascript
// playwright.config.ts
import { defineConfig } from "@playwright/test";
import * as path from "path";

// Define where the final report JSON and HTML should go
const PULSE_REPORT_DIR = path.resolve(__dirname, "pulse-report"); // Example: a directory in your project root

export default defineConfig({
  reporter: [
    ["list"],
    [
      "@arghajit/playwright-pulse-report",
      {
        outputDir: PULSE_REPORT_DIR,
        // Add this option
        resetOnEachRun: false, // Default is true
      },
    ],
  ],
  // ...
});
```

**重置 OnEachRun 时如何工作: 假 :**

-   首先,它将报告-1.json保存到脉冲报告/脉冲结果目录中,并从中创建了主要剧作家-脉冲报告.json.
-   在第二次运行时,它将报告-2.json保存到同一个目录.
-   然后,它自动地读取了报告-1.json和报告-2.json,将其合并,并用综合结果更新了主要剧作家-脉冲-report.json.

_**这保证了您的最后报告永远是所有连续测试的完整总结.**_

* * *

![pulse dashboard](https://ocpaxmghzmfbuhxzxzae.supabase.co/storage/v1/object/public/images/pulse-report/pulse_dashboard_full_icon.png)

**实时 Playwright 测试监测和分析**

A Next.js 组件 & CLI 用于可视化 Playwright 测试处决的工具. 提供实时的洞察力,历史趋势和失败分析.

**关键特性**数字 :

-   交互式测试结果可视化
-   历史趋势分析
-   失败模式识别

**快速启动**数字 :

```bash
npx pulse-dashboard
  or,
npm run pulse-dashboard
```

_(运行来自工程根,包含 `pulse-report/` 目录)_

**国家防范机制一揽子计划**数字 : [脉冲盘](https://www.npmjs.com/package/pulse-dashboard)

**技术堆栈**: Next.js, TypeScript, Tailwind CSS, Playwright (英语)

_Playwright Pulse 报告生态系统的一部分_

* * *

## ++ 辅助

对于问题或专题请求,请 [联系我](mailto:arghajitsingha47@gmail.com)。 。 。 .

* * *

## 谢谢

特别 感谢 [@Suman Vishwakarma (英语)](https://www.linkedin.com/in/suman-vishwakarma-426108185/),用于持续UAT反馈.

* * *

由Arghajit Singha 制作

## 常见问题

### @arghajit/playwright-pulse-report 是什么？

一个用于可视化测试结果的Playwright记者和仪表板\.

### 如何安装 @arghajit/playwright-pulse-report？

在项目目录运行 npm install @arghajit/playwright-pulse-report，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@playwright/test（\>=1\.40\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。它还提供命令行工具 logo、generate-pulse-report、generate-report、merge-pulse-report、send-email、generate-email-report、generate-trend、pulse-logo，可以用 npx logo 直接运行。

### @arghajit/playwright-pulse-report 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @arghajit/playwright-pulse-report 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @arghajit/playwright-pulse-report 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @arghajit/playwright-pulse-report 可以商用吗？

@arghajit/playwright-pulse-report 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @arghajit/playwright-pulse-report 的下载量有多少？

根据 npm 官方下载统计，@arghajit/playwright-pulse-report 在 2026/10/07 – 2026/11/05 这 30 天内被下载 2,224 次，日均约 74 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @arghajit/playwright-pulse-report 还在维护吗？

最新版本 0\.3\.5 发布于 2026/03/22（7 个月前）；至今共发布 24 个版本，其中过去 12 个月发布了 10 个；首次发布于 2025/05/07。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

