zoukankan      html  css  js  c++  java
  • Jmeter之文件上传

    在日常被测系统中,我们会经常遇到文件上传的操作,那么针对这样的接口,使用接口测试测试工具Jmeter需要怎么操作呢,今天就来带大家一起实际操作一下

    前情描述:

    因为是示例,所以在本地用Flask定义好上传接口,服务也是起在本地,以下是接口实现代码

     1 UPLOAD_FOLDER = 'upload'
     2 app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
     3 basedir = os.path.abspath(os.path.dirname(__file__))
     4 ALLOWED_EXTENSIONS = set(['txt', 'png', 'jpeg','jpg', 'xls', 'JPG', 'PNG', 'xlsx', 'gif', 'GIF', 'doc', 'docx', 'ppt', 'pptx'])
     5 # upload file
     6 @app.route('/uploadfile', methods=['POST'], strict_slashes=False)
     7 def api_upload():
     8     file_dir = os.path.join(basedir, app.config['UPLOAD_FOLDER'])
     9     if not os.path.exists(file_dir):
    10         os.makedirs(file_dir)
    11     f = request.files['file']  # get the file name
    12 
    13     if f and allowed_file(f.filename):  # Verify the file type
    14         fname = secure_filename(f.filename)
    15         ext = fname.rsplit('.', 1)[1]
    16         unix_time = time.time()
    17         new_filename = str(unix_time) + '.' + ext
    18         f.save(os.path.join(file_dir, new_filename))
    19         print(f'{f.filename} upload success!')
    20         return jsonify({'code': 200, 'result': 'success', 'msg': f'file {f.filename} upload success'})
    21     else:
    22         print(f'{f.filename} upload failed!')
    23         return jsonify(
    24             {'code': 500, 'result': 'failed', 'msg': f'file {f.filename} upload fail, please check the file type'})
    • ALLOWED_EXTENSIONS:允许上传的文件格式

    Step1.抓取文件上传的接口相关参数

    1. 启动示例程序,选择要上传的文件,点击上传

     2.通过抓包工具抓取接口相关信息

     这里几个参数要关注下

    • URL:后端接口地址
    • Method:上传文件的请求方式一般的post
    • Content-Type:文件上传的类型,接口约定俗成的就是multipart/form-data

    Step2:把抓到的接口用Jmter的请求的方式上传

    1.打开Jmeter压测工具,创建对应的线程组,取样器

    2.按照我们刚刚抓取的接口参数,完善取样器参数

    • IP:因为示例程序服务起在本地,所以写localhost,或者127.0.0.1
    • port:端口号9091
    • path:接口路径/uploadfile
    • 参数这一列选择文件上传:Files Upload
      • File path :即是本地要上传的文件的路径
      • parameter Name:填写file,如示例程序,为后端的获取文件时定义的名字 f = request.files['file'] 
      • MIME Type:填写抓包获取的multipart/form-data

          

    3.点击发送,就可以看到结果树显示的正常结果

    这样,一个正常使用Jmeter上传文件到接口就算完成了

  • 相关阅读:
    C#——面向对象,常用类
    C#——基础
    C#——winform
    Oracle——PL/SQL,存储过程/函数,java连接Oracle操作存储过程/函数,触发器
    Oracle——数据处理(增删改查),创建表与管理表,视图,索引,同义词
    Oracle——集合运算
    PoisonTap
    在Ubuntu上安装LAMP(Apache、Mysql、Php)
    "Unable to locate package lrzsz"的解决办法
    OtterCTF
  • 原文地址:https://www.cnblogs.com/clpin/p/12527385.html
Copyright © 2011-2022 走看看