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;

}

  但是这个程序依然有问题,当打开是二进制文件,或者文件内容过大的时候,依然会出现文件内容不一致的问题,我后续试验后,会持续更新。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-12-04 21:46:33

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

Windows中IIS7 大文件上传限制解决办法

在IIS7下,即便你在web.config设置了maxRequestLength="1048576"最大允许上传的大小,也是没用的,其实是受C:/Windows/System32/inetsrv/config/applicationHost.config的限制, 默认最大只能上传30M的文件,修改下这个文件就好了,在该文件的system.webServer/security/requestFiltering/节内添加 <requestLimits maxAllowedConten

小钱APP身份证上传失败解决办法

给各位小钱软件的使用者们来详细的解析分享一下身份证上传失败问题的解决办法. 办法分享:   1.要注意看看照片的大小有没有规定,还有清晰度的问题; 2.也要检查自己手机信号是否畅通; 3.还可以过一段时间在试下,可能系统出现错误. 好了,以上的信息就是小编给各位小钱的这一款软件的使用者们带来的详细的身份证上传失败问题的解决办法解析分享的全部内容了,各位看到这里的软件使用者们,小编相信你们现在那是非常的清楚了解决的方法了吧,那么大家就快去按照小编上面的方法自己去解决身份证上传失败的问题吧.

php无法上传大于2M文件解决办法

一般Php设置默认的上传文件的大小是2M,所以要是想上传大于2 M的文件,就要重新设置php配置文件. 打开php.ini,首先找到 ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; 区域,有影响文件上传的以下几个参数: file_uploads   =   on   ;是否允许通过HTTP上传文件的开关.默认为ON即是开 upload_tmp_dir   ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹 uploa

百度云盘不能上传超过4G大小的文件如何解决?

方法一.分卷压缩 分卷压缩最好的办法就是把比较大的文件通过分卷压缩来实现压成几个文件,这个可以直接使用rar来操作了, 具体步骤如下: 安装WinRAR或者360压缩等压缩软件后,右击在压缩的文件然后在弹出菜单我们点击[添加到压缩文件],分卷大小选择[FAT32]或者输入4000MB,然后将压缩后的所有分卷都上传到百度云盘的同一个文件夹中. 方法二.百度云盘会员(废话) 花钱开通一个百度云盘(百度yun)会员了,然后我们再使用 百度云管家客户端就可以轻松上传/转存超过4G的文件了了,话说只要有钱

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

问题:如题所述,使用FTPClient上传至FTP服务器, 表现如下:①文件大小为0 ②上传很小的文件,但是要花费很长的时间,20K要花费2分钟甚至更久 ③没有任何的报错,没有任何的乱码 解决方法: [参考:http://blog.csdn.net/tengdazhang770960436/article/details/43274001] 如果你在本地的 Java 项目里面去用 FtpClient 上传文件,然后虽然文件上传上去了,但是文件里面没有内容,那么这说明你的机器防火墙设置有问题如下图

jbpm上传打包好的zip文件,然后上传完说发布流程文件失败,求大神解答

问题描述 jbpm上传打包好的zip文件,然后上传完说发布流程文件失败,求大神解答 工具:MyEclipse10.0 jbpm4.4 数据库版本是Mysql5.1 下面是jsp页面代码 jsp页面代码 <%@page import="java.util.zip.ZipInputStream"%> <%@page import="java.io.File"%> <%@page import="java.io.FileInputS

Java实现ftp文件上传下载解决慢中文乱码多个文件下载等问题_java

废话不多说了,直接给大家贴代码了,具体代码如下所示: //文件上传 public static boolean uploadToFTP(String url,int port,String username,String password,String path,String filename,InputStream input) { boolean success=false; FTPClient ftp=new FTPClient();//org.apache.commons.net.ftp

fckeditor在jsp文件上传失败解决方法

fckeditor在jsp教程文件上传失败解决方法 我的代码如下 web.xml <servlet> <servlet-name>connector</servlet-name> <servlet-class>net.fckeditor.connector.connectorservlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet&g

文件上传 pring-文件上传怎么实现读个文件同时上传???

问题描述 文件上传怎么实现读个文件同时上传??? 一个input可以上传多个文件吗??如何实现??最好有代码!!!! 解决方案 http://blog.163.com/thylx133@126/blog/static/60151875201142455229288/ 解决方案二: http://blog.csdn.net/chenxiang199055/article/details/7000237 解决方案三: <input type="file" multiple />

JS实现表单多文件上传样式美化支持选中文件后删除相关项_javascript技巧

开发中会经常涉及到文件上传的需求,根据业务不同的需求,有不同的文件上传情况. 有简单的单文件上传,有多文件上传,因浏览器原生的文件上传样式及功能的支持度不算太高,很多时候我们会对样式进行美化,对功能进行完善. 本文根据一个例子,对多文件的上传样式做了一些简单的美化(其实也没怎么美化..),同时支持选择文件后自定义删除相关的文件,最后再上传 文章篇幅较长,先简单看看图示: 一.文件上传基础 1. 单文件上传 最简单的文件上传,是单文件上传,form标签中加入enctype="multipart/f