python自动上传图片_python接口自动化(二十一) multipart/form-data上传图片
前言
在提交表单操作的时候,经常会遇到图片上传的操作,图片上传是一个单独的接口,本篇以禅道为例,介绍如何上传图片
上传接口
1.以禅道上提交bug为例,在选择图片时,点确定按钮,就是上传图片了。
2.用fiddler抓包,查看抓到的接口,以下这种接口就是multipart/form-data
先登录
1.因为上传图片是在登录之后操作的,这个需要依赖用户登录
登录需要先访问一次url,提取rand值,然后对rand和原密码进行md5加密。
上传图片
1.上传图片以下这种格式:
2.写成字典格式,key对应name="imgFile"中的"imgFile"
3.value里面是一个元组()
第一个参数是filename=后面对应的值,没有就写None
第二个是上面的这个值“2.png",或者是”文件open打开的二进制流。备注:尝试使用“2.png”,可以生成url,但访问url无图片
第三个是Content-Type对应的类型,如“image/png”
f={
"localUrl":(None,"33.png"),
"imgFile":("33.png",open("33.png","rb"),"image/png")
}
验证是否上传成功
1.获取上传后的地址,放到浏览器的地址栏请求下,看是不是刚才上传的图片
参考代码
注意:上传图片是files参数
# 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":"fuhui",
"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"\(.+?)\",rs3.text)
print(result)
if result[0]=="退出":
print("登录成功")
#上传图片
urlp="http://localhost/zentaopms/www/file-ajaxUpload-5f2b5bf056387.html?dir=image"
f={
"localUrl":(None,"33.png"),
"imgFile":("33.png",open("33.png","rb"),"image/png")
}
rp=s.post(urlp,files=f)
rp.encoding="utf-8"
try:
purl="http://localhost"+rp.json()["url"]
print("上传图片后,图片的url:{}".format(purl))
except Exception as msg:
print("返回值不是json格式的,错误为:{}".format(msg))
#print(rp.content)
#print(rp.text.encode("utf-8").decode("unicode_escape"))
python自动上传图片_python接口自动化(二十一) multipart/form-data上传图片相关推荐
- 用python画风车_python接口自动化()一)(实现一款简单的接口自动化框架)
python接口自动化一(设计一款自己的接口自动化框架) 一.起因: 前面学习过了python接口requests来进行接口测试,但是在框架选择上还是选择的unittest.当接口数量不怎么多时还好, ...
- 怎么用python自动注册_python selenium自动化(二)自动化注册流程
需求:使用python selenium来自动测试一个网站注册的流程. 假设这个网站的注册流程分为三步,需要提供比较多的信息: 在这个流程里面,需要用户填入信息.在下拉菜单中选择.选择单选的radio ...
- python unittest断言_python接口自动化(二十四)--unittest断言——中(详解)
简介 上一篇通过简单的案例给小伙伴们介绍了一下unittest断言,这篇我们将通过结合和围绕实际的工作来进行unittest的断言.这里以获取城市天气预报的接口为例,设计了 2 个用例,一个是查询北京 ...
- python自动化测试断言_python接口自动化(二十五)--unittest断言——下(详解)...
本文转载自: https://www.cnblogs.com/du-hong/p/10766314.html 简介 本篇还是回归到我们最初始的话题,想必大家都忘记了,没关系看这里:传送门 没错最初的 ...
- python 贴吧自动发帖_python接口自动化3-自动发帖(session)
# coding:utf-8 import requests # 先打开登录首页,获取部分cookie url = "https://passport.cnblogs.com/user/si ...
- python自动测试n_接口自动化:Jenkins 自动构建python+nose测试
参考: 通过Jenkins自动化构建python nose测试分两步: 1. 创建节点(节点就是执行自动化测试的机器): 2. 创建任务并绑定节点(用指定的机器来跑我们创建的任务,这里我们选择执行一段 ...
- python 基于unittest写接口自动化脚本
已过时.如感兴趣,请移步这篇文章 https://blog.csdn.net/tomoya_chen/article/details/121550706 python 基于unittest写接口自动化 ...
- python自动化接口测试中的cookies怎么实现_Python接口自动化之cookie、session应用
------·今天距2021年260天·------ 这是ITester软件测试小栈第112次推文 在上一篇Python接口自动化测试系列文章:Python接口自动化-requests模块之post请 ...
- python接口自动化关联参数_python接口自动化7-参数关联
前言 我们用自动化发帖之后,要想接着对这篇帖子操作,那就需要用参数关联了,发帖之后会有一个帖子的id,获取到这个id,继续操作传这个帖子id就可以了 (博客园的登录机制已经变了,不能用账号和密码登录了 ...
最新文章
- php的yii2框架下开发环境xampp,vim,xdebug,DBGp的搭建
- 微生物分类学研究利器:模式微生物基因组数据库
- 工程应用中的自相关操作
- [转载] JAVA基础----java中E,T,?的区别?
- 以下构成python循环结构的方法中_《Python程序设计与案例教程》课件chap5循环结构程序设计.ppt...
- 杭电 hdu 3343
- Atitit数据库层次架构表与知识点 attilax 总结
- intel服务器最新主板芯片组,Intel C200芯片组:入门级、发烧友至爱_Intel服务器主板_服务器评测与技术-中关村在线...
- C++解决八数码问题
- word2016页眉横线删除不掉
- SPSS联合Excel进行logistic回归亚组交互效应(交互作用)的可视化分析
- 使用wget从google drive下载
- java报错root cause_[Filtered request failed.] with root cause java.io.OptionalDataException
- 图像修复序列——BSCB模型
- 听说软件测试工程师们都在考ISTQB?
- php选择栏可输入可选择,填制凭证时,“科目名称”栏可选择用下列()方法输入。...
- CREO图文教程:三维设计案例之油缸顶物体的骨架模型设计图文教程之详细攻略
- docker logs命令详解
- 从哈佛退休!顶尖学者丘成桐全职任教清华
- HTML5权威指南读书笔记03(第7,8章)--icon,base,锚点,一些七七八八的元素
热门文章
- 数据上云|OneMO DTU数传模组接入OneNET云平台操作详细过程
- 启动计算机 页面文件配置问题,计算机启动出现了页面文件配置问题是什么原因 如何解决...
- php openvc人脸采集,Openvc 动态人脸识别对比学习(004)
- EduCoder js学习手册15 答案
- 乔布斯的未竟遗愿是iCloud(免费的云服务)
- Isotonic Regressio
- 苹果将可快速寻找iPhone和朋友合并成新App
- 发现一个网上《大富翁》很好玩。都是真人对战
- echarts gantt甘特图示例
- 聚类的评价指标NMI标准化互信息+python实现+sklearn调库