我們?cè)谧鼋涌谧詣?dòng)化測(cè)試的時(shí)候,經(jīng)常會(huì)碰到文件上傳接口
和文件下載接口
。
那么,文件接口跟普通接口有什么區(qū)別呢?又該如何實(shí)現(xiàn)呢?
〇、前言
文件上傳/下載接口
與普通接口
類似,但是有細(xì)微的區(qū)別。
如果需要發(fā)送文件到服務(wù)器,例如:上傳文檔、圖片、視頻等,就需要發(fā)送二進(jìn)制數(shù)據(jù),上傳文件一般使用的都是?Content-Type: multipart/form-data
?數(shù)據(jù)類型,可以發(fā)送文件,也可以發(fā)送相關(guān)的消息體數(shù)據(jù)。
反之,文件下載就是將二進(jìn)制格式的響應(yīng)內(nèi)容存儲(chǔ)到本地,并根據(jù)需要下載的文件格式來(lái)寫文件名,例如:F:/caituotuo-file.pdf。
一、文件上傳接口
1. 接口文檔
Request URL:/createfile
Request Method:POST
Content-Type:multipart/form-data
2. 代碼實(shí)現(xiàn)
(1)實(shí)現(xiàn)步驟:
-
構(gòu)造文件數(shù)據(jù),通過(guò)open()函數(shù)以二進(jìn)制方式打開文件
文件上傳接口參數(shù)與普通post請(qǐng)求一樣,需要寫成Key和Value模式,Key為參數(shù)名稱file(也是組件的name屬性),Value為一個(gè)元組(與普通接口不同的地方)
"file":?( ????"caituotuo-file.pdf",?#?元組第一個(gè)值為文件名稱,沒(méi)有則取None ????open(r"F:\caituotuo-file.pdf",?"rb"),?#?若第一個(gè)值非None,則取文件open打開的二進(jìn)制流,否則直接寫文件路徑,如"F:\caituotuo-file.pdf" ????"pdf"?#?文件類型 )
"file":?( ????None, ????"F:\caituotuo-file.pdf" )
-
構(gòu)造其他數(shù)據(jù)
{ ????"title":?"接口上傳的文件", ????"fileType":?"pdf" }
-
發(fā)送請(qǐng)求,將文件數(shù)據(jù)以 ?
files
?參數(shù)傳入,其他消息體數(shù)據(jù)通過(guò)?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?-*-
#?作者:愛吃 香菜
#?時(shí)間: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. 代碼實(shí)現(xiàn)
#?-*-?coding:utf-8?-*-
#?作者:愛吃 香菜
#?時(shí)間: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"獲取返回內(nèi)容
????????#?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()
以上,完。
腳踏實(shí)地,仰望星空,和小編一起學(xué)習(xí)軟件測(cè)試,升職加薪!
?
資源分享
下方這份完整的軟件測(cè)試視頻學(xué)習(xí)教程已經(jīng)上傳CSDN官方認(rèn)證的二維碼,朋友們?nèi)绻枰梢宰孕忻赓M(fèi)領(lǐng)取?【保證100%免費(fèi)】
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-493144.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-493144.html
到了這里,關(guān)于接口自動(dòng)化測(cè)試——文件上傳/下載的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!