进阶实战,接口自动化测试——requests文件上传/下载实战代码

news2024/11/17 11:38:33

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

如果需要发送文件到服务器,比如上传图片、视频等,就需要发送二进制数据。

一般上传文件使用的都是 Content-Type: multipart/form-data; 数据类型,可以发送文件,也可以发送相关的消息体数据。

文件上传操作步骤

POST一个多部分编码(Multipart-Encoded)的文件:
使用 requests 上传文件的基本步骤
构造文件数据,通过 open 函数以二进制方式打开文件
构造相关数据
发送请求,将文件数据以 files 参数传入,其他消息体数据通过 data 、json 、 headers 、 cookies 传入

url = 'http://httpbin.org/post'  # 上传文件接口
files = {
    'file': ('test.png',  # 文件名称
             open('../file/test.png', 'rb'),  # 文件路径
             'image/png',  # 文件类型
             {'Expires': '0'}  # 其他参数,非必传
             )
}  # => 打开上传文件并且加入文件相关参数

data = {
    "name": "test"
}

# data传入请求参数dict,files传入待上传文件参数dict
r = requests.post(url, data=data, files=files)
print(r.json())

注意:files字典里的 ‘file’ 键是根据上传组件的name属性来改变的,不一定是file;

如下图上传组件,当你上传一张图片时,抓包可以发现会传两个值,一个是fileField,一个是type,所以你的文件数据dict要包含 fileField 和 type 两个key

请添加图片描述请添加图片描述

files = {
    'fileField': (
        'test.png',  # 文件名称
        open('../file/test.png', 'rb'),  # 文件路径
        'image/png',  # 文件类型
        {'Expires': '0'}  # 其他参数,非必传
    ),
    'type': 1
}  # => 打开上传文件并且加入文件相关参数

文件下载操作步骤

极其简单,将二进制格式的响应内容存进本地文件中,根据需要下载的文件的格式来写文件名即可

down_url = 'https://www.imooc.com/mobile/appdown'
res = requests.post(down_url).content
with open("F:/imooc.apk", "wb") as f:
	f.write(res)
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有拼尽全力,才能让梦想破茧成蝶;只有奋斗不息,才能走出人生的精彩篇章;只有坚持不懈,才能绽放出人生的华丽花朵;相信自己,不放弃,你就是那个创造奇迹的人!

只有拼搏不息,才能赢得辉煌;只有奋斗不止,才能实现梦想;只要坚持不懈,成功必将属于你。相信自己,努力前行,未来的辉煌属于勇敢追梦的人!

只有拼尽全力,才能在茫茫人海中独领风骚。不畏困难,不惧失败,奋斗的路上每一步都是向前的力量,一往无前,终将登上成功的巅峰。相信自己,努力奋斗,未来必定会闪耀光芒!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/700415.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

record-4.网络

4、网络 技术栈: 1、计算机网络体系结构 OSI分层 (7层):物理层、数据链路层(网桥,交换机)、网络层(IP,ICMP,ARP)、传输层(TCP&…

springboot房屋管理系统

房屋管理系统 springboot房屋管理系统 java房屋管理系统 技术: 基于springboothtml房屋管理系统的设计与实现 运行环境: JAVA版本:JDK1.8 IDE类型:IDEA、Eclipse都可运行 数据库类型:MySql(8.x版本都可…

微服务-Gradle的入门和使用

对于一个新的工程拉下来,如果该工程用了gradle。需要学习一下gradle项目管理工具。我在本机macbook M1的环境下操作。 一、配置安装 下载Gradle: https://services.gradle.org/distributions/ 我下载了6.9版本的Gradle 下载好了以后,放到了…

elasticsearch学习篇:初识ES

一、什么是ES 1、基础概念 是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容es是elastic stack(ELK)的核心,负责存储、搜索、分析数据。 ELK包括以下内容: ELK被广泛应用在日志数据…

用python实现调用百度图片搜索的API

前言:这段代码是一个简单的图片爬虫程序它可以通过输入关键词,在百度图片中搜索相关图片,并返回一张随机的图片。代码使用Flask框架搭建了一个简单的Web应用,将用户输入的关键词作为参数传递给爬虫程序,然后从百度图片…

观察者模式(Observer)

别名 事件订阅者者(Event-Subscriber)监听者(Listener) 定义 观察者是一种行为设计模式,允许你定义一种订阅机制,可在对象事件发生时通知多个“观察”该对象的其他对象。 前言 1. 问题 假如你有两种类…

Linux vfs各种operation操作介绍

1.ext4文件系统定义的各种操作 //普通文件操作 const struct file_operations ext4_file_operations {.llseek ext4_llseek,.read_iter generic_file_read_iter,.write_iter ext4_file_write_iter,.unlocked_ioctl ext4_ioctl, #ifdef CONFIG_COMPAT.compat_ioctl …

【Python基础】- break和continue语句(文末送书4本)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

6 图像处理实现螺纹识别案例(matlab程序)

学习目的:学习识别案例掌握识别方法 2.代码 clear;clc;close all Iimread(luowen1.bmp); %读取螺纹图片 try Irgb2gray(I); %如果是RGB图,则转换成灰度图 catch end figure imshow(I) title(原图(半边螺纹)) f…

基于pyqt和卷积网络CNN的中文汉字识别

直接上效果演示图: 通过点击按钮可以实现在画板上写汉字识别和加载图片识别两个功能。 视频演示和demo仓库地址在b站视频001期: 到此一游7758258的个人空间-到此一游7758258个人主页-哔哩哔哩视频 所有代码展示: 十分的简洁,主…

【从零开始学习JAVA | 第二十六篇】泛型补充知识

目录 前言: 泛型的更多应用: 泛型类: 泛型方法: 泛型方法: 总结: 前言: 在上一篇文章中我们介绍了泛型的基础知识,也就是在创建集合的时候用到泛型,此时的泛型更多…

关于内存颗粒的地址映射

即便从软件角度,抛开地址译码器讨论内存颗粒中指定位置处的地址(DDR中的指定位置的电容)也是没有意义的。晶体管没有绝对地址,就如同地理测量中测定位置前需要确定坐标系一样,同一个位置在不同的坐标系中的地址描述可以…

【CVRP测评篇】 算法性能如何?来测!

我跨越了2100015秒的距离,为你送上更全面的算法性能评测。 目录 往期优质资源1 CVRP数据集2 实验准备2.1 计算机配置2.2 调参方法2.3 参数设定2.4 实验方法 3 实验结果3.1 最优解统计3.1.1各数据集上的算法性能对比3.1.2 求解结果汇总3.1.3小结一下3.1.4 还有话说 3…

使用 RedisTemplate 对象的 opsForValue() 方法获取 Redis 中的值获取不到

问题 使用 RedisTemplate 对象的 opsForValue() 方法获取 Redis 中的值获取不到 详细问题 笔者代码如下 1 使用 ValueOperations 对象的 set() 方法将一个键值对存储到 Redis 中 valueOperations.set("order:" user.getId() ":" goods.getId(), sec…

【Redis】2、Redis应用之【根据 Session 和 Redis 进行登录校验和发送短信验证码】

目录 一、基于 Session 实现登录(1) 发送短信验证码① 手机号格式后端校验② 生成短信验证码 (2) 短信验证码登录、注册(3) 登录验证① 通过 SpringMVC 定义拦截器② ThreadLocal (4) 集群 Session 不共享问题 二、基于 Redis 实现共享 session 登录(1) 登录之后,缓…

23款迈巴赫S480升级原厂10°后轮转向系统,减少转弯半径

就是低速的情况下,有更强的机动性,前后车轮的不同转动方向使得车辆可以凭借更更小转弯半径实现转向,在特定的狭窄路段或者停车时,车辆的操控性大大提升,而内轮差也缩小也增大了转向的安全性。 高速的情况下&#xff0…

C. Road Optimization(dp)

Problem - 1625C - Codeforces 火星政府不仅对优化太空飞行感兴趣,还希望改进该行星的道路系统。 火星上最重要的高速公路之一连接着奥林匹克城和西多尼亚的首都Kstolop。在这个问题中,我们只考虑从Kstolop到奥林匹克城的路线,而不考虑相反的…

技术创举!比亚迪-汉上的实景三维导航...

实景三维技术的发展日新月异,但在应用中却一直深陷内存占用、渲染缓慢、加载卡顿和模型塌陷等问题。对此,大势智慧率先推出海量数据轻量化技术,在业内首次实现实景三维模型在车机系统的直接浏览,展示了轻量化技术赋能实景三维应用…

面试Dubbo ,却问我和Springcloud有什么区别?

Dubbo 、Springcloud? 这两有关系? 前言一、RPC 框架的概念1. 什么是RPC框架2. RPC 和 普通通信 的区别 二、常用 RPC 框架1. Dubbo2. gRPC3. Thrift4. Feign 三、dubbo 与 Springcloud1. Dubbo 的模型2. Springcloud3. dubbo 与 Springcloud 的区别 前言 提到Dub…

若隐若现的芯片

先看效果&#xff1a; 再看代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>若隐若现的芯片</title><script src"https://unpkg.co/gsap3/dist/gsap.min.js">…