Python接口测试文件上传实例解析
作者:深圳阿张 发布时间:2023-04-19 15:59:28
标签:Python,接口,测试,文件,上传
接口测试中,上传文件的测试场景非常常见。例如:上传头像(图片)、上传文件、上传视频等。下面以一个上传图片的例子为大家讲解如何通过 python 测试上传文件接口。
首先通过抓包分析上传文件接口的请求参数:
下面是上传文件接口脚本。把目标文件以open打开,然后存储到变量file。并且使用files参数指明请求的参数名称、上传文件的类型、以及上传文件的路径。
这里注意:content-type参数,如果我们通过form-data的方式上传文件,我们发送post请求的时候,headers这个参数中一定不能要包括这个值,,requests库会帮忙添加这个元素,加了可能会报错。
代码实现:
import requests
from utils.LogUtil import my_log
from faker import Faker
log=my_log()
faker = Faker('zh_CN')
class marketCreate():
def loginToken(self,mobile,code):
'''
登陆、注册接口
:param mobile: 手机号
:param code: 验证码
:return:
'''
url='http://api.xxxxxx.net/v1/user/loginOrRegister' #登陆接口请求地址
headers={'Content-Type': 'application/json'} #请求头信息,json数据类型
json={"code":code,"deviceId":"5de548ad0e268bc0","deviceName":"HWNXT","mobile":mobile,"mobilePrefix":"63","version":"39"} #请求数据
r=requests.post(url,headers=headers,json=json) #发送请求
token=r.json()['data']['userVO']['token'] #获取token
log.info('手机号'+mobile+'的token值为:'+token) #打印日志
return token #将token返回出去
def uploadimages(self,mobile,file_path,filename):
'''
上传图片接口
:param mobile: 手机号
:param file_path: 文件路径
:param filename: 文件名称
:return:
'''
token = self.loginToken(mobile=mobile, code='789789') #请求登陆接口,获取token
url='http://api.xxxxxx.net/v1/upload/images' #上传文件接口请求地址
headers={'token': token} #请求头信息关联token。不需要赋值Content-Type,requests库会帮忙添加这个元素,加了可能会报错。
file_data={'file':(filename,open(file_path,'rb'),'image/jpeg')} #重点:上传文件请求数据。
r=requests.post(url=url,headers=headers,files=file_data) #发送请求
print(r.json()) #打印响应结果
if __name__ == '__main__':
m=marketCreate()
# 测试,输入手机号、文件地址、文件名称信息;
m.uploadimages(mobile='639266558329',file_path='D:\pyCharm_work\cmkjProject\data\market.jpg',filename='123456.jpg')
执行结果:
C:\Python38\python.exe D:/pyCharm_work/cmkjProject/page/marketPage.py
2020-01-02 13:48:09,580-D:\pyCharm_work\cmkjProject\utils\LogUtil.py-INFO-手机号639266558329的token值为:ba9b4f622fa4d6461523870c0d00df46
{'code': 0, 'data': '/group1/M00/00/00/rBDKPF4NhE-ABIFmAAGhT9tm-NA158.jpg', 'success': True}
Process finished with exit code 0
来源:https://www.jianshu.com/p/231e4773f7f3
0
投稿
猜你喜欢
- 导言作为web开发人员,我们的生活围绕着数据操作。我们建立数据库来存储数据,写编码来访问和修改数据,设计网页来采集和汇总数据。本文是研究在A
- 关于target="_blank"去留的问题在网上已经被反复争议很多次了。有的说要留,有的说要去掉。主张留的一方主要是考
- 例如:文本abcaBcabCaBCabcaBCa,关键字bc,在不区分大小写的情况,一共有6个匹配项。 则在网页中显示的是abcaBcabC
- 我们经常会遇到多重查询问题,而长长的SQL语句往往让人丈二和尚摸不着头脑。特别是客户端部分填入查询条件时,如用普通方法将更是难上加难。以下巧
- 本文实例讲述了php mysql procedure实现获取多个结果集的方法。分享给大家供大家参考,具体如下:protected funct
- 放大镜并不是一个难以实现的效果, 只是因为牵涉到一些精确的数值计算, 显得比较繁琐. 在未来的一段日子, 我会不定期地写关于 JavaScr
- 在 MySQL 下,在进行中文模糊检索时,经常会返回一些与之不相关的记录,如查找 "%a%" 时,返回的可能有中文字符,
- 我用 ip=Request.ServerVariables ("
- 大家知道,Microsoft为了更好地预防恶意用户和攻击者的攻击,在默认情况下,没有将 IIS6.0 安装到 Windows Server
- 最近Google Code推出了一个面向网站开发者的 * Google DocType。它来自于网站开发者同时又面
- 没什么实际用途,纯属消遣Quick Click<html><head><title>Quick_Clic
- 1、登录SMTP服务器首先使用网上的方法(这里使用163邮箱,smtp.163.com是smtp服务器地址,25为端口号):import s
- 在项目中遇到一情况让困扰了半天,同一张PNG8图片为何部份图标在IE6中消失呢?当时一度怀疑是cache或hosts问题反反复复开关浏览器结
- 我就废话不多说了,大家还是直接看代码吧~#!/usr/bin/env python# encoding: utf-8''
- 具体代码如下所示:<?php//在子类或类内部用“::”调用本类或父类时,不是静态调用方法,而是范围解析操作符。class Paren
- 一、Excel环境配置 服务器端的环境配置从参考资料上看,微软系列的配置应该都行,即:1.Win9x+PWS+Office2.Wi
- 初学者可以看看。在的img标签有两个属性分别为alt和title,对于很多初学者而言对这两个属性的正确使用都还抱有迷惑,当然这其中一部分原因
- 内置300余汉字点阵.纯ASP实现汉字验证码.不读数据库.多种属性自由调节,其中包括:生成的图片长和宽,字符数,背景显示效果(渐变,杂色,固
- 你是一位交互设计师吗?告诉我,你具体做些什么?我是做网站设计的?听起来不够专业。我是做网页设计的,听起来……你们是做界面的……恩,好吧,我勉
- 一段时间以来,发现有很多人XHTML都不会用,不光是普通的初学者,有的程序员都不是很清楚该怎么写这个XHTML,我这里呢算是把一些常见的应用