python+fiddler接口自动化——文件下载

本文介绍了如何利用Python结合Fiddler工具进行接口自动化测试中的文件下载操作。重点讲解了不同Content-Type类型的含义,并给出了下载压缩包的代码示例,包括设置headers、获取cookies以及写入文件的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

既然接口可以实现上传,同样下载可以实现。
首先文件下载时要注意查看下content-type的类型,现在整理如下几种常见类型
Content-Type: text/html; charset=iso-8859-1
Content-Type: text/html; charset=utf-8
Content-Type: text/plain//纯文本格式
Content-Type: image/jpeg JPG***
Content-Type: application/zip 压缩包格式
Content-Type: application/pdf PDF文件
Content-Type: audio/mpeg// 音频文件
Content-Type: application/x-shockw**e-flash //Flash动画
需要注意下,在点击导出或者下载的按钮后,赶紧抓包
在这里插入图片描述
我这边之前的文件时是压缩包,所以抓到的包就是
在这里插入图片描述
代码实现:
1.生成zip的路径,如果没指定,会生成在当前脚本同一目录,如果指定的话,修改open里面第一个参数:“F:\test_io\files”
import re
import requests
from api_bokeyuan.bokeyuan_login import *
url_picture=“http://47.104.190.48:8000/xxxxx/
url_download_picture=“http://47.104.190.48:8000/xxxxx/
r_picture=s.get(url_picture)
token_picture=re.findall(‘name=“csrfmiddlewaretoken” value="(.+?)"’, r_picture.text)
print(token_picture)
c.set(“csrftoken”,“PB9puvgHbeIXvXEU6Q6R773PV6Z5wQyDi39wyts2J77B62G4lHodx1tsHnBQo34B”)
c.set(“sessionid”,“jo2yn4lncukgw2heurq6k0sioj0y03hx”)
s.cookies.update©
print©
h={
“User-Agent”:“Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0”,
“Accept”:“text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8”,
“Accept-Language”:“zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3”,
“Accept-Encoding”:“gzip,deflate”
}
r_download_picture=s.get(url_download_picture,headers=h)
print(r_download_picture.text)
#指定存放路径
fp = open(r"F:\test_io\files\xx.zip", “wb”)
fp.write(r_download_picture.content)
fp.close()

### Python 软件测试与流程自动化实现方法 #### 一、Python 接口自动化测试概述 接口自动化测试是一种通过程序模拟客户端请求服务端接口并验证返回数据是否符合预期的技术。常见的工具和技术包括但不限于Fiddler、SOAPUI、Postman等用于半自动化接口测试,以及基于编程语言如Python编写的全自动化解决方案[^1]。 #### 二、使用Python进行接口自动化测试的具体方式 以下是几种主要的方式及其特点: 1. **利用第三方工具完成部分工作** 工具如Fiddler、SOAPUI和Postman能够快速构建HTTP/HTTPS请求,并支持简单的脚本扩展功能来增强其能力。然而这些属于图形界面操作为主的应用,在复杂场景下可能显得不够灵活高效。 2. **采用框架驱动型方案——Robot Framework** Robot Framework是一个通用的开源测试自动化框架,它不仅适用于验收测试(Acceptance Testing),也适合于验收测试驱动开发(ATDD) 和机器人过程自动化(RPA)。对于API级别的测试而言,可以通过插件或者库的形式集成RESTful API调用逻辑,从而达到完全无人值守式的持续集成环境中的回归测试目的。 3. **自定义编码模式下的全流程控制** 利用自己的代码实现整个生命周期管理,则更加贴近实际业务需求。例如下面展示了一个简易版单元测试样例,其中运用到了`unittest`标准库配合特定领域内的辅助类来进行断言校验[^2]: ```python import unittest class TestMathMethod(unittest.TestCase): def setUp(self): pass @classmethod def tearDownClass(cls): print("All tests completed.") def test_addition(self): result = MathMethod.add(5,7) self.assertEqual(result,12,"Addition failed!") if __name__ == '__main__': suite=unittest.TestLoader().loadTestsFromTestCase(TestMathMethod) runner=HTMLTestRunner(output='report') runner.run(suite) ``` 上述例子中引入了外部模块`MathMethod`,并通过实例化对象调用了相应的方法计算两数之和,最后借助assertEqual()函数判断期望值同实际运行所得之间是否存在偏差情况发生。如果存在差异则抛出异常提示错误信息。 另外值得注意的是除了单纯的功能性验证之外还需要考虑性能指标评估等方面的内容,这就涉及到更多高级话题比如并发处理机制设计等等。 #### 三、推荐学习路径及相关资源链接 针对初学者来说可以从以下几个方面入手逐步深入掌握该技能集: - 学习基础语法结构; - 熟悉常用的标准库组件; - 实践真实世界里的项目案例分析; - 参考高质量文档资料进一步巩固知识点理解程度。 这里列举了一些可供参考的学习材料清单供您查阅选用[^3]: - 官方手册地址:https://docs.python.org/ - 教程集合页面:http://www.pythontutor.com/ 当然网络上还有众多优秀的博主分享他们的心得体会文章同样值得一看哦! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值