接口自动化测试 您所在的位置:网站首页 pdf下载和caj下载有什么区别 接口自动化测试

接口自动化测试

#接口自动化测试| 来源: 网络整理| 查看: 265

我们在做接口自动化测试的时候,经常会碰到文件上传接口和文件下载接口。

那么,文件接口跟普通接口有什么区别呢?又该如何实现呢?

〇、前言

文件上传/下载接口与普通接口类似,但是有细微的区别。

如果需要发送文件到服务器,例如:上传文档、图片、视频等,就需要发送二进制数据,上传文件一般使用的都是 Content-Type: multipart/form-data 数据类型,可以发送文件,也可以发送相关的消息体数据。

反之,文件下载就是将二进制格式的响应内容存储到本地,并根据需要下载的文件格式来写文件名,例如:F:/caituotuo-file.pdf。

一、文件上传接口

1. 接口文档

Request URL:/createfile

Request Method:POST

Content-Type:multipart/form-data

2. 代码实现

(1)实现步骤:

构造文件数据,通过open()函数以二进制方式打开文件

文件上传接口参数与普通post请求一样,需要写成Key和Value模式,Key为参数名称file(也是组件的name属性),Value为一个元组(与普通接口不同的地方)

"file": (     "caituotuo-file.pdf", # 元组第一个值为文件名称,没有则取None     open(r"F:\caituotuo-file.pdf", "rb"), # 若第一个值非None,则取文件open打开的二进制流,否则直接写文件路径,如"F:\caituotuo-file.pdf"     "pdf" # 文件类型 ) "file": (     None,     "F:\caituotuo-file.pdf" )

构造其他数据

{     "title": "接口上传的文件",     "fileType": "pdf" }

发送请求,将文件数据以  files 参数传入,其他消息体数据通过 data 、 headers 、 cookies 等传入

req = {             "url": "127.0.0.1/createfile",             "method": "POST",             "headers": {},             "files": {"file": ("caituotuo-file.pdf", open(r"F:\caituotuo-file.pdf", "rb"), "pdf")},             "data": {                 "title": "接口上传的文件",                 "fileType": "pdf"             }         }

(2)完整代码

# -*- coding:utf-8 -*- # 作者:爱吃 香菜 # 时间:2022/3/12 21:04 # 功能:上传文件demo import requests class Createfile:          def createfile(self):         req = {             "url": "127.0.0.1/createfile",             "method": "POST",             "headers": {},             "files": {"file": ("", open(r"F:\caituotuo-file.pdf", "rb"), "pdf")},             "data": {                 "title": "接口上传的文件",                 "fileType": "pdf"             }         }         res = requests.request(**req)         assert res.status_code == 200         res_json = res.json()         return res_json["result"]["id"] if __name__ == '__main__':     Createfile().createfile() 二、文件下载接口

1. 接口文档

Request URL:/download

Request Method:GET

 

2. 代码实现

# -*- coding:utf-8 -*- # 作者:爱吃 香菜 # 时间:2022/4/5 2:56 # 功能:下载文件demo import requests class Download:     def download(self):         req = {             "url": "127.0.0.1/download",             "method": "GET",             "headers": {},             "params": {                 "id": 2947403045981869536,                 "downloadItems": ["NORMAL"],                 "needCompressForOneFile": False             },         }         res = requests.request(**req).content # 注意“.content"获取返回内容         # with open("F:/response.zip", "wb") as f: # 多份文件返回压缩包         with open("F:/response.pdf", "wb") as f:             f.write(res)         return res if __name__ == '__main__':     Download().download()

以上,完。

脚踏实地,仰望星空,和小编一起学习软件测试,升职加薪!

 

资源分享

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有