设为首页 收藏本站
查看: 1461|回复: 0

【转】编写LoadRunner的FTP脚本

[复制链接]

尚未签到

发表于 2015-5-27 10:43:21 | 显示全部楼层 |阅读模式
  在LR中用它自带的FTP协议去录制FTP工具(例如cuteFTP等)的下载或上传时,虽然可以看到LR的录制条有捕获到东西,但是脚本里却什么都没有,这时录制无效时就需要自己手动去写脚本了.
  下面是脚本,里面加了详细的注释,大家可以看看.因为只是示范,所以里面没有加集合点和事务,也没有做参数化.


DSC0000.gif DSC0001.gif View Code


1 Action()
2 {
3     //定义FTP对象
4     FTP ftp1 = 0;
5
6     //建立连接并登录
7     //这其中需要修改的部分是username:password@IPAddress
8     //username:password 不做多的说明,大家都知道
9     //IPAddress:这里可以写IP地址,也可以写成域名,如www.test.com
10     ftp_logon_ex(&ftp1,"FtpLogon",
11             "URL=ftp://username:password@IPAddress",
12             LAST);
13     //下载FTP上的文件到本地指定目录
14     //SOURCE_PATH:是指FTP上文件对应的目录,一定要指定一个确定存在的文件对象
15     //TARGET_PATH:下载的目的地址.这里要确定该路径存在,同时要指定文件名(可以和FTP上的文件名不一致).
16     //性能测试时,一般会把源文件名参数化,目标文件名使用源文件名的参数+唯一序列号,这样方便验证下载是否成功
17     //MODE:下载的模式,有二进制和ASCII这2种方式,系统默认的是二进制,避免有时下载的文件被损坏
18     ftp_get_ex(&ftp1,"Get_Files",
19           "SOURCE_PATH=/2项目组活动/0710.rar",
20           "TARGET_PATH=e:\\Tools\\Dowload\\07101.rar",
21           "MODE=BINARY",
22           ENDITEM ,
23     LAST);
24
25     //上传FTP上的文件到本地指定目录
26     //PASSIVE:是指由客户端主动去连接服务端.
27     //一般来说,电脑都有防火墙,没有单独设置过,防火墙是不允许服务器端来主动连接客户端的,所以这里一般注明是客户端连接服务端
28     //更多关于PASSIVE的解释大家可以去google下
29     ftp_put_ex(&ftp1,"Put_Files",
30           "SOURCE_PATH=e:\\Tools\\Dowload\\07101.rar",
31           "TARGET_PATH=/2项目组活动/07102.rar",
32           "MODE=BINARY",
33           "PASSIVE=TRUE",
34           ENDITEM ,
35     LAST);
36
37     lr_think_time(5);
38     //退出登录
39     ftp_logout_ex(&ftp1);
40
41     return 0;
42 }
  具体步骤如下:
  1、  首先要了解loadrunner中几个FTP函数
  在loadrunner联机帮助文档的索引中,输入FTP,此时你会看到不下50个与ftp有关的函数,想了一下为了解决使用FTP文件上传这个问题,只需要一下几个步骤就可以了:
  第一、   与ftp服务器建立连接
  第二、   传输文件
  第三、   关闭连接
  所以我现在只需要关注与这三个步骤有关的函数就可以了
  经过挑选终于找到了一下几个函数:
  第一、   与ftp服务器建立连接的函数
  ftp_logon_ex (FTP *ppftp, char *transaction, char *url, LAST);
  这个函数主要的功能是建立与ftp服务器的连接,其中的参数含义如下:
  Transaction:为这个连接起一个名字,在这里随便起
  url:ftp://username:password@mailserver:port,指定连接用户名、密码、服务器地址、端口
  第二、   传输文件的函数
  ftp_put_ex (FTP *ppftp, char *transaction, char *item_list, LAST);
  这个函数主要的功能是指定把本地的某个文件上传到服务器的某个目录下
  transaction:为这个操作起一个名字,在这里随便起
  item_list:其中包括
  SOURCE_PATH,指定本地上传文件的路径
  TARGET_PATH制定要上传到服务器的路径
  ENDITEM - Marks the end of the list.(不好翻译呵呵)
  第三、   关闭连接的函数
  ftp_logout_ex (FTP *ppftp);
  这个函数的主要功能是断开FTP链接
  2、  模拟文件上传过程
  知道了上面的函数我们把代码写一下:


View Code


1 Action()
2
3 {
4
5      unsigned long *ftp_session=NULL;
6     ftp_logon_ex(&ftp_session,"ftp_logon","URL=ftp://192.168.0.70:21",LAST);
7     ftp_put_ex(&ftp_session, "Ftp_Put",
8
9             "SOURCE_PATH=d:/huruihai.txt",
10
11            "TARGET_PATH=/coreftplite/huruihai.txt", ENDITEM,            LAST);
12
13 //释放FTP连接
14
15    ftp_logout_ex(&ftp_session);
16
17  return 0;
18
19 }
  
  运行一次,发现d:\huruihai.txt文件已经成功上传到FTP服务器E:\tools\coreftplite目录下,OK大功告成!
  注意:FTP设置时设置的根目录为E:\tools\
  好了,基本的结构写出来了,执行脚本,发现可以把指定的文件上传到制定的目录下了,接下来就根据自己实际需要强化脚本就可以了,参数化上传文件、加入事务、集合点,监测上传文件的时间和服务器的性能,强化脚本在这里就不多说了。
  
  在这个过程中遇到了如下几个问题:
  A、 在生命ftp连接句柄时,我看网上的一些资料中介绍声明称FTP ftp1 = 0 ;
  但是这样写会出现语法错误,当我把它修改成unsigned long *ftp_session=NULL;后就没有问题了,其中原因不明
  B、 当使用SSH加密后,使用loadrunner就无法连接成功,这个问题也没搞清楚原因
  3、  遇到的问题:
  A、 在生命ftp连接句柄时,我看网上的一些资料中介绍声明称FTP ftp1 = 0 ;
  但是这样写会出现语法错误,当我把它修改成unsigned long *ftp_session=NULL;后就没有问题了,其中原因不明
  B、 当使用SSH加密后,使用loadrunner就无法连接成功,这个问题也没搞清楚原因,出现的错误提示是Logon Session failed SSH-1.99-OpenSSH_3.9p1
  C、 为什么loadrunner能捕捉到事件,但没有生成脚本?
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-71168-1-1.html 上篇帖子: Linux全攻略--FTP服务器配置与管理 下篇帖子: FTP文件操作之删除文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表