如何使用Karate框架选择并以form-data方式传递PDF文件
Karate框架PDF文件上传实操要点
1. 传递PDF文件的正确语法
Karate中上传文件需使用multipart file指令,而非multipart field。具体写法如下:
And multipart file File = { read: 'test.pdf', filename: 'test.pdf', contentType: 'application/pdf' }
参数说明:
read:指定要读取的文件路径filename:可选,上传时传给服务器的文件名,默认与本地文件名一致contentType:必须设置为application/pdf,确保服务器正确识别文件类型
修改后的完整测试场景:
Scenario: File upload Given path '/uploadfile' And multipart field Id = 'pdffile' And multipart file File = { read: 'test.pdf', filename: 'test.pdf', contentType: 'application/pdf' } When method POST Then status 200
2. 选择multipart field还是form field?
- 普通文本参数(比如你的
Id字段)用multipart field,上传二进制文件(如PDF)必须用multipart file。如果误用multipart field传递文件,服务器只会收到文件路径字符串,而非实际的PDF二进制内容,导致上传失败。
3. 文件存放位置
- 默认规则:Karate会从当前
.feature文件所在的目录查找文件。将test.pdf与测试feature文件放在同一目录下时,直接写文件名即可。 - 若文件在子目录(如
files/test.pdf),填写相对路径即可;绝对路径也可使用,但不推荐,会降低测试的可移植性。
内容的提问来源于stack exchange,提问作者KK12
相关产品推荐
相关产品推荐

