Loadrunner上传文件解决办法(大文件)

  最近再做一个跟海量存储相关的项目测试,需要通过LR模拟用户大量上传和下载文件,请求是Rest或Soap,同时还要模拟多种大小尺寸不一的文件
  通常情况下,都是使用简单的post协议即可:
  方法一:
web_submit_data("importStudent.do",
"Action=https://testserver/console/importStudent.do",
"Method=POST",
"EncType=multipart/form-data",
"RecContentType=text/html",
"Referer=https://testserver/console/displayStudentList.do",
"Snapshot=t12.inf",
"Mode=HTTP",
ITEMDATA,
"Name=uploadFile", "Value=D://Excel//data161955.zip", "File=yes", ENDITEM,
LAST);
  后续对上传的文件进行MD5值比较,发现不一致,仔细查看后,发现上传的文件内容被loadrunner添加了几行额外的值,content-type等,无奈下,重写读文件的方式,我通过如下程序实现了1到10M文本文件的上传,如果上传二进制文件,body的写法有变化:
  方法二:
vuser_init()
{
char fileName[] = "D:/Script/CreateObj_10M/tools.zip";
int len = 0;
int readLen=0;
int tmpLen=1;
int  runLen =104857;
int  cLen = 0;
if ( (file_stream = fopen(fileName, "rb")) == NULL)
{
lr_message("open file failed!\n");
return -1;
}
fseek(file_stream, 0, 2);
len = ftell(file_stream);
lr_message("file length is: %d bytes",  len);
readbuf = (char *) malloc(len+1);
memset(readbuf, 0, len+1);
if ( runLen > len) {
runLen = len;
}
fseek(file_stream, 0, 0);
while(feof(file_stream)== 0){
tmpLen = fread(readbuf + readLen, 1,runLen , file_stream);
readLen += tmpLen;
cLen = readLen + runLen;
if (cLen > len) {
runLen = cLen - len;
}
if (tmpLen==0) {
break;
}
}
 
 
//关闭文件句柄
fclose(file_stream);
//保存参数
lr_save_string(readbuf,"bodys");
}
Action()
{
lr_start_transaction("CreateObj_1M");
web_add_header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8..");
web_add_header("Content-Type", "text/plain; charset=UTF-8");
web_add_header("Authorization", "YWS {userkey}:XXXXXXX");
web_custom_request("CreateObj",
"URL=http://smartstorage{id}.yoyoyws.com:38080/test00bucket00/{IterationNum}-10M",
"Method=PUT",
"TargetFrame=",
"Resource=0",
"RecContentType=application/xml",
"Referer=",
"Mode=HTML",
"Body={bodys}",       //如果是二进制文件,可以改成BodyBinary
LAST );
returnCode = web_get_int_property(HTTP_INFO_RETURN_CODE);
if ( returnCode!=201 ) {
lr_end_transaction("CreateObj_1M",LR_FAIL);
}else{
lr_end_transaction("CreateObj_1M",LR_PASS);
}
return 0;
}
  但是这个程序依然有问题,当打开是二进制文件,或者文件内容过大的时候,依然会出现文件内容不一致的问题,我后续试验后,会持续更新。

Loadrunner上传文件解决办法(大文件)的更多相关文章

  1. 织梦dedecms后台文件media_add.php任意上传漏洞解决办法

    织梦在安装到阿里云服务器后阿里云后台会提示media_add.php后台文件任意上传漏洞,引起的文件是后台管理目录下的media_add.php文件,下面跟大家分享一下这个漏洞的修复方法: 首先找到并 ...

  2. php文件上传参考配置与大文件上传

      PHP用超级全局变量数组$_FILES来记录文件上传相关信息的,在php文件上传之前,可通过调节php.ini中相关配置指令,来控制上传相关细节. 1.file_uploads=on/off   ...

  3. 判断大文件是否上传成功(一个大文件上传到ftp,判断是否上传完成)

    大文件上传ftp,不知道有没有上传完成,如果没有上传完成另一个程序去下载这个文件,导致下载不完整. 判断一个文件是否上传完成的方法: /** * 间隔一段时间去计算文件的长度来判断文件是否写入完成 * ...

  4. 使用git上传项目解决码云文件次数上传限制(原文)

    起因:个人免费版的码云上传文件时限制: 1个小时内只能上传20个文件 解决方法:在码云创建空的项目仓库,使用git客户端下载码云的项目,把需要上传的文件复制到该项目中去,用git提交! 1.配置git ...

  5. angularJS+Ionic移动端图片上传的解决办法

    前端开发中经常会碰到图片上传的问题,网上的解决办法很多,可是有些图片上传的插件会有一些附属的插件,因此因为一个图片上传的问题可能额需要引入其他插件到项目中,久而久之项目会不伦不类,有时候插件之间也会有 ...

  6. php网站环境无法上传的解决办法?

    一. 检查网站目录的权限.二. php.ini配置文件php.ini中影响上传的有以下几处:file_uploads 是否开启 on 必须开启是否允许HTTP文件上传post_max_size = 8 ...

  7. 百度云管家使用socks代理无法上传下载解决办法

    像前几篇随笔描述的那样,笔者在学校里通过shadowsocks使用ipv6访问双栈vps来免费使用外网,但是在设置百度云管家的代理时发现:使用socks代理客户端可以访问文件列表,但是无法上传下载. ...

  8. Linux无权限上传文件解决办法

    无权限上传文件解决办法 1.当前登录的普通用户:user1/password1 2.切换到管理员(user2)用户: sudo su - user2 输入user2用户的密码:password2 或者 ...

  9. 【FTP】java FTPClient 文件上传内容为空,文件大小为0

    问题:如题所述,使用FTPClient上传至FTP服务器, 表现如下:①文件大小为0 ②上传很小的文件,但是要花费很长的时间,20K要花费2分钟甚至更久 ③没有任何的报错,没有任何的乱码 解决方法: ...

随机推荐

  1. webapi框架搭建-安全机制(二)-身份验证

    webapi框架搭建系列博客 身份验证(authentication)的责任是识别出http请求者的身份,除此之外尽量不要管其它的事.webapi的authentication我用authentica ...

  2. MySQL学习(一)——Java连接MySql数据库

    MySQL学习(一)——Java连接MySql数据库 API详解: 获得语句执行 String sql = "Insert into category(cid, cname) values( ...

  3. 兼容firefox,ie,谷歌,阻止浏览器冒泡事件,Firefox不支持event解决方法

    兼容firefox,ie,谷歌,阻止浏览器冒泡事件,Firefox不支持event解决方法 // 获取事件function getEvent(){ if(window.event) {return w ...

  4. 【转】WPF的知识

    [-] 闲话WPF之二XAML概述 闲话WPF之五XAML中的类型转换 闲话WPF之十六WPF中的资源 2 闲话WPF之十九WPF中的传递事件 1 闲话WPF之二十WPF中的传递事件 2 闲话WPF之 ...

  5. TI的H264 SOC方案

    TI的H264 SOC方案是目前常用的视讯解决方案,TI针对视频会议,视频监控,视频存储等场景细化需求并优化了H264技术. 1. TI H.264背景 如今视频压缩技术在视频领域有非常多的应用需求. ...

  6. 2019年湖南多校第一场||2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018)

    第一场多校就打的这么惨,只能说自己太菜了,还需继续努力啊- 题目链接: GYM链接:https://codeforces.com/gym/101933 CSU链接:http://acm.csu.edu ...

  7. POJ 1679 The Unique MST (次小生成树 判断最小生成树是否唯一)

    题目链接 Description Given a connected undirected graph, tell if its minimum spanning tree is unique. De ...

  8. python模块-logging的智商上限

    logging,故名肆意就是正在进行日志,我艹,这个文化底蕴! logging是python内置的日志模块,便于日常程序的日志写入和输出 logging共分为5个日志等级,分别是: debug , i ...

  9. linux命令-grep+正则表达式用法

    目标文件/etc/passwd,使用grep命令或egrep 1.显示出所有含有root的行:egrep 'root' passwd 2.输出任何包含bash的所有行,还要输出紧接着这行的上下各两行的 ...

  10. 连接数据库及出现System.AccessViolationException错误的解决方法

    调试后发现, connection.Open();以后报错,System.AccessViolationException: 尝试读取或写入受保护的内存.这通常指示其他内存已损坏,网上搜了很多都没有作 ...