LoadRunner的上传及下载脚本
脚本录制
在LR中,可以用自带的FTP协议去录制FTP工具的上传及下载。如下图所示:
1、点击Creat/Edit Scripts
2、选择FTP协议
出现如下图界面。
此处,我们不选择录制脚本,选择自己手动写脚本,点击“取消”
LR中的FTP相关函数
在LR帮助文档中,我们可以看到很多与FTP操作有关的函数。此处,我们需要解决FTP的上传与下载的问题,所以,我们只需要与以下步骤有关联的函数即可。
第一、 与FTP建立连接
第二、 上传文件
第三、 下载文件
第四、 关闭连接
第一、与FTP建立连接
ftp_logon_ex(FTP *ppftp, char *transaction, char *url, LAST );
这个函数的主要功能是建立与FTP服务器的连接,其中的参数含义如下:
transaction:连接名字,随便起
URL:ftp://username:password@服务器地址:端口号,指定连接的用户名、密码、服务器地址、端口号
第二、上传文件
ftp_put_ex (FTP *ppftp, char *transaction,char *item_list, LAST);
这个函数主要的功能是指定把本地的某个文件上传到服务器的某个目录下
transaction:为这个操作起一个名字,在这里随便起
item_list:其中包括
SOURCE_PATH,指定本地上传文件的路径
TARGET_PATH制定要上传到服务器的路径
第三、下载文件
ftp_get_ex( FTP *ppftp, char *transaction, char *item_list, LAST );
这个函数主要的功能是把服务器中指定的某个文件下载到本地指定的文件夹中
transaction:为这个操作起一个名字,在这里随便起
item_list:其中包括
SOURCE_PATH,指定服务器中文件所在的路径
TARGET_PATH制定要下载到本地的路径
第四、关闭连接
ftp_logout_ex(FTP *ppftp );
这个函数主要功能是断开FTP连接
FTP上传及下载代码
Action()
{
//定义FTP对象
unsigned long*ftp_session=NULL;
//建立连接并登陆
ftp_logon_ex(&ftp_session,"ftplogon",
"URL=ftp://username:passward@服务器地址:端口号",LAST);
//下载FTP上的文件到指定目录
ftp_get_ex(&ftp_session,"ftpget",
"SOURCE_PATH=/TEST/1.TXT",
"TARGET_PATH=E:\\",
"MODE=BINARY",//指定下载的模式是二进制
ENDITEM,
LAST);
//上传
ftp_put_ex(&ftp_session,"FtpPut",
"SOURCE_PATH=E:\\3.txt",
"TARGET_PATH=/test/3.txt",
"MODE=BINARY",
/* PASSIVE:是指由客户端主动去连接服务端.
一般来说,电脑都有防火墙,没有单独设置过,防火墙是不允许服务器端来主动连接客户端的,所以这里一般注明是客户端连接服务端
*/
"PASSIVE=TRUE",
ENDITEM,
LAST);
// lr_think_time(5);
//关闭连接
ftp_logout_ex(&ftp_session);
return0;
}
问题
遇到的问题:
第一次打开脚本编写框时,选择的是Web(HTTP/HTML)方式,脚本写完,编译没有发现问题,运行时一直出现如下错误:
问题分析:
由于选择的web是HTTP协议,FTP上传下载设计的是FTP协议,协议不同,在globals.h文件中包含的头文件也不同,导致编译FTP协议时找不到对应的头文件,出现错误。
解决办法:
选择FTP协议编辑器编辑脚本。