前言

在提交表单操作的时候,经常会遇到图片上传的操作,图片上传是一个单独的接口,本篇以禅道为例,介绍如何上传图片

上传接口

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上传图片相关推荐

  1. 用python画风车_python接口自动化()一)(实现一款简单的接口自动化框架)

    python接口自动化一(设计一款自己的接口自动化框架) 一.起因: 前面学习过了python接口requests来进行接口测试,但是在框架选择上还是选择的unittest.当接口数量不怎么多时还好, ...

  2. 怎么用python自动注册_python selenium自动化(二)自动化注册流程

    需求:使用python selenium来自动测试一个网站注册的流程. 假设这个网站的注册流程分为三步,需要提供比较多的信息: 在这个流程里面,需要用户填入信息.在下拉菜单中选择.选择单选的radio ...

  3. python unittest断言_python接口自动化(二十四)--unittest断言——中(详解)

    简介 上一篇通过简单的案例给小伙伴们介绍了一下unittest断言,这篇我们将通过结合和围绕实际的工作来进行unittest的断言.这里以获取城市天气预报的接口为例,设计了 2 个用例,一个是查询北京 ...

  4. python自动化测试断言_python接口自动化(二十五)--unittest断言——下(详解)...

    本文转载自: https://www.cnblogs.com/du-hong/p/10766314.html 简介 本篇还是回归到我们最初始的话题,想必大家都忘记了,没关系看这里:传送门  没错最初的 ...

  5. python 贴吧自动发帖_python接口自动化3-自动发帖(session)

    # coding:utf-8 import requests # 先打开登录首页,获取部分cookie url = "https://passport.cnblogs.com/user/si ...

  6. python自动测试n_接口自动化:Jenkins 自动构建python+nose测试

    参考: 通过Jenkins自动化构建python nose测试分两步: 1. 创建节点(节点就是执行自动化测试的机器): 2. 创建任务并绑定节点(用指定的机器来跑我们创建的任务,这里我们选择执行一段 ...

  7. python 基于unittest写接口自动化脚本

    已过时.如感兴趣,请移步这篇文章 https://blog.csdn.net/tomoya_chen/article/details/121550706 python 基于unittest写接口自动化 ...

  8. python自动化接口测试中的cookies怎么实现_Python接口自动化之cookie、session应用

    ------·今天距2021年260天·------ 这是ITester软件测试小栈第112次推文 在上一篇Python接口自动化测试系列文章:Python接口自动化-requests模块之post请 ...

  9. python接口自动化关联参数_python接口自动化7-参数关联

    前言 我们用自动化发帖之后,要想接着对这篇帖子操作,那就需要用参数关联了,发帖之后会有一个帖子的id,获取到这个id,继续操作传这个帖子id就可以了 (博客园的登录机制已经变了,不能用账号和密码登录了 ...

最新文章

  1. php的yii2框架下开发环境xampp,vim,xdebug,DBGp的搭建
  2. 微生物分类学研究利器:模式微生物基因组数据库
  3. 工程应用中的自相关操作
  4. [转载] JAVA基础----java中E,T,?的区别?
  5. 以下构成python循环结构的方法中_《Python程序设计与案例教程》课件chap5循环结构程序设计.ppt...
  6. 杭电 hdu 3343
  7. Atitit数据库层次架构表与知识点 attilax 总结
  8. intel服务器最新主板芯片组,Intel C200芯片组:入门级、发烧友至爱_Intel服务器主板_服务器评测与技术-中关村在线...
  9. C++解决八数码问题
  10. word2016页眉横线删除不掉
  11. SPSS联合Excel进行logistic回归亚组交互效应(交互作用)的可视化分析
  12. 使用wget从google drive下载
  13. java报错root cause_[Filtered request failed.] with root cause java.io.OptionalDataException
  14. 图像修复序列——BSCB模型
  15. 听说软件测试工程师们都在考ISTQB?
  16. php选择栏可输入可选择,填制凭证时,“科目名称”栏可选择用下列()方法输入。...
  17. CREO图文教程:三维设计案例之油缸顶物体的骨架模型设计图文教程之详细攻略
  18. docker logs命令详解
  19. 从哈佛退休!顶尖学者丘成桐全职任教清华
  20. HTML5权威指南读书笔记03(第7,8章)--icon,base,锚点,一些七七八八的元素

热门文章

  1. 数据上云|OneMO DTU数传模组接入OneNET云平台操作详细过程
  2. 启动计算机 页面文件配置问题,计算机启动出现了页面文件配置问题是什么原因 如何解决...
  3. php openvc人脸采集,Openvc 动态人脸识别对比学习(004)
  4. EduCoder js学习手册15 答案
  5. 乔布斯的未竟遗愿是iCloud(免费的云服务)
  6. Isotonic Regressio
  7. 苹果将可快速寻找iPhone和朋友合并成新App
  8. 发现一个网上《大富翁》很好玩。都是真人对战
  9. echarts gantt甘特图示例
  10. 聚类的评价指标NMI标准化互信息+python实现+sklearn调库