转http://blog.163.com/yings_9371/blog/static/66196922010711115545137/

(1)LoadRunner上传文件

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);

注:脚本录制使用Http/Html协议或Click and Script协议均可,以上是使用Http/Html录制的的脚本。需要特别注意的是,无论使用哪种协议录制,待上传的文件路径及文件名称只能为英文字符,而不能为中文字符。否则,可能将文件上传的二进制流同时录制到LR的脚本中。

这个问题同时也说明,LR对中文的支持还远不够。

下面是该应用更详细的示例。

Action()

{

//定义double类型的变量trans_time,用来保存事务的执行时间。

double trans_time;

//定义int类型的变量status,用来保存事务执行的返回的值。

int status;

lr_start_transaction("测试");

//使用内置函数lr_get_transaction_duration获取事务的执行时间。

trans_time=lr_get_transaction_duration("测试");

status=     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=E:\\datafile\\data01.zip", "File=yes", ENDITEM,

LAST);

//增加手工事务,如果该测试事务执行返回值为0,则事务执行成功,否则执行失败。

if (status == 0)

lr_end_transaction("测试", LR_PASS);

else

lr_end_transaction("测试", LR_FAIL);

//打印事务执行时间。

if (trans_time)

lr_output_message("事务执行时间为:%f 秒",trans_time);

else

lr_output_message("事务执行时间未知!");

return 0;

}

以下是LR的帮助文档中的web_submit_data函数的一个应用示例,从该示例中也可见一斑。

web_submit_data("Attachments",

"Action=http://barton.cottage@.Devonshire.uk/Attachments?YY=45434",

"Method=POST",

"EncType=multipart/form–data",

"TargetFrame=",

"RecContentType=text/html",

"Referer=http:///barton.cottage@.Devonshire.uk/Compose?YY=20435",

"Snapshot=t5.inf",

"Mode=HTML",

ITEMDATA,

"Name=userFile0",

"Value=E:\\sense_sensibility\\Elinor.txt",

"File=yes",

"ContentType=text/html", // Override default "text/plain" for .txt files

ENDITEM,

"Name=userFile1",

"Value=E:\\sense_sensibility\\Marianne.jpg",

"File=yes",

ENDITEM,

LAST);

(2)LoadRunner下载文件

Action()

{

/*下载帮助文档*/

//定义一个整型变量保存获得文件的大小

int flen;

//保存文件句柄

long filedes;

//保存文件路径及文件名

char file[256]="\0";

//定义一个随机数

char * strNumber;

//Returns the string argument after evaluating embedded parameters.

strNumber=lr_eval_string("{RandomNum}");

//将路径保存到file变量中

strcat(file,"D:\\Excel\\");

//将获得的随机数拼接在file变量之后

strcat(file,strNumber);

//将下载的文件后缀名.rar拼接在file变量之后

strcat(file,".rar");

//到此为止一个LoadRunner已经获得了一个完整的文件名

//设置参数的最大长度,注意该值必须大于文件的大小

web_set_max_html_param_len("20000");

//使用关联函数获取下载文件的内容,在这里不定义左右边界,获得服务器响应的所有内容

web_reg_save_param("fcontent",

"LB=",

"RB=",

"SEARCH=BODY",

LAST);

/*下载帮助文件*/

lr_start_transaction("下载帮助文件");

//发送下载帮助文件的请求

web_url("DownLoadServlet",

"URL=https://testserver3/servlet/DownLoadServlet?filename=help",

"Resource=1",

"RecContentType=application/x-msdownload",

"Referer=",

"Snapshot=t41.inf",

LAST);

//获取响应中的文件长度

flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);

if(flen > 0)

{

//以写方式打开文件

if((filedes = fopen(file, "wb")) == NULL)

{

lr_output_message("打开文件失败!");

return -1;

}

//写入文件内容

fwrite(lr_eval_string("{fcontent}"), flen, 1, filedes);

//关闭文件

fclose(filedes);

}

lr_end_transaction("下载帮助文件",LR_AUTO);

return 0;

}

loadrunner 上传下载的更多相关文章

  1. LoadRunner上传及下载文件

    (1)LoadRunner上传文件 web_submit_data("importStudent.do", "Action=https://testserver/cons ...

  2. 【Loadrunner】使用LoadRunner上传及下载文件

    使用LoadRunner上传及下载文件 1)LoadRunner上传文件 web_submit_data("importStudent.do", "Action=http ...

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

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

  4. 性能测试七:jmeter进阶之文件上传下载、定时器

    一.上传下载 上传: 1,POST请求,勾选 use …for post 2,同请求一起发送文件里,填写文件名称,参数名称 3,MIME类型: application/octet-stream(非必须 ...

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

    Loadrunner上传文件解决办法(大文件) 最近再做一个跟海量存储相关的项目测试,需要通过LR模拟用户大量上传和下载文件,请求是Rest或Soap,同时还要模拟多种大小尺寸不一的文件 通常情况下, ...

  6. Struts的文件上传下载

    Struts的文件上传下载 1.文件上传 Struts2的文件上传也是使用fileUpload的组件,这个组默认是集合在框架里面的.且是使用拦截器:<interceptor name=" ...

  7. 基于Spring Mvc实现的Excel文件上传下载

    最近工作遇到一个需求,需要下载excel模板,编辑后上传解析存储到数据库.因此为了更好的理解公司框架,我就自己先用spring mvc实现了一个样例. 基础框架 之前曾经介绍过一个最简单的spring ...

  8. Android okHttp网络请求之文件上传下载

    前言: 前面介绍了基于okHttp的get.post基本使用(http://www.cnblogs.com/whoislcj/p/5526431.html),今天来实现一下基于okHttp的文件上传. ...

  9. 用Canvas+Javascript FileAPI 实现一个跨平台的图片剪切、滤镜处理、上传下载工具

    直接上代码,其中上传功能需要自己配置允许跨域的文件服务器地址~ 或者将html文件贴到您的站点下同源上传也OK. 支持: 不同尺寸图片获取. 原图缩小放大. 原图移动. 选择框大小改变. 下载选中的区 ...

随机推荐

  1. 2019嘉韦思杯线上初赛writeup

    1 土肥原贤二 看到页面怀疑是sql注入,写了个4'进去就发生报错.could not to the database You have an error in your SQL syntax; ch ...

  2. cordova文件系统插件的使用方法:cordova-plugin-file

    提供对设备上的文件进行读取和写入的功能支持. 1. 添加插件:cordova plugin add cordova-plugin-file 2. 调用方法:

  3. 详解Vue 非父子组件通信方法(非Vuex)

    假设 bb 组件里面有个按钮,点击按钮,把 123 传递给 aa 组件 // 根组件(this.$root) new Vue({ el: '#app', router, render: h => ...

  4. c++ 创建线程以及参数传递

    //创建线程,传递参数 DWORD dwThreadID = ; HANDLE hThread = CreateThread(NULL, , MonitorThreadFunction, , & ...

  5. HQL详解

    HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此 Hib ...

  6. IIS7 伪静态 web.config 配置方法

    <rule name="Redirect" stopProcessing="true"> <match url=".*" ...

  7. MySQL 5.6 以上版本支持三种sql_mode模式:ANSI、TRADITIONAL和STRICT_TRANS_TABLES。

    Field 'id' doesn't have a default value问题解决方法 运维的名义关注0人评论3323人阅读2018-01-23 17:37:42   MySQL 5.0 以上版本 ...

  8. 为什么选择Go语言 GO语言都能做什么产品

    Go语言,又称Golang,是Google开发的一款静态强类型.编译型.并发型,并具有垃圾回收机制的编程语言,它的运行速度非常之快,同时还有如下特性:具有一流的标准库.无继承关系.支持多核:同时它还有 ...

  9. webstorm的相关操作

    1.webstorm修改tab键的缩进

  10. 黄聪:PHP获取某一天前后任意时间

    date("Y-m-d",strtotime('-30 days',strtotime('2016-9-30')));