1.Requets 多文件上傳
1.1 在requests中發送文件的接口只有一種,那就是使用requests.post的files參數, 請求形式如下:
url = "http://leontom.com/post"
data = None
files = { ... }
r = requests.post(url, data, files=files)
1.2 官方推薦使用的字典參數格式如下:
# 提示:這種方式可以對文件重命名, 示例:filename1='hello.txt', filePath1='D:\\test.txt', 則上傳文件名會修改爲hello.txt
{
"field1" : ("filename1", open("filePath1", "rb")),
"field2" : ("filename2", open("filePath2", "rb"), "image/jpeg"),
"field3" : ("filename3", open("filePath3", "rb"), "image/jpeg", {"refer" : "localhost"})
}
1.3 同時發送普通數據字段
有時候我們在發送文件的同時還需要發送普通的數據字段,此時普通數據字段直接存在data參數中即可,如下:
data = {"k1" : "v1"}
files = {
"field1" : open("1.png", "rb")
}
r = requests.post("http://httpbin.org/post", data, files=files)
2. HTTPRunner 多文件上傳
在request中添加files字段,字段值採用requests的形式,但將"field1" : () 改成 "field1" : []
[{
"config": {}
},
{
"test": {
"request": {
"data":{"k1":"v1"},
"files":{
"field1" : ["filename1", open("filePath1", "rb")],
"field2" : ["filename2", open("filePath2", "rb"), "image/jpeg"],
"field3" : ["filename3", open("filePath3", "rb"), "image/jpeg", {"refer" : "localhost"}]
}
},
}
}
]