最近很多同学都在问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代码如下:

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. Jmeter上传下载文件

    每次使用时都会忘记,此处是存储网路上通用的方式.   1.上传文件 记得勾选“use multipart/form-data for post”,表明此请求包含文件信息.在信息请求头中,需加入“Con ...

  2. rz和sz上传下载文件工具lrzsz

    ######################### rz和sz上传下载文件工具lrzsz ####################################################### ...

  3. linux上很方便的上传下载文件工具rz和sz

    linux上很方便的上传下载文件工具rz和sz(本文适合linux入门的朋友) ##########################################################&l ...

  4. shell通过ftp实现上传/下载文件

    直接代码,shell文件名为testFtptool.sh: #!/bin/bash ########################################################## ...

  5. SFTP远程连接服务器上传下载文件-qt4.8.0-vs2010编译器-项目实例

    本项目仅测试远程连接服务器,支持上传,下载文件,更多功能开发请看API自行开发. 环境:win7系统,Qt4.8.0版本,vs2010编译器 qt4.8.0-vs2010编译器项目实例下载地址:CSD ...

  6. linux下常用FTP命令 上传下载文件【转】

    1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...

  7. C#实现http协议支持上传下载文件的GET、POST请求

    C#实现http协议支持上传下载文件的GET.POST请求using System; using System.Collections.Generic; using System.Text; usin ...

  8. HttpClient上传下载文件

    HttpClient上传下载文件 java HttpClient Maven依赖 <dependency> <groupId>org.apache.httpcomponents ...

  9. 初级版python登录验证,上传下载文件加MD5文件校验

    服务器端程序 import socket import json import struct import hashlib import os def md5_code(usr, pwd): ret ...

随机推荐

  1. 应用安全-Web安全-SSRF攻防

    原理 服务器: IP:.XX.191.14 nc -l -p 客户端: http://xx.map.xx.com/maps/services/thumbnails?width=215&heig ...

  2. Windows操作系统命令整理-Win7

    注册表(Windows95以后Windows系统版本,windows server中regedit和regedit32合并为一个新的编辑器,名称仍然是regedit) HKEY_LOCAL_MACHI ...

  3. WebServiceBinding属性

    属性 类型 读 写 说明 ConformsTo Wsiprofiles x x 绑定需要遵守的WS-I标准 EmitConformanceClaims Boolean     如果为true,当WSD ...

  4. [Python3 练习] 002 温度转换2

    题目:温度转换 II (1) 描述 温度的刻画有两个不同体系:摄氏度 (Celsius) 和华氏度 (Fabrenheit) 请编写程序将用户输入的华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度 转 ...

  5. 安装testlink时,出现”testlink/gui/templates_c、testlink/logs、testlink/upload_area不可写‘解决办法

    在Testlink安装到最后,'...目录是否可写(由于用户运行webserver进程)’过程出错,如下图所示 1.首先想到/var/www/html/testlink/gui/templates_c ...

  6. Java-集合第二篇Set集合

    1.Set集合与Collection基本相同,没有提供额外的方法.实际上Set就是Collection,只是行为略有所不同(Set不允许有重复元素). Set下的HashSet.TreeSet.Enu ...

  7. 用js代码打开新场口 关于window.open()方法的参数

    应用window.open,可以弹出新窗口, window.open('path', 'windowName', 'windowSetting' ) window.open("./a.htm ...

  8. HDU 1174 题解(计算几何)

    题面: 爆头 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  9. arcgis server地图服务切片(10.4.1)

    首先要发布地图服务,过程略 首先,熟悉arcgis server的人应该知道,最直接的切片方式操作方法是在“服务属性”中设置切片,但这种方式可操作性太差,很多设置无法实现,因此不推荐 下面正式开始,打 ...

  10. wikioi 2144 分步二进制枚举+map记录

    题目描写叙述 Description 有n个砝码,如今要称一个质量为m的物体,请问最少须要挑出几个砝码来称? 注意一个砝码最多仅仅能挑一次 输入描写叙述 Input Description 第一行两个 ...