前言
requests 庫里面上傳文件會用到 requests_toolbelt, 可以很方便的解決 multipart/form-data 類型的文件上傳相關接口。
HttpRunner 集成了 requests_toolbelt,從 2.4.1+ 版本開始可以使用內置 upload 關鍵字來上傳文件相關操作。
相關環境:
- httprunner 2.4.1以上版本
- requests_toolbelt
- filetype
使用示例
使用 upload 關鍵字,上傳文件(2.4.1以上版本)
- test:
name: upload file
request:
url: http://httpbin.org/upload
method: POST
headers:
Cookie: session=AAA-BBB-CCC
upload:
file: "data/file_to_upload"
field1: "value1"
field2: "value2"
validate:
- eq: ["status_code", 200]
參考案例:文件上傳multipart/form-data
用fiddler抓包,查看抓到的接口,以下這種接口就是multipart/form-data
- Content-Type: multipart/form-data
- body參數是這種格式:
-----------------------------22165374713946
Content-Disposition: form-data; name="localUrl"
yoyoketang.png
-----------------------------22165374713946
Content-Disposition: form-data; name="imgFile"; filename="yoyoketang.png"
Content-Type: image/png
httprunner2.x 腳本文件上傳使用 upload
關鍵字,文件放 data 目錄下
# 上海-悠悠,httprunner QQ交流群:717225969
- config:
name: 上傳文件
variables: {}
- test:
name: files
request:
upload:
imgFile: "data/122.png"
headers:
Authorization: Bearer 登陸的token
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
method: POST
url: http://x.x.x.x/path/files
validate:
- eq:
- status_code
- 200
- eq:
- headers.Content-Type
- application/json;charset=UTF-8