在工作中对于下载接口,经常会有这样的疑问:这类接口一般功能比较稳定,但是又比较重要,需要占用回归测试时间,有没有可替代的方式?
答案肯定是有的,可以从接口测试/UI自动化测试介入,而本文主要讲述接口测试,提供两种方法。
文件下载接口的一般实现:
A. 一般项目中,文件存储/下载都是公司基础建设提供的能力,大部分实现都是获取到所下载文件的URL,然后浏览器会去执行下载操作(效果同在浏览器中直接输入该下载URL),因此,需要先找到该文件的下载URL,然后在通过脚本/工具进行模拟下载
B. 下载接口需要自己编写,提供下载能力
以上两种方式对于下载原理都是一样的,本质上都是获取到下载URL然后由浏览器去执行下载,实际项目中根据自己项目类型找到对应URL即可。
本文中我们采用上述B中的方式(下载接口demo采用python+django编写,接口里写死的下载文件信息,后面会写如何实现),接口信息如下:
-
URL:http://127.0.0.1:8001/case/down
-
请求方式:不限
方法1:使用测试必备神器之postman进行下载接口的脚本编写
1.将URL以及headers等信息填入postman,如下图:
. 点击send and download,会调用系统弹窗给下载文件重命名
点击保存,即可下载成功
方法2:使用python+requests编写接口测试脚本
文件下载时,是以二进制格式传输的,需要设置sream=True参数
将二进制内容写入到下载目录所在的文件中
-
import requests
-
from contextlib import closing
-
url = 'http://127.0.0.1:8001/case/down'
-
with closing(requests.get(url, stream=True)) as response:
-
with open("文件名1.py", "wb") as file:
-
for data in response.iter_content(128):
-
file.write(data)
如图,文件下载成功。
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。