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. 《剑指offer》 面试题53 :正则表达式匹配 Java

    引言:这道题情况比较复杂,边界条件较多,为了便于以后复习,整理一下.另外,由于C语言和Java对于字符串的操作存在不一样的地方,代码也存在改动. 题目:请实现一个函数用来匹配包含'.'和'*'的正则表 ...

  2. 科学计算三维可视化---Traits(Event和button属性)

    Event和button属性 是两个专门用于处理事件的change属性 Event属性和其他Trait属性不一样 Button属性是由Event属性继承而来的 Event监听 from traits. ...

  3. mysql数据库脚本改为oracle脚本

    前段时间公司项目数据库需要从mysql转为oracle,所以需要修改下原有的mysql脚本. 有两种方式:第一种,使用工具进行两种数据库的转换.第二种,手动修改数据库脚本. 第二种方法很笨,但能学习下 ...

  4. Codeforces Round #476 (Div. 2) [Thanks, Telegram!] C

    http://codeforces.com/contest/965/problem/C 题目大意:n个糖,k个人,每次最多只能拿M个糖,从第一个人开始拿,可以循环D次.问Arkady最多可以拿几块糖? ...

  5. [洛谷P3643] [APIO2016]划艇

    洛谷题目链接:[APIO2016]划艇 题目描述 在首尔城中,汉江横贯东西.在汉江的北岸,从西向东星星点点地分布着 \(N\) 个划艇学校,编号依次为 \(1\) 到 \(N\).每个学校都拥有若干艘 ...

  6. Redis学习十:Redis的复制(Master/Slave)【重要】

    一.是什么 官网 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主 二.能干嘛 读写分离  容灾恢 ...

  7. Redis学习七:Redis的持久化-总结(Which one)

    1.官网建议 2.RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储 3.AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些 命令来恢复原始的数据,AOF命令以red ...

  8. markdown里的多层次列表项

    markdown里的多层次列表项 编写python的docstrng太多, 有时候就搞混淆了层次化列表项在博客或者随笔里的规则. docstirng里, 仅用两个空格的缩进就可以实现. 博客里通常是一 ...

  9. Elasticsearch技术解析与实战(五)Document解析

    1.手动指定document id 一般来说,是从某些其他的系统中,导入一些数据到es时,会采取这种方式,就是使用系统中已有数据的唯一标识,作为es中document的id. PUT /index/t ...

  10. php中路径斜杠的应用,兼容win与linux

    更多内容推荐微信公众号,欢迎关注: PHP中斜杠的运用 兼容win和linux 使用常量:DIRECTORY_SEPARATOR如:"www".DIRECTORY_SEPARATO ...