微信扫码
添加专属顾问
我要投稿
掌握Playwright自动化测试,轻松验证PDF内容准确性。 核心内容: 1. PDF文件在自动化测试中的重要性 2. 使用Playwright下载PDF文件的方法 3. 利用pdf-parse提取PDF内容并验证
在自动化测试中,PDF 文件的验证常常被忽视,但其重要性不容小觑。PDF 文件常用于展示发票、合同等关键信息,确保其内容准确无误对保障应用质量至关重要。本文将带你深入了解如何利用 Playwright,结合 pdf-parse 和 fs 模块,实现 PDF 内容的自动化验证。
Playwright 是一款强大的开源自动化测试工具,支持多浏览器和多平台运行。虽然它没有内置的 PDF 验证功能,但通过与其他工具配合,我们可以轻松填补这一空白。
首先,安装所需依赖:
npm install playwright fs pdf-parse
npm init playwright@latest
使用 Playwright 模拟用户行为,下载 PDF 文件:
const { test, expect } = require('@playwright/test');
test('下载 PDF 文件', async ({ page }) => {
// 导航到包含 PDF 的页面
await page.goto('https://pdfobject.com/pdf/sample.pdf');
// 同时等待下载事件并触发下载
const [download] = await Promise.all([
page.waitForEvent('download'), // 监听下载事件
page.getByRole('link', { name: 'A Simple PDF File' }).click() // 点击下载链接
]);
// 保存文件到指定路径
const filePath = 'ExportData/' + download.suggestedFilename();
await download.saveAs(filePath);
});
借助 pdf-parse 提取 PDF 中的文本,并保存为文本文件:
const fs = require('fs');
const pdf = require('pdf-parse');
async function extractPdfText(filePath) {
try {
// 读取 PDF 文件内容
const dataBuffer = fs.readFileSync(filePath);
// 解析 PDF 获取文本
const data = await pdf(dataBuffer);
// 将提取的文本保存到 actual.txt
fs.writeFileSync('./ExportData/actual.txt', data.text);
} catch (error) {
// 处理解析失败的情况
console.error('PDF 解析失败:', error);
}
}
// 调用函数提取文本
extractPdfText('./ExportData/sample.pdf');
比较提取的文本与预期内容,确保一致性:
test('验证 PDF 内容', async () => {
// 读取预期和实际文本内容
let expected = fs.readFileSync('./ExportData/expected.txt', 'utf-8');
let actual = fs.readFileSync('./ExportData/actual.txt', 'utf-8');
// 使用 Playwright 的 expect 断言内容一致
expect(actual).toBe(expected);
});
为方便理解,项目文件组织如下:
- ExportData
- actual.txt # 提取的实际文本
- expected.txt # 预期的文本
- sample.pdf # 下载的 PDF 文件
- node_modules # 依赖包
- playwright-report # 测试报告
- tests
- example.spec.js # 测试脚本
- package-lock.json
- package.json
- playwright.config.js
通过本文,你掌握了在 Playwright 中实现 PDF 内容自动化验证的全过程。这一技能不仅能提升测试覆盖率,还能确保关键文档的准确性。赶快动手试试吧!
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-05-27
2025年彻底改变我工作流程的10款AI工具
2025-05-27
AI的落地难题、应用案例和生产率悖论
2025-05-27
一句话生成教学视频?我用这个AI做了两节课,效果惊人!(附实操)
2025-05-27
AI领域基础概念(上)
2025-05-27
对话YouMind创始人玉伯:挑战抖音的男人|100 AI Creators
2025-05-27
在AI愈发强大的世界中,教师应该教什么,学生应该学什么?
2025-05-26
V0做不到、Bolt搞不定,Youware用MCP一键解决网页生成最大难题
2025-05-26
AI Agent迈向中央舞台:深度解析2025年进化新格局
2025-03-06
2024-09-04
2025-01-25
2024-10-30
2024-09-26
2024-09-03
2025-03-12
2024-12-11
2025-02-18
2024-12-25
2025-05-27
2025-05-24
2025-05-23
2025-05-22
2025-05-21
2025-05-21
2025-05-20
2025-05-20