一、上传/下载的过程。

       上传的过程就是你把你本地的文件,扔到服务器上的这么一个过程。

       下载呢,就是把服务器上的文件拿过来,然后存到你本地的这么一个过程。

       总结一下呢,上传就是你给服务器一文件,下载呢就是你从服务器上拿一文件。


二、jmeter做上传的脚本。

     咱们先把这个过程了解了之后就开始做脚本,上面说了,上传是一个像服务器发送数据的,一般发送数据用post请求。

    这里用的jmeter是3.2的版本。

   2.1  准备工作

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

     

 

            打码的是我们公司接口的域名,我这里在本地启动的,ip是127.0.0.1 端口号是 8888    

            有了这个上传文件的接口,也知道他的参数了,咱们就可以做脚本了。

 

   2.2 编写脚本流程

   首先添加一个线程组,然后在线程组里面添加一个http请求,因为是发送数据,所有是post请求,写好上传的地址,然后写好文件路径

              1、添加线程组 :右键测试计划,添加-Threads(Users)-线程组;

              2、添加一个http请求:右键线程组,添加-Sampler-HTTP请求;

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

              4、添加一个查看结果树,查看接口调用结果。右键线程组,添加-监听器-查看结果树;

             

   2.3 脚本实例

       协议:http
       服务器名称:127.0.0.1

       端口号:8888
       请求类型:post

       路径:/file/upload

      body:要选files_upload这个tab页,写文件路径,和参数名

      下面是脚本截图:

     

     

    

       2.4 运行脚本,查看结果

          看下面的图,运行结果,接口返回成功,再去服务端上传的目录下,看一下,到底有没有成功。

          

            

    看下面的图,服务端的files目录下已经有咱们刚才上传的文件了。

   

    jmeter上传文件就是这么简单啦,快试试吧。

 

三、jmeter下载文件。

     3.1 准备工作:

      下载文件呢,其实更简单,就是把一个文件保存到本地就可以,我现在在百度上找了一个图片的url,咱们下载到本地。

      图片的url是:http://a.hiphotos.baidu.com/image/pic/item/4b90f603738da977b1e8c6c7ba51f8198718e313.jpg

   

    3.2 编写脚本流程

      首先添加一个线程组,然后在线程组里面添加一个http请求,因为是获取数据,所有是get请求,写好下载的地址

              1、添加线程组 :右键测试计划,添加-Threads(Users)-线程组;

              2、添加一个http请求:右键线程组,添加-Sampler-HTTP请求;

              3、写好http请求中的url和路径;

        不过这个是下载脚本,下载的话,有一步是要把文件保存到咱们本地的,这个jmeter没有现成的东西可以用,就得咱们自己写beanshell来实现,把文件保存到本地。

        当然你如果要写beanshell的话,你得会它的语法,它就是java写的。不过也不用愁不会写java咋整,这个保存文件的是死格式就这么写,记住就行了,需要下载的时候复制过去就行。

              4、添加beanshell,获取到返回的文件内容,保存到一个文件里面。右键线程组,添加-Sampler-BeanShell Sampler,beanshell代码如下:

import java.io.*;
 
byte[] result = prev.getResponseData();  //这个是获取到请求返回的数据,prev是获取上个请求的返回
 
String file_name = "C:\\Users\\bjniuhanyang\\Desktop\\BaiDu.jpg"; //代表存放文件的位置和文件名
 
File file = new File(file_name);
 
FileOutputStream out = new FileOutputStream(file);
 
out.write(result);
 
out.close();

              5、添加一个查看结果树,查看接口调用结果。右键线程组,添加-监听器-查看结果树;

   3.3 脚本实例

       协议:http
       服务器名称:a.hiphotos.baidu.com

       端口号:80 (提示,端口号默认是就是80,可以不用写哦)
       请求类型:get

       路径:/image/pic/item/4b90f603738da977b1e8c6c7ba51f8198718e313.jpg

     脚本截图如下:

 

      下面这个是http请求里面的,也就是咱们获取图片的

      

 

      下面这个是beanshell里面的内容,也就是咱们保存文件的操作。

     

      2.4 运行脚本,查看结果

          看下面的图,运行结果,已经可以看到刚才这张图片了,而且请求都是成功的。

 

  咱们再去桌面上看,文件已经存在桌面上了。

  

出处:https://www.cnblogs.com/sriba/p/8043294.html

转:Jmeter文件上传、下载的更多相关文章

  1. jm解决乱码问题-参数化-数据库操作-文件上传下载

    jm解决乱码问题-参数化-数据库操作-文件上传下载 如果JM出果运行结果是乱码(解决中文BODY乱码的问题) 找到JM的安装路径,例如:C:\apache-jmeter-3.1\bin 用UE打开jm ...

  2. Struts的文件上传下载

    Struts的文件上传下载 1.文件上传 Struts2的文件上传也是使用fileUpload的组件,这个组默认是集合在框架里面的.且是使用拦截器:<interceptor name=" ...

  3. Android okHttp网络请求之文件上传下载

    前言: 前面介绍了基于okHttp的get.post基本使用(http://www.cnblogs.com/whoislcj/p/5526431.html),今天来实现一下基于okHttp的文件上传. ...

  4. Selenium2学习-039-WebUI自动化实战实例-文件上传下载

    通常在 WebUI 自动化测试过程中必然会涉及到文件上传的自动化测试需求,而开发在进行相应的技术实现是不同的,粗略可划分为两类:input标签类(类型为file)和非input标签类(例如:div.a ...

  5. 艺萌文件上传下载及自动更新系统(基于networkComms开源TCP通信框架)

    1.艺萌文件上传下载及自动更新系统,基于Winform技术,采用CS架构,开发工具为vs2010,.net2.0版本(可以很容易升级为3.5和4.0版本)开发语言c#. 本系统主要帮助客户学习基于TC ...

  6. 艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)

    艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定. 项 ...

  7. ssh框架文件上传下载

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. SpringMVC——返回JSON数据&&文件上传下载

    --------------------------------------------返回JSON数据------------------------------------------------ ...

  9. 【FTP】FTP文件上传下载-支持断点续传

    Jar包:apache的commons-net包: 支持断点续传 支持进度监控(有时出不来,搞不清原因) 相关知识点 编码格式: UTF-8等; 文件类型: 包括[BINARY_FILE_TYPE(常 ...

  10. NetworkComms 文件上传下载和客户端自动升级(非开源)

    演示程序下载地址:http://pan.baidu.com/s/1geVfmcr 淘宝地址:https://shop183793329.taobao.com 联系QQ号:3201175853 许可:购 ...

随机推荐

  1. 11.vim常用操作

    :set nu在命令模式下显示行号 进入输入模式 新增 (append) a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动. A:从光标所在列最後面的地方开始新增资料.   插入 ...

  2. 第十章 MIZ702 ZYNQ制作UBOOT固化程序

    10.0难度系数★☆☆☆☆☆☆ 10.1是什么是固化 我们前几章将的程序都是通过JTAG先下载bit流文件,再下载elf文件,之后点击Run As来运行的程序.JTAG的方法是通过TCL脚本来初始化P ...

  3. Secret的三种形式

    Secret ConfigMap这个资源对象是Kubernetes当中非常重要的一个对象,一般情况下ConfigMap是用来存储一些非安全的配置信息,如果涉及到一些安全相关的数据的话用ConfigMa ...

  4. 在javascript对象内搜索,貌似是一个新鲜的话题。

    为啥 也不为啥,因为没找到. 用途 也没啥用途,比如,在电影网站找到链接,在小说网站找到链接.二货同事写的复杂对象.等等吧.反正要搜索就对了. 目标 在对象内,无论多少层,找到关键字. 关键字可能的位 ...

  5. Install CUDA 6.0 on Ubuntu 14.04 LTS

    Ubuntu 14.04 LTS is out, loads of new features have been added. Here are some procedures I followed ...

  6. vue中的绑定class和微信小程序中的绑定class的区别

    微信小程序 小程序里面的class与style绑定,遵循HTML特性绑定,有关于HTML绑定.在进行class与style绑定时,可以直接绑定,也可以带上逻辑与,或者三元运算进行条件控制 JS dat ...

  7. kalilinux 渗透测试笔记

    声明:本文理论大部分是苑房弘kalilinux渗透测试的内容 第五章:基本工具 克隆网页,把gitbook的书记下载到本地 httrack "http://www.mybatis.org/m ...

  8. 使用postman修改SAP Marketing Cloud contact主数据

    Marketing Cloud里的contact主数据,创建成功后也不是所有字段都能够被修改.在Personal data区域的字段是可以被修改的. 比如我在"客户属性"字段里维护 ...

  9. Celery 初步使用心得

    一. 基本介绍 Celery是一个专注于实时处理和任务调度的分布式任务队列.所谓任务就是消息,消息中的有效载荷中包含要执行任务需要的全部数据. 使用Celery常见场景: Web应用.当用户触发的一个 ...

  10. 【jekins】jenkins构建触发

    一.定时构建的语法 * * * * *(五颗星,中间用空格隔开)第一颗*表示分钟,取值0~59第二颗*表示小时,取值0~23第三颗*表示一个月的第几天,取值1~31第四颗*表示第几月,取值1~12第五 ...