Jmeter和LR上传文件和下载

  背景:
  在某个申请业务中,需要上传附件文件,然后才能提交该申请
  遇到的问题:
  1,  在使用Jmeter或者LR进行录制时,无法录制到上传文件的请求,只能通过Fiddler能查看到该请求
  2,  因为录制不下来,只能手工构造,但网上相关的材料太少。
  所以在这里整理备忘
  Fiddler录制得到的请求的Header和Body如下面的两个截屏
  body
  截图如上,注意Header截图【Content-Type:multipart/form-data;boundary=----------cH2GI3Ef1gL6Ij5cH2gL6Ij5ei4gL6】和Body截图
  每一个“-----------------------------”为分隔符,代表一个表单域;
  最后一个“----------cH2GI3Ef1gL6Ij5cH2gL6Ij5ei4gL6--”(以“--”结尾)分隔符为表单域结束边界。
  由此可以看到我得到的这个请求,POST data中共有四个表单域,最后一个即包含了name=”Filedate”(这个name的值可以自己定),filename=”ff.txt”,下图中红框为ff.txt实际上传的文件内容
 
 
Server端的代码如下
  
 
一,Jmeter
需要注意
  1,请求类型为Post
  2,要勾选 Use multipart/form-data for POST,否则request中将不包含上传的文件
  3,  MIME类型为application/octet-stream
 
 
二,LoadRunner

lr_start_transaction("upload");
web_reg_save_param("attachmentId1",
"LB/IC=attachmentId\":\"",
"RB/IC=\"",
"Ord=1",
"Search=ALL",
LAST);
web_submit_data("upload.text",
"Action=http://192.168.0.1:8000/fileUpload/upload.text",
"Method=POST",
"EncType=multipart/form-data",
"RecContentType=text/plain",
"Referer=",
"Snapshot=t230.inf",
"Mode=HTTP",
ITEMDATA,
"Name=Filename","Value=Attachment.doc", ENDITEM,
"Name=attachmentType","Value=合同正本", ENDITEM,
"Name=Filedata","Value=Attachment.doc", "File=Yes", ENDITEM,
"Name=Upload","Value=Submit Query", ENDITEM,
LAST);
lr_end_transaction("upload",LR_AUTO);
  LoadRunner的下载
lr_start_transaction("downloadApproval");
web_reg_save_param("FileName",
"LB=filename=",
"RB=.pdf",
"Ord=1",
LAST);
web_url("generateApproval.html",
"URL=http:// 192.168.0.1:8000/xx/generateApproval.html?id={PersionId}",
"Resource=1",
"RecContentType=application/x-msdownload",
"Referer=http:// 192.168.0.1:8000/xx/viewWorkflow.html?id={PersionId}",
"Snapshot=t60.inf",
LAST);
lr_message("!!filename is%s.xml",lr_eval_string("{FileName}"));
//获取二进制文件类型的文件大小
flen =web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);
lr_message("Size:%d",flen);
lr_end_transaction("downloadApproval",LR_AUTO);

Jmeter和LR上传文件和下载的更多相关文章

  1. 【转】Jmeter和LR上传文件和下载

    背景: 在某个申请业务中,需要上传附件文件,然后才能提交该申请 遇到的问题: 1,  在使用Jmeter或者LR进行录制时,无法录制到上传文件的请求,只能通过Fiddler能查看到该请求 2,  因为 ...

  2. Java ftp 上传文件和下载文件

    今天同事问我一个ftp 上传文件和下载文件功能应该怎么做,当时有点懵逼,毕竟我也是第一次,然后装了个逼,在网上找了一段代码发给同事,叫他调试一下.结果悲剧了,运行不通过.(装逼失败) 我找的文章链接: ...

  3. ie8 ajaxSubmit 上传文件提示下载

    转载 解决ie下ajaxsubmit上传文件提示下载文件问题 主要是应为放回类型为json,返回text/html

  4. Loadrunner上传文件与下载文件脚本

    Loadrunner上传文件与下载文件脚本 一. 上传脚本 Action() { int uploadImgStatus = 0; //获取上传产品图ID web_reg_save_param_ex( ...

  5. Delphi阿里云对象存储OSS【支持上传文件、下载文件、删除文件、创建目录、删除目录、Bucket操作等】

    作者QQ:(648437169) 点击下载➨Delphi阿里云对象存储OSS             阿里云api文档 [Delphi阿里云对象存储OSS]支持 获取Bucket列表.设置Bucket ...

  6. C# 应用 - 使用 HttpClient 发起上传文件、下载文件请求

    1. 示例代码 using System; using System.IO; using System.Net.Http; /// <summary> /// 下载文件 /// </ ...

  7. [转]httpclient 上传文件、下载文件

    用httpclient4.3 post方式推送文件到服务端  准备:httpclient-4.3.3.jar:httpcore-4.3.2.jar:httpmime-4.3.3.jar/** * 上传 ...

  8. tp3.2 上传文件及下载文件

    公共方法 UploadFile.class.php() // 开始 , , , ,];];,; ;; ::::::;,) {//文件上传失败 //捕获错误代码$this->error($file ...

  9. .Net 上传文件和下载文件

    一.上传文件 1.普通的form表单提交 注意点: 请求方式必须为Post. form表单里必须设置enctype属性(enctype = "multipart/form-data" ...

随机推荐

  1. 互斥锁 pthread_mutex_init()函数

    Linux下为了多线程同步,通常用到锁的概念.posix下抽象了一个锁类型的结构:ptread_mutex_t.通过对该结构的操作,来判断资源是否可以访问.顾名思义,加锁(lock)后,别人就无法打开 ...

  2. Spring @Transactional注解不回滚不起作用无效

    原文地址:http://www.cnblogs.com/wuxiaofeng/p/6819209.html   这几天在项目里面发现我使用@Transactional之后,抛了异常居然不回滚.后来终于 ...

  3. 让网页的title动起来

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  4. 网上整理的jQuery插件开发教程

    jQuery插件的开发包括两种:一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级别 ...

  5. 微信小程序开发教程(七)逻辑层——.js详解

    逻辑层,是事务逻辑处理的地方.对于小程序而言,逻辑层就是.js脚本文件的集合.逻辑层将数据进行处理后发送给视图层,同时接收视图层的事件反馈. 微信小程序开发框架的逻辑层是由JavaScript编写.在 ...

  6. url添加时间戳

    http://blog.csdn.net/qq_36769100/article/details/54564784 URL后面添加随机数通常用于防止客户端(浏览器)缓存页面. 浏览器缓存是基于url进 ...

  7. 24、List三个子类的特点

    List的三个子类的特点 因为三个类都实现了List接口,所以里面的方法都差不多,那这三个类都有什么特点呢? ArrayList:底层数据结构是数组,查询快,增删慢.线程不安全,效率高. Vector ...

  8. 22、Vector简介

    Vector是在jdk1.0版本中就存在的,当时的集合体系还没有现在这么多,在jdk1.2中Vector才实现了Collection接口,不过随着jdk的不断更新,这个类已经逐渐被ArrayList所 ...

  9. 【译】第六篇 SQL Server代理深入作业步骤工作流

    本篇文章是SQL Server代理系列的第六篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.每个作业步骤在技术 ...

  10. Linux/Unix系统编程手册 第二章:基本概念

    本章预热与后续系统编程有关的概念. 术语“操作系统”通常包含2种含义:一是指完整的软件包,包括管理计算机资源的核心组件,已经附带的标准软件:二是独指管理硬件的内核. 内核具有诸多概功能,包括: 进程管 ...