【Loadrunner】使用LoadRunner上传及下载文件
使用LoadRunner上传及下载文件
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;
}
转载至:http://blog.csdn.net/shwonder/archive/2010/08/11/5802885.aspx
【Loadrunner】使用LoadRunner上传及下载文件的更多相关文章
- SecureCRT上传和下载文件
SecureCRT上传和下载文件(下载默认目录) SecureCR 下的文件传输协议有ASCII .Xmodem .Ymodem .Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. ...
- 11、只允许在主目录下上传和下载文件,不允许用putty登录
创建用户xiao, 使其只允许在用户主目录 (/var/www/html)下上传和下载文件,不允许用putty登录 (为了安全起见,不给过多的权限) 1.创建xiao用户 [root@localh ...
- 每天一个linux命令(26):用SecureCRT来上传和下载文件
用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. ...
- 利用SecureCRT上传、下载文件(使用sz与rz命令),超实用!
利用SecureCRT上传.下载文件(使用sz与rz命令),超实用! 文章来源:http://blog.csdn.net/dongqinliuzi/article/details/39623169 借 ...
- Linux--用SecureCRT来上传和下载文件
SecureCRT下的文件传输协议有以下几种:ASCII.Xmodem.Ymodem.Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. Xmodem:这种古老的传输协议速度较慢,但由 ...
- secureCRT简单上传、下载文件记录
secureCRT简单上传.下载文件记录: 1)sz下载 -y 覆盖 2)rz上传 -y 覆盖 3)以上两个命令属于安装时包含在“Dial-up Networking Support"组中 ...
- 每天一个linux命令(26)--用SecureCRT来上传和下载文件
用SSH管理Linux 服务器时经常需要远程与本地之间交互文件,而直接使用 SecureCRT 自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmod ...
- 每天一个linux命令(26):用SecureCRT来上传和下载文件(转载自竹子)
用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. ...
- 用SecureCRT来上传和下载文件
用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. ...
随机推荐
- openal 基础知识2
三枚举扩展包(enumeration extension,“ALC_ENUMERATION_EXT”) 开发者可以通过这个extension得到一个字符串列表,区分不同的渲染/捕捉设备.OpenALr ...
- Loadrunner C 编程_1
就目前的了解.Loadrunner的脚本语言其实和C没什么区别.他内部的好多机制都是C实现的. 不过是一种“类C” 所以我从几个方面分析 1:定义常量变量和C一样 2:在LR中,C的变量和LR的参数是 ...
- parameter "timeout" in socketchannel does not work
// Accept the connection and make it non-blocking SocketChannel socketChannel = serverSocketChannel. ...
- javascript变量声明前置
变量声明前置: 所谓的变量声明前置就是在一个作用域块中,所有的变量都被放在块的开始出声明,下面举个例子你就能明白了 var a = 1; function main() { console.log(a ...
- day23<File类递归练习>
File类递归练习(统计该文件夹大小) File类递归练习(删除该文件夹) File类递归练习(拷贝) File类递归练习(按层级打印) 递归练习(斐波那契数列) 递归练习(1000的阶乘所有零和尾部 ...
- HTML&CSS精选笔记_列表与超链接
列表与超链接 列表标记 无序列表ul 无序列表的各个列表项之间没有顺序级别之分,是并列的 <ul> <li>列表项1</li> <li>列表项2< ...
- 在线学习angularjs2
官网给的学习教程(需要FQ) http://campus.codeschool.com/courses/accelerating-through-angular-2/contents
- 安装DatabaseLibrary
Using pip pip install robotframework-databaselibrary From Source Download source from https://github ...
- Linux命令之乐--grep
正则表达式基本组成部分 Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 /* St ...
- Nginx遇上Access Denied提示怎么解决
这几天在摆弄linux下面的各种服务器,对nginx非常有兴趣. 于是把phpmyadmin传上去了,先是phpmyadmin配了半天,结果配好之后发现phpmyadmin一些logo.css.js文 ...