Python接口测试中,如何实现文件上传功能实例分析?

2026-05-25 00:291阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1032个文字,预计阅读时间需要5分钟。

Python接口测试中,如何实现文件上传功能实例分析?

在接口测试中,上传文件的测试场景非常常见。例如:上传头像(图片)、上传文件、上传视频等。以下以一个上传图片的例子,讲解如何通过Python测试上传文件接口。

首先,我们需要使用requests库来发送HTTP请求。以下是上传图片接口的测试步骤:

1. 导入requests库。

2.设置请求的URL和参数。

3.准备要上传的图片文件。

4.发送POST请求,并附带文件。

5.检查响应状态码和返回结果。

Python接口测试中,如何实现文件上传功能实例分析?

下面是具体的代码实现:

python

import requests

设置请求的URL和参数url='http://example.com/upload'params={'file': 'image.png'}

准备要上传的图片文件files={'file': ('image.png', open('image.png', 'rb'), 'image/png')}

发送POST请求,并附带文件response=requests.post(url, params=params, files=files)

检查响应状态码和返回结果if response.status_code==200: print('上传成功') print('返回结果:', response.text)else: print('上传失败') print('错误信息:', response.text)

在上面的代码中,我们首先设置了请求的URL和参数,然后准备了一个名为'image.png'的图片文件,并使用`open()`函数以二进制读取模式打开它。在`files`字典中,我们将文件名、文件对象和文件类型作为键值对传递给requests库。

发送POST请求后,我们检查响应状态码。如果状态码为200,表示上传成功,并打印返回结果。如果状态码不是200,表示上传失败,并打印错误信息。

接口测试中,上传文件的测试场景非常常见。例如:上传头像(图片)、上传文件、上传视频等。下面以一个上传图片的例子为大家讲解如何通过 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='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='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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计1032个文字,预计阅读时间需要5分钟。

Python接口测试中,如何实现文件上传功能实例分析?

在接口测试中,上传文件的测试场景非常常见。例如:上传头像(图片)、上传文件、上传视频等。以下以一个上传图片的例子,讲解如何通过Python测试上传文件接口。

首先,我们需要使用requests库来发送HTTP请求。以下是上传图片接口的测试步骤:

1. 导入requests库。

2.设置请求的URL和参数。

3.准备要上传的图片文件。

4.发送POST请求,并附带文件。

5.检查响应状态码和返回结果。

Python接口测试中,如何实现文件上传功能实例分析?

下面是具体的代码实现:

python

import requests

设置请求的URL和参数url='http://example.com/upload'params={'file': 'image.png'}

准备要上传的图片文件files={'file': ('image.png', open('image.png', 'rb'), 'image/png')}

发送POST请求,并附带文件response=requests.post(url, params=params, files=files)

检查响应状态码和返回结果if response.status_code==200: print('上传成功') print('返回结果:', response.text)else: print('上传失败') print('错误信息:', response.text)

在上面的代码中,我们首先设置了请求的URL和参数,然后准备了一个名为'image.png'的图片文件,并使用`open()`函数以二进制读取模式打开它。在`files`字典中,我们将文件名、文件对象和文件类型作为键值对传递给requests库。

发送POST请求后,我们检查响应状态码。如果状态码为200,表示上传成功,并打印返回结果。如果状态码不是200,表示上传失败,并打印错误信息。

接口测试中,上传文件的测试场景非常常见。例如:上传头像(图片)、上传文件、上传视频等。下面以一个上传图片的例子为大家讲解如何通过 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='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='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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。