Python接口測試文件上傳實例解析
接口測試中,上傳文件的測試場景非常常見。例如:上傳頭像(圖片)、上傳文件、上傳視頻等。下面以一個上傳圖片的例子為大家講解如何通過 python 測試上傳文件接口。
首先通過抓包分析上傳文件接口的請求參數(shù):

下面是上傳文件接口腳本。把目標文件以open打開,然后存儲到變量file。并且使用files參數(shù)指明請求的參數(shù)名稱、上傳文件的類型、以及上傳文件的路徑。

這里注意:content-type參數(shù),如果我們通過form-data的方式上傳文件,我們發(fā)送post請求的時候,headers這個參數(shù)中一定不能要包括這個值,,requests庫會幫忙添加這個元素,加了可能會報錯。
代碼實現(xiàn):
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數(shù)據(jù)類型
json={"code":code,"deviceId":"5de548ad0e268bc0","deviceName":"HWNXT","mobile":mobile,"mobilePrefix":"63","version":"39"} #請求數(shù)據(jù)
r=requests.post(url,headers=headers,json=json) #發(fā)送請求
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} #請求頭信息關聯(lián)token。不需要賦值Content-Type,requests庫會幫忙添加這個元素,加了可能會報錯。
file_data={'file':(filename,open(file_path,'rb'),'image/jpeg')} #重點:上傳文件請求數(shù)據(jù)。
r=requests.post(url=url,headers=headers,files=file_data) #發(fā)送請求
print(r.json()) #打印響應結果
if __name__ == '__main__':
m=marketCreate()
# 測試,輸入手機號、文件地址、文件名稱信息;
m.uploadimages(mobile='639266558329',file_path='D:\pyCharm_work\cmkjProject\data\market.jpg',filename='123456.jpg')
執(zhí)行結果:
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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
利用python腳本提取Abaqus場輸出數(shù)據(jù)的代碼
這篇文章主要介紹了利用python腳本提取Abaqus場輸出數(shù)據(jù),利用python腳本對Abaqus進行數(shù)據(jù)提取時,要對python腳本做前步的導入處理,本文通過實例代碼詳細講解需要的朋友可以參考下2022-11-11
詳解Python中數(shù)據(jù)處理的方法總結及實現(xiàn)
數(shù)據(jù)增強作為前處理的關鍵步驟,在整個計算機視覺中有著具足輕重的地位。本文為大家總結了Python中數(shù)據(jù)處理的方法及實現(xiàn),需要的可以參考一下2022-09-09
Python機器學習iris數(shù)據(jù)集預處理和模型訓練方式
iris數(shù)據(jù)集包含150個樣本,每個樣本有4個特征及其類別信息,本文介紹了iris數(shù)據(jù)集的基本操作和如何使用knn模型進行花卉種類預測,是機器學習中的經典案例,適用于監(jiān)督式學習2024-10-10
基于sklearn實現(xiàn)Bagging算法(python)
這篇文章主要為大家詳細介紹了基于sklearn實現(xiàn)Bagging算法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07
Python利用itchat庫向好友或者公眾號發(fā)消息的實例
今天小編就為大家分享一篇Python利用itchat庫向好友或者公眾號發(fā)消息的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02

