在日常被測系統(tǒng)中,我們會(huì)經(jīng)常遇到文件上傳的操作,那么針對(duì)這樣的接口,使用接口測試測試工具Jmeter需要怎么操作呢,今天就來帶大家一起實(shí)際操作一下
前情描述:
因?yàn)槭鞘纠?,所以在本地用Flask定義好上傳接口,服務(wù)也是起在本地,以下是接口實(shí)現(xiàn)代碼
UPLOAD_FOLDER = 'upload'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
basedir = os.path.abspath(os.path.dirname(__file__))
ALLOWED_EXTENSIONS = set(['txt', 'png', 'jpeg','jpg', 'xls', 'JPG', 'PNG', 'xlsx', 'gif', 'GIF', 'doc', 'docx', 'ppt', 'pptx'])
# upload file
@app.route('/uploadfile', methods=['POST'], strict_slashes=False)
def api_upload():
file_dir = os.path.join(basedir, app.config['UPLOAD_FOLDER'])
if not os.path.exists(file_dir):
os.makedirs(file_dir)
f = request.files['file'] # get the file name
if f and allowed_file(f.filename): # Verify the file type
fname = secure_filename(f.filename)
ext = fname.rsplit('.', 1)[1]
unix_time = time.time()
new_filename = str(unix_time) + '.' + ext
f.save(os.path.join(file_dir, new_filename))
print(f'{f.filename} upload success!')
return jsonify({'code': 200, 'result': 'success', 'msg': f'file {f.filename} upload success'})
else:
print(f'{f.filename} upload failed!')
return jsonify(
{'code': 500, 'result': 'failed', 'msg': f'file {f.filename} upload fail, please check the file type'})
-
ALLOWED_EXTENSIONS:允許上傳的文件格式
上傳文件步驟
Step1.抓取文件上傳的接口相關(guān)參數(shù)
1. 啟動(dòng)示例程序,選擇要上傳的文件,點(diǎn)擊上傳

image
2.通過抓包工具抓取接口相關(guān)信息

image
這里幾個(gè)參數(shù)要關(guān)注下
-
URL:后端接口地址 -
Method:上傳文件的請(qǐng)求方式一般的post -
Content-Type:文件上傳的類型,接口約定俗成的就是multipart/form-data
Step2:把抓到的接口用Jmter的請(qǐng)求的方式上傳
打開Jmeter壓測工具,創(chuàng)建對(duì)應(yīng)的線程組,取樣器
按照我們剛剛抓取的接口參數(shù),完善取樣器參數(shù)

image
- IP:因?yàn)槭纠绦蚍?wù)起在本地,所以寫localhost,或者127.0.0.1
- port:端口號(hào)9091
- path:接口路徑/uploadfile
-
參數(shù)這一列選擇文件上傳:Files Upload
- File path :即是本地要上傳的文件的路徑
-
parameter Name:填寫file,如示例程序,為后端的獲取文件時(shí)定義的名字
f = request.files['file'] - MIME Type88:填寫抓包獲取的multipart/form-data
Step3.點(diǎn)擊發(fā)送,就可以看到結(jié)果樹顯示的正常結(jié)果

image
這樣,一個(gè)正常使用Jmeter上傳文件到接口就算完成了