• 学习笔记-Jmeter进行文件上传、下载


    一、Jmeter请求上传文件接口

          例如,有个上传文件的接口,接口文档如下图:

    然后编写脚本,按照前面文章中写的Http接口测试流程,添加一个线程组,在线程组里面添加一个http请求,请求方式、请求路径、再选择需要上传的文件,具体步骤如下:

    1、添加线程组 (右击 测试计划-添加-Threads(Users)-线程组)               

    2、添加一个http请求(右击 线程组-添加-Sampler-HTTP请求)           

    3、填写Http请求中的url和路径,以及要上传的文件  

    4、添加一个察看结果树(右击 线程组-添加-监听器-察看结果树),查看接口调用结果

    二、Jmeter利用beanshell实现文件下载 

    下载文件,就是把某个文件保存到本地。所以在百度上找了一个图片的url :https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1521452329967&di=9072d7127e431f505bdabfabed39d730&imgtype=0&src=http%3A%2F%2Fimg1.ph.126.net%2FfHIKUCeB4M8HKg0VskWh9A%3D%3D%2F6597936181820465731.jpg

    然后编写脚本,按照前面文章中写的Http接口测试流程,添加一个线程组,在线程组里面添加一个http请求,请求方式(因为是获取数据,所以是get请求)、写好下载的地址,由于要把文件保存到咱们本地的,jmeter没有现成的东西可以用,需要写beanshell来实现,把文件保存到本地,具体步骤如下:

    1、添加线程组 (右击 测试计划-添加-Threads(Users)-线程组)               

    2、添加一个http请求(右击 线程组-添加-Sampler-HTTP请求)           

    3、填写Http请求中的url和路径

    4、添加BeanShell Sampler(右击 线程组-添加-Sampler-BeanShell Sampler)  

    5、编写BeanShell Sample 代码如下:

    import java.io.*;
     
    byte[] result = prev.getResponseData();  //这个是获取到请求返回的数据,prev是获取上个请求的返回
     
    String file_name = "E:\PIC\baidu.jpg"; //代表存放文件的位置和文件名, 相对路径的话会保存到bin 目录下,且保存的文件名的后缀与原图一致
     
    File file = new File(file_name);
     
    FileOutputStream out = new FileOutputStream(file);
     
    out.write(result);
     
    out.close();

    6、添加一个察看结果树(右击 线程组-添加-监听器-察看结果树),查看接口调用结果

     再在电脑上打开 BeanShell中写的存放文件的路径,查看下载的图片,与找的原图(上面察看结果数HTTP请求响应数据里的图片)一致

  • 相关阅读:
    ingress-nginx-controller 504 gateway time-out 问题
    ansible的shell模板使用awk包含引号的问题
    Python selenium模块报错解决
    redis密码破解(multiprocessing的Pool多进程模式)-join方法小坑
    redis密码破解(Python使用multiprocessing分布式进程)
    redis密码破解(python使用redis模块)
    redis密码破解(python使用socket模块)
    修改云主机快照方式为live snapshot
    虚拟机重启错误,libvirtError:internal error:process exited while connecting to monitor
    如何解决高并发秒杀的超卖问题
  • 原文地址:https://www.cnblogs.com/fenggf/p/8601716.html
Copyright © 2020-2023  润新知