如何在Playwright API集成测试中实现文件上传?
使用Playwright调用文件上传API的实现方法
要在Playwright的API测试中上传/static-assets/import.xlsx文件,你需要借助FormData构造符合文件上传要求的请求体,具体实现如下:
1. 导入依赖模块
先引入Node.js的文件系统和路径模块,用于读取文件和拼接正确路径:
import { request } from '@playwright/test'; import fs from 'fs'; import path from 'path';
2. 构造请求数据并发起上传
通过FormData组织文件数据,再传入fetch方法的请求配置中:
const context = await request.newContext(); // 拼接文件绝对路径,__dirname表示当前脚本所在目录,根据实际目录层级调整../ const filePath = path.resolve(__dirname, '../static-assets/import.xlsx'); const formData = new FormData(); // 向表单添加文件,第一个参数是API要求的文件字段名(通常是*file*,需按实际接口调整) formData.append('file', fs.createReadStream(filePath), 'import.xlsx'); await context.fetch(url, { method: 'POST', body: formData });
关键注意点
- 务必替换
'file'为你的API实际规定的文件字段名称,比如部分接口会用'upload_file'这类字段。 - 若项目使用ES模块,确保
package.json中配置了"type": "module";如果是CommonJS环境,将import改为require即可。 - Playwright会自动为
multipart/form-data类型的请求设置正确的Content-Type,无需手动指定。
内容的提问来源于stack exchange,提问作者Liero
相关产品推荐
相关产品推荐

