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;
}
LoadRunner上传及下载文件的更多相关文章
- 【Loadrunner】使用LoadRunner上传及下载文件
使用LoadRunner上传及下载文件 1)LoadRunner上传文件 web_submit_data("importStudent.do", "Action=http ...
- Loadrunner上传与下载文件脚本
一. 上传脚本 Action() { int uploadImgStatus = 0; //获取上传产品图ID web_reg_save_param_ex("ParamName=imgRan ...
- 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 ...
随机推荐
- Servlet开发技术,创建,以及Servlet的配置,web.xml的配置
直接上图,不废话!!! 第一:首先在Eclipse的包资源管理器中,单机鼠标右键,在弹出的快捷键菜单中选择“新建”/Servlet命令,在弹出的对话框中输入新建的Servlet所在的包和类名,然后单击 ...
- javascript_basic_01之概述
1.javascript组成: ①核心ECMAScript:②文档对象模型DOM(Document Object Model):③浏览器对象模型BOM(Browser Object Model): 2 ...
- JTMz换路径导致MySQL服务不能启动的问题
问题: JTMz解压到我的机器上,运行一次后,把服务停止了,然后移到了另外一个路径,JTMz中自带的MySQL服务启动不起来了. 解决: 在注册表中修改 HKEY_LOCAL_MACHINE\SYST ...
- JavaScript实现DDoS攻击原理,以及保护措施。
DDos介绍 最普遍的攻击是对网站进行分布式拒绝服务(DDoS)攻击.在一个典型的DDoS攻击中,攻击者通过发送大量的数据到服务器,占用服务资源.从而达到阻止其他用户的访问. 如果黑客使用JavaSc ...
- (转)Shell函数
Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以速度很快,另外,Shell还能对函数进行预处理,所以函数的启动比脚本更快. 1. 函数 ...
- Oracle Dataguard之failover
Oracle Dataguard中,角色转换包含两类:Switchover和Failover.上文<Oracle Dataguard之switchover>中,我们已经谈过了switcho ...
- android 处理302地址
最近项目中需要用到重定向下载,所以找了很多的方法都不合适.因为下载的链接并非单纯的地址,而是需要多次转发的, 在下载的时候用的是URL来打开数据流.但是多次测试并不能对多次跳转的链接打开请求.对于30 ...
- 机器学习&数据挖掘笔记_21(PGM练习五:图模型的近似推理)
前言: 这次练习完成的是图模型的近似推理,参考的内容是coursera课程:Probabilistic Graphical Models . 上次实验PGM练习四:图模型的精确推理 中介绍的是图模型的 ...
- Pillow实现图片对比
在编写Web自动化测试用例的时候,如何写断言使新手不解,严格意义上来讲,没有断言的自动化脚本不能叫测试用例.就像功能测试一样,当测试人员做了一些操作之后必然会判断实际结果是否等于预期结果,只不过,这个 ...
- 用c#开发微信 (20) 微信登录网站 - 扫描二维码登录
像京东,一号店等网站都实现了用微信来登录的功能,就是用手机上的微信扫一扫网站上的二维码,微信上确认后,即可自动用微信的帐号登录网站. 1 创建网站应用 在微信开放平台创建一个网站应用 https:// ...