• 接口测试之文件下载


    在工作中对于下载接口,经常会有这样的疑问:这类接口一般功能比较稳定,但是又比较重要,需要占用回归测试时间,有没有可替代的方式?

           答案肯定是有的,可以从接口测试/UI自动化测试介入,而本文主要讲述接口测试,提供两种方法。

    文件下载接口的一般实现:

            A. 一般项目中,文件存储/下载都是公司基础建设提供的能力,大部分实现都是获取到所下载文件的URL,然后浏览器会去执行下载操作(效果同在浏览器中直接输入该下载URL),因此,需要先找到该文件的下载URL,然后在通过脚本/工具进行模拟下载

            B. 下载接口需要自己编写,提供下载能力

            以上两种方式对于下载原理都是一样的,本质上都是获取到下载URL然后由浏览器去执行下载,实际项目中根据自己项目类型找到对应URL即可。

    本文中我们采用上述B中的方式(下载接口demo采用python+django编写,接口里写死的下载文件信息,后面会写如何实现),接口信息如下:

    1. URL:http://127.0.0.1:8001/case/down

    2. 请求方式:不限

    方法1:使用测试必备神器之postman进行下载接口的脚本编写

      1.将URL以及headers等信息填入postman,如下图:

          2. 点击send and download,会调用系统弹窗给下载文件重命名

        点击保存,即可下载成功

    方法2:使用python+requests编写接口测试脚本

                 文件下载时,是以二进制格式传输的,需要设置sream=True参数

                 将二进制内容写入到下载目录所在的文件中

    1. 1 import requests
    2. 2 from contextlib import closing
    3. 3
    4. 4 url = 'http://127.0.0.1:8001/case/down'
    5. 5
    6. 6 with closing(requests.get(url, stream=True)) as response:
    7. 7 with open("文件名1.py", "wb") as file:
    8. 8 for data in response.iter_content(128):
    9. 9 file.write(data)

     如图,文件下载成功。

    最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

    在这里插入图片描述

    这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

  • 相关阅读:
    不使用EF框架实现数据库增删改查
    《windows核心编程》第2章 UNICODE字符
    一文了解DataStore(Proto)
    JAVA 基础与进阶系列索引 -- JAVA 进阶系列
    MyLife - Docker安装MySQL
    测量网络性能的开源工具iperf3
    功能解剖学复习题
    响应式布局(3种) + flex计算
    spark插入动态分区代码报错
    动态规划之编辑距离总结篇体会到carl的用心良苦
  • 原文地址:https://blog.csdn.net/NHB456789/article/details/133273294