@ checkly/ playwright-reporter (帮助) @ info: whatsthis
Checkly的Playwright官方记者. 自动上传测试结果,截图,视频,和痕迹,以获得对端测试的能见度.
完全兼容 Playwright 的内置 JSON 记者 - 使用它作为临时替代,增加Checkly集成.
安装
npm install --save-dev @checkly/playwright-reporter
所需经费:
- 节点20.19+或22.12+
- 剧作家 >= 1.4.0.0
- A 类 支票账户
快速启动
1. 获得全权证书
- 转到 账户设置 > 常规 查找您的账户ID
- 转到 用户设置 > API 密钥 创建 API 密钥
2. 配置剧作家
将记者添加到您的 playwright.config.ts数字 :
import { defineConfig } from '@playwright/test';
import { createChecklyReporter } from '@checkly/playwright-reporter';
export default defineConfig({
reporter: [
['list'],
createChecklyReporter(),
],
});
提示 : 使用
createChecklyReporter()为配置选项提供全智能。 或者使用数组语法 :['@checkly/playwright-reporter', { ... }]
3. 设置环境变量
export CHECKLY_API_KEY=your_api_key
export CHECKLY_ACCOUNT_ID=your_account_id
或者用内线通过他们:
CHECKLY_API_KEY=... CHECKLY_ACCOUNT_ID=... npx playwright test
4. 运行测试
npx playwright test
您可以在输出中看到会话 URL :
View test results: https://app.checklyhq.com/test-sessions/abc123
[...test execution...]
✓ Check the results: https://app.checklyhq.com/test-sessions/abc123
配置选项
import { createChecklyReporter } from '@checkly/playwright-reporter';
createChecklyReporter({
outputDir: 'test-results',
sessionName: 'My Test Suite',
dryRun: false,
verbose: false,
showProgress: true,
showSummaryTable: true,
})
| 选项 | 类型 | 默认 | 说明 |
|---|---|---|---|
apiKey | string | CHECKLY_API_KEY 环境 var | 检查 API 密钥 |
accountId | string | CHECKLY_ACCOUNT_ID 环境 var | 检查账户 ID |
outputDir | string | 剧作家 outputDir | JSON和ZIP资产目录 |
sessionName | string | function | 自动生成 | 自定义会话名称 |
dryRun | boolean | false | 不上传而创建 ZIP |
verbose | boolean | false | 启用调试日志 |
showProgress | boolean | true | 在终端显示实时测试进度 |
printSteps | boolean | false | 打印单个测试步骤( 要求) showProgress(中文(简体) ) |
showSummaryTable | boolean | true | 运行后显示每个项目的细分表 |
scrubbing | object | false | 见 偷窥秘密 | 配置报告和痕迹的秘密擦拭 |
testCommand | string | 自动检测 | 覆盖在 Ccheckly UI 中显示的测试命令 |
webVitals | boolean | false | 通过仪器浏览器上下文来收集核心网络维度(LCP,CLS,INP,FCP,TTFB,TTCT);结果出现在Checkly报告中. 在 Checkly 的跑道上运行时默认存在 |
输出文件 (写信给 outputDir:
checkly-report.json- JSON测试报告checkly-report.zip- 有报告和资产的ZIP档案
环境变量
| 变量 | 说明 |
|---|---|
CHECKLY_API_KEY | 您的 checkly API 密钥 |
CHECKLY_ACCOUNT_ID | 您的支票账户 ID |
CHECKLY_REPORTER_VERBOSE | 设定为 true 详细调试输出 |
CHECKLY_REPORTER_DRY_RUN | 设定为 true 要跳过上传 |
CHECKLY_REPORTER_OUTPUT_DIR | 覆盖输出目录 |
CHECKLY_REPORTER_SHOW_SUMMARY_TABLE | 设定为 false 以隐藏总表 |
CHECKLY_REPORTER_WEB_VITALS | 设定为 false 以禁用 Core Web Virtuals 收藏( kill switch; 默认在 Checkly 的跑取器上使用 ) |
CHECKLY_TEST_COMMAND | 覆盖在 Ccheckly UI 中显示的测试命令 |
环境变量优先于配置中通过的选项.
上传什么
- 测试结果和状况(通过/失败/故障)
- 执行期限和时间
- 截图(关于失败或明确捕获)
- 录像
- 剧作家追踪
- 控制台日志和网络请求(取自痕迹)
偷窥秘密
记者在上传前会自动从JSON报告中去除敏感值,跟踪文件,附件和日志.
默认情况下,任何名称以 CHECKLY_SECRET_ 被擦干净。 您可以配置额外的擦除策略 :
createChecklyReporter({
scrubbing: {
envVars: ['DB_PASSWORD', 'STRIPE_KEY'],
autoDetect: true,
prefix: 'CHECKLY_SECRET_',
replacement: '[REDACTED]',
},
})
| 选项 | 类型 | 默认 | 说明 |
|---|---|---|---|
envVars | string[] | [] | 应去除运行时间值的环境可变名称 |
autoDetect | boolean | false | Scrub env vars 匹配常见的秘密模式( SECRET, 关键, TOKEN, PASWORD, 认证, AUTH, Private, API) |
prefix | string | false | null | 'CHECKLY_SECRET_' | 从这个前缀开始,将所有嵌入式 vars 全部清除. 设定为 false 或者说 '' 无法禁用 |
replacement | string | '*********' | 自定义擦除器值的替换字符串 |
unscrubbableTraces | 'reject' | 'upload' | 'reject' | 和无法完全抹去秘密的痕迹有什么关系 'reject' 把它从上传中留下, 'upload' 上传为记录, 包含秘密, 并登录警告 |
设定 scrubbing: false 完全禁用洗涤.
模糊测试检测
记者自动检测出片状测试:
- 模糊测试: 初始失败但在重试后通过的测试
- 有辱人格的地位: 当有片状测试但没有完全失败时设定
- 总体状况数字 :
passed如果所有的测试最终通过,failed否则
本地运行( 无上传)
对于本地开发而不上传到Checkly:
# Simply don't set CHECKLY_API_KEY or CHECKLY_ACCOUNT_ID
npx playwright test
发生什么了
- 记者打印证书缺失并跳过上传
- 测试正常运行
- 与
outputDir设置, 记者会写一个刷子checkly-report.json那边
为了得到 checkly-report.zip 本地, 使用 干线运行模式。 。 。 .
干运行模式
不上传而创建本地 JSON 和 ZIP 文件 :
createChecklyReporter({
dryRun: true,
})
有条件的干跑( 无证书时会上传 ) :
createChecklyReporter({
dryRun: !process.env.CHECKLY_API_KEY,
})
CI/CD 一体化
GitHub 动作
name: Playwright Tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: Install Playwright browsers
run: npx playwright install --with-deps
- name: Run Playwright tests
env:
CHECKLY_API_KEY: ${{ secrets.CHECKLY_API_KEY }}
CHECKLY_ACCOUNT_ID: ${{ secrets.CHECKLY_ACCOUNT_ID }}
run: npx playwright test
GitLab CI 语录
test:
image: mcr.microsoft.com/playwright:v1.57.0-jammy
stage: test
script:
- npm ci
- npx playwright test
variables:
CHECKLY_API_KEY: $CHECKLY_API_KEY
CHECKLY_ACCOUNT_ID: $CHECKLY_ACCOUNT_ID
设置变量 :
- 转到您的 GitLab 项目
- 导航到设置 > CI/CD > 变量
- 添加
CHECKLY_API_KEY(检查"任务变量") - 添加
CHECKLY_ACCOUNT_ID(检查"任务变量")
多个记者
与其他剧作家记者合并:
import { createChecklyReporter } from '@checkly/playwright-reporter';
export default defineConfig({
reporter: [
createChecklyReporter(),
['html', { outputFolder: 'playwright-report' }],
['list'],
['junit', { outputFile: 'test-results/junit.xml' }],
],
});
理解测试会话
记者创建 成套测试会,而不是单个测试文件结果.
当你跑的时候 npx playwright test数字 :
- 一个测试会 创建, 以您的目录命名
- 一个测试结果 整个运行
- 所有资产一起上传 在一个 ZIP 文件内
福利:
- 整个测试套间的综合视图
- 高效存储
- 跟踪总通过率/长期不及格率
警卫
总是使用环境变量作为证书. 从不将 API 密钥输入到版本控制 .
// DON'T DO THIS
createChecklyReporter({
apiKey: 'chk_api_...', // Hardcoded credentials!
})
// DO THIS
createChecklyReporter() // Reads from environment
使用 偷窥秘密 特性,以确保敏感值不会泄露到上传的报告和痕迹中.
文档
详细文件,访问 checklyhq.com/docs/detect/测试/剧作家-记者。 。 。 .
许可证
Apache 2.0 (英语)