python介面自動化(二十二) multipart/form-data表單提交
阿新 • • 發佈:2020-08-06
前言
multipart/form-data這種格式官方文件給的參考案例比較簡單,實際情況中遇到會比較複雜,本篇講解multipart/form-data的表單如何提交,非圖片上傳。
禪道提交bug
1.以禪道提交bug為參考案例,手動操作一次提交bug,抓包檢視Content-Type:multipart/form-data
2.在webForms裡面檢視引數詳情
引數填寫
1.注意了,這裡的引數對應為字典格式,字典的key對應WebForms裡檢視的name=“這裡的引數”,value對應WebForms檢視的value值。
bd={ "product":"6", "module":"0", "project":"5", "openedBuild[]":"trunk", "assignedTo":"huyongqin", "type":"codeerror", "title":"測試8866", "severity":"1", "pri":"2", "steps":"<p>[步驟]開啟瀏覽器;</p><br /><p>[結果]打不開</p><br /><p>[期望]可以開啟</p><br />", "oldTaskID":"0", "uid":"5f2b6ce9192a9", "case":"0" }
參考程式碼
1.multipart/form-data這裡傳的是data引數。
2.請求頭部不要加Content-Type:multipart/form-data這個引數。
# 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): rs1=s.get("http://localhost/zentaopms/www/user-login.html",headers=headers) rs1.encoding='utf-8' #print(rs1.text) rand=re.findall(r"'verifyRand' value='(.+?)'",rs1.text) #print(rand[0]) if len(rand[0])==10: vrand=rand[0] break print(vrand) #方式一 hash=hashlib.md5() hash.update(pw.encode('utf-8')) f=hash.hexdigest()+vrand #print(f) #方式二 hash2=hashlib.md5(f.encode('utf-8')) pwd=hash2.hexdigest() print(pwd) data={ "account":"admin", "password":pwd, "referer":"http://localhost/zentaopms/www/bug-browse-6.html", "verifyRand":vrand } rs2=s.post("http://localhost/zentaopms/www/user-login.html",headers=headers,data=data) rs2.encoding='utf-8' #print(rs2.text) rs3=s.get("http://localhost/zentaopms/www/bug-browse-6.html",headers=headers) rs3.encoding='utf-8' #print(rs3.text) result=re.findall(r"\<a href=\'\/zentaopms\/www\/user-logout.html' \>(.+?)\<\/a\>",rs3.text) print(result) if result[0]=="退出": print("登入成功") #提交bug burl="http://localhost/zentaopms/www/bug-create-6-0-moduleID=0.html" bd={ "product":"6", "module":"0", "project":"5", "openedBuild[]":"trunk", "assignedTo":"huyongqin", "type":"codeerror", "title":"測試8866", "severity":"1", "pri":"2", "steps":"<p>[步驟]開啟瀏覽器;</p><br /><p>[結果]打不開</p><br /><p>[期望]可以開啟</p><br />", "oldTaskID":"0", "uid":"5f2b6ce9192a9", "case":"0" } rp=s.post(burl,data=bd) rp.encoding="utf-8" print(rp.text)
執行結果:
檢視禪道系統,發現有剛剛提交的bug。