最近很多同学都在问jmeter上传、下载文件的脚本怎么做,要压测上传、下载文件的功能,脚本怎么做,网上查了都说的很含糊,这次呢,咱们就好好的把jmeter的上传下载文件好好缕缕,都整明白了,怎么个过程,怎么做。

一、上传/下载的过程。

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

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

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


二、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代码如下:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
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 运行脚本,查看结果

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

 

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

  

 

上传文件和下载文件就是操作就是如此的简单,动动小手快去试试吧。

         

 

Jmeter骚操作—文件上传、下载的更多相关文章

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

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

  2. 性能测试七:jmeter进阶之文件上传下载、定时器

    一.上传下载 上传: 1,POST请求,勾选 use …for post 2,同请求一起发送文件里,填写文件名称,参数名称 3,MIME类型: application/octet-stream(非必须 ...

  3. Java 客户端操作 FastDFS 实现文件上传下载替换删除

    FastDFS 的作者余庆先生已经为我们开发好了 Java 对应的 SDK.这里需要解释一下:作者余庆并没有及时更新最新的 Java SDK 至 Maven 中央仓库,目前中央仓库最新版仍旧是 1.2 ...

  4. Struts的文件上传下载

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

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

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

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

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

  7. SpringMVC文件上传下载

    在Spring MVC的基础框架搭建起来后,我们测试了spring mvc中的返回值类型,如果你还没有搭建好springmvc的架构请参考博文->http://www.cnblogs.com/q ...

  8. salesforce 零基础学习(四十二)简单文件上传下载

    项目中,常常需要用到文件的上传和下载,上传和下载功能实际上是对Document对象进行insert和查询操作.本篇演示简单的文件上传和下载,理论上文件上传后应该将ID作为操作表的字段存储,这里只演示文 ...

  9. Retrofit2文件上传下载及其进度显示

    序 前面一篇文章介绍了Retrofit2的基本使用,这篇文章接着介绍使用Retrofit2实现文件上传和文件下载,以及上传下载过程中如何实现进度的显示. 文件上传 定义接口 1 2 3 @Multip ...

随机推荐

  1. 忘记root密码怎么办-单用户模式修改root密码

    忘记root密码怎么办-单用户模式修改root密码================================= 1,开机3秒内按下向下的方向键,目的是为了不让它进入系统,而是停留在开机界面. 2 ...

  2. python入门:1-99所有数的和的等式

    #!/usr/bin/env python # -*- coding:utf-8 -*- #1-99所有数的和的等式 #start(开始,译音:思达二测)sum(合计,译音:桑木)temp(临时雇员, ...

  3. CSS基础:block,inline和inline-block

    css的display属性是前端开发中非常常见的属性,本文简单介绍下其中比较常用的属性值,即block.inline和inline-block. HTML组件中呈现一片空白区域的组件都可当盒模型(bo ...

  4. GPIO程序在PC上的模拟学习

    #include <stdio.h> #include <malloc.h> #include <memory.h> typedef struct gpio { i ...

  5. svn 命令管理

    有时候测试环境会让更新到指定版本,用以验证问题或者其他原因 具体方法有两种: 方法1: svn merge回滚 1) 先 svn up,保证更新到最新的版本,如2106: 2) 然后用 svn log ...

  6. Python之PyFrameObject动态执行环境

    Python虚拟机中的执行环境 Python的虚拟机实际上是在模拟操作系统运行可执行文件的过程,首先,我们先来讲一下普通的x86的机器上,可执行文件是以一种什么方式运行的. 图1-1 图1-1所展示的 ...

  7. Notepad++ 使用正则表达式查找替换字符串

        最近在改一些别人写的PHP代码,由于之前的代码可维护性比较差,因此工作量比较多,因此想找一些高效的方式改一些有规律的代码. 比如: 我想将一些类似$rowss[MaxGetCash_num], ...

  8. python - web自动化测试 - 文件上传操作

    # 12. 上传操作## (1)如果是input可以直接输入路径的,直接使用send_keys输入路径# (2)非input标签的,需要借助第三方工具:# A. AutoIt : 调用其生成的au3或 ...

  9. 为Anaconda添加新的源

    为Anaconda添加新的源 在cmd中输入以下内容即可, 清华的源,速度非常快 conda config --add channels https://mirrors.tuna.tsinghua.e ...

  10. web结对项目

    一.Coding.Net项目地址:        https://git.coding.net/verde/Pair_Work.git 二.对接口进行的设计 看教科书和其它资料中关于Informati ...