python接⼝⾃动化(⼗五)multipartform-data上传多个附件前⾔printform
上传附件的时候,⽂件的name参数名称是⼀样的,python⾥⾯key是不可以重复的,⼜如何处理参数名称相同的情况?
上传附件
OPMS——员⼯相册上传图⽚,提⽰成功,访问响应中的url也可以访问到该图⽚,web页⾯和数据库却没有该条数据;⽆解ing
-------------------------------------------------------------------------------------------------------------------------------
禅道项⽬
1.下⾯以禅道提交bug的时候上传附件为例
2.fiddler抓包查看请求参数,查看到⽂件上传的参数如下:
上传⼀个附件
1.把参数分开,表单的数据⽤data提交,⽂件附件⽤files提交。
传多个附件
1.传多个⽂件的时候如下,这两个参数的name都是⼀样的,如果⽤字典去传key值,很显然 python的key值是不能重复的。
2.这时候需要换个格式,传list数据
3.上传之后,查看禅道上的图⽚;
参考代码:
# coding:utf-8
import requests
import re
import hashlib
pw="P@ssw0rd"
s=requests.Session()
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36" }
vrand=0
while(True):
("localhost/zentaopms/www/user-login.html",headers=headers)
#)
rand=re.findall(r"'verifyRand' value='(.+?)'",)
#print(rand[0])
if len(rand[0])==10:
vrand=rand[0]
break
print(vrand)
#⽅式⼀
hash=hashlib.md5()
hash.de('utf-8'))
f=hash.hexdigest()+vrand
#print(f)
#⽅式⼆
hash2=hashlib.de('utf-8'))
pwd=hash2.hexdigest()
print(pwd)
data={
"account":"fuhui",
"password":pwd,
"referer":"localhost/zentaopms/www/bug-browse-6.html",
"verifyRand":vrand
}
rs2=s.post("localhost/zentaopms/www/user-login.html",headers=headers,data=data)
#)
("localhost/zentaopms/www/bug-browse-6.html",headers=headers)
#)
result=re.findall(r"\<a href=\'\/zentaopms\/www\/user-logout.html' \>(.+?)\<\/a\>",)
print(result)
if result[0]=="退出":
print("登录成功")
#-----------------上传附件-------------------------
url2="localhost/zentaopms/www/bug-create-6-0-moduleID=0.html"
d2={"product":"6",
"module":"0",
"project":"5",
"openedBuild[]":"trunk",
"assignedTo":"huyongqin",
"type":"codeerror",
"title":"python学习上传多图",
"severity":"3",
"pri":"3",
"steps":"<p>[步骤]</p><br/><p>[结果]</p><br/><p>[期望]</p><br/>",
"oldTaskID":"0",
"uid":"5f2a0514c39db",
"case":"0",
"caseVersion":"0",
"result":"0",
"testtask":"0",
# "labels[]":"2.png"
}
# file={
# "files[]":("2.png",open("2.png","rb"),"image/jpeg")
# }
file={
("files[]",("2.png",open("2.png","rb"),"image/jpeg")),
("labels[]","2.png"),
("files[]",("qq.png",open("E:\\qq.png","rb"),"image/jpeg")), #图⽚与当前脚本⾮同⼀⽬录,需要写路径⽬录
("labels[]","qq.png"),
}
result2=s.post(url2,data=d2,headers=headers,files=file,allow_redirects=False)
t)
运⾏结果
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论