编写loadrunner的ftp脚本(详细步骤)
大家好,主要给大家讲解编写loadrunner的ftp脚本详细步骤,及FTP函数注释,及FTP脚本两种编写方式,手动和录制。亲测 No problem!^_^
1、首先要了解loadrunner中几个FTP函数
在loadrunner联机帮助文档的索引中,输入FTP,此时你会看到不下50个与ftp有关的函数,想了一下为了解决使用FTP文件上传这个问题,只需要一下几个步骤就可以了:
注意:每个FTP函数都是以ftp前缀开头的。多数的ftp函数都会成对出现(一个事用于全局的会话,一个事用户指定邮件回话)。它们之间的差别是,全局的没有_ex后缀,特定会话的有_ex后缀。
第一、 与ftp服务器建立连接
第二、 传输文件
第三、 关闭连接
所以我现在只需要关注与这三个步骤有关的函数就可以了。
经过挑选终于找到了一下几个函数:
函数 |
描述 |
ftp_logon[_ex] |
登录到FTP服务器 |
ftp_logout[_ex] |
注销FTP服务器 |
ftp_dir[_ex] |
在FTP上执行dir命令 |
ftp_get[_ex] |
从FTP上获取文件 |
ftp_get_last_error |
检索从FTP服务器接收到的最后一个错误 |
ftp_get_last_error_id |
检索从FTP服务器接受到的最后一个错误的ID |
ftp_mkdir[_ex] |
在ftp服务器上创建目录 |
ftp_put[_ex] |
将文件放到FTP服务器上 |
ftp_rendir[_ex] |
重命名FTP服务器上的目录 |
ftp_rmdir[_ex] |
删除FTP服务器计算机上的目录 |
ftp_delete[_ex] |
从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链接
1.1、 模拟文件上传过程(手动编写)
知道了上面的函数我们把代码写一下:
Action()
{
unsigned long *ftp_session=NULL;
double duration,lSize,lDur;
ftp_logon_ex(&ftp_session,"ftp_logon","URL=ftp://ftpuser:ftpuser@192.168.0.1:21",LAST);
ftp_put_ex(&ftp_session, "Ftp_Put",
"SOURCE_PATH=d:/test.txt",
"TARGET_PATH=/ftptest/test.txt",
ENDITEM,
LAST);
// 取得下载持续时间
duration= ftp_get_last_transfer_duration_ex(&ftp_session);
// 输出下载持续时间
lr_output_message("Get_Small_File Transfer took %.3f milliseconds", duration);
//Action.c(35): Get_Small_File Transfer took 10.000 milliseconds
// 取得下载的详细信息
ftp_get_last_download_details_ex(&ftp_session, &lSize, &lDur);
// 输出下载的详细信息
lr_output_message("Get_Small_File Download of %d bytes took %d milliseconds", lSize, lDur);
//Action.c(39): Get_Small_File Download of 4307 bytes took 180 milliseconds
//释放FTP连接
ftp_logout_ex(&ftp_session);
return 0;
}
运行一次,发现d:\test.txt文件已经成功上传到FTP服务器/ftptest/目录下,OK大功告成!
注意:若上传文件到linux服务器上,“TARGET_PATH”目标路径为全路径。
好了,基本的结构写出来了,执行脚本,发现可以把指定的文件上传到制定的目录下了,接下来就根据自己实际需要强化脚本就可以了,参数化上传文件、加入事务、集合点,监测上传文件的时间和服务器的性能,强化脚本在这里就不多说了。
在这个过程中遇到的问题:
1)在声明ftp连接句柄时,我看网上的一些资料中介绍声明称FTP ftp1 = 0 ;但是这样写会出现语法错误,当我把它修改成unsigned long *ftp_session=NULL;后就没有问题了,其中原因不明。
1.2 录制FTP上传文件
1)同http协议类似,地址例如:ftp://172.31.27.2:21。
2) 单击Option、点击Tools->Recording Options或者在工具栏点击图标,打开“Recording Options”对话框,便可开始设置录制选项。
3)对于FTP协议脚本的录制,如果不对端口映射进行限制,很容易造成录制的脚本为空。因此,在进行脚本录制之前,我们要进行FTP协议的端口映射。将Network-level server address mappings for设置为FTP,单击“New Entry”,在弹出的“Server Wntry”对话框中将Target Server设置为“172.31.27.2”(FTP服务器的IP地址),Service ID设置为FTP,端口Port设置为Any(因为FTP协议涉及多个端口)。
4)登录172.31.27.2这个FTP服务器,执行上传文件的操作,然后退出,完成脚本的录制。
4)回放PASS,根据需求,增加脚本,完成。
ENDing...
编写loadrunner的ftp脚本(详细步骤)的更多相关文章
- Linux安装ftp服务-详细步骤
最近项目中用到了FTP服务器,于是整理了一份在Linux服务器上安装FTP的详细步骤供大家分享. 1.首先连接上自己的Linux服务器.我的Linux是CentOS 6 2.检查Linux服务器上是否 ...
- 在win7上建立本地FTP站点详细步骤
一.安装FTP组件点击:控制面板—>程序和功能—>打开或关闭Windows功能. 勾选“FTP服务器”及“FTP服务”“FTP扩展性”,点击“确定”,安装FTP组件. 勾选Web管理工具的 ...
- Linux-Centos 用crontab定时运行python脚本详细步骤
服务器总是要定时运行某个程序,而我在解决这个问题的时候遇到很多困难, 特此记录下来. 1.编辑crontab配置 crontab -e 服务器一般会安装好crontab,若没有安装请按命令安装 yum ...
- 编写自己的Acunetix WVS漏洞扫描脚本详细教程
AWVS提供了自定义的脚本编程接口,可是网上的资料很少,只有官方的几篇介绍和参考手册,最近研究了一下怎么编写AWVS的漏洞脚本来写一篇简单性的文章 本文以8.0为例,首先呢安装好Acunetix We ...
- Linux Makefile文件编写详细步骤与实践
Linux Makefile文件编写详细步骤与实践 1.makefile概述 Windows环境下IDE会帮你完成makefile文件的编写,但在UNIX环境下你就必须自己写makefile了,会不会 ...
- python编写shell脚本详细讲解
python编写shell脚本详细讲解 那,python可以做shell脚本吗? 首先介绍一个函数: os.system(command) 这个函数可以调用shell运行命令行command并且返回它 ...
- loadrunner 接口性能脚本编写(Get请求和Post请求)
前段时间接触了一下loadrunner的接口性能测试,然后尝试了一下手动编写脚本,毕竟录制这种东西,不是每次都能通的,而且录制下来的脚本,通常是有很多其他杂七杂八的请求夹杂在中间,没有达到真正的压测接 ...
- Loadrunner之HTTP脚本编写
Loadrunner之HTTP脚本编写 刚学习性能测试的时候还是建议以录制脚本为好,从录制的脚本中去了解脚本结构,各个函数的用法,慢慢再去尝试自己去编写脚本,如果想往技术方向发展,建议最好学习一门编程 ...
- loadrunner学习系列---脚本编写(2)
loadrunner学习系列---脚本编写(2) 今天接着翻译http://www.wilsonmar.com/1lrscrīpt.htm上面关于LR脚本编写部分. VUser_Init部分 这里是V ...
随机推荐
- Java--分布式系统高并发解决方案
对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题, 但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研 ...
- WPF UserControl 的绑定事件、属性、附加属性
原文:WPF UserControl 的绑定事件.属性.附加属性 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Vblegend_2013/arti ...
- 监听WPF依赖属性
原文:监听WPF依赖属性 当我们使用依赖属性的时候,有时需要监听它的变化,这在写自定义控件的时候十分有用, 下面介绍一种简单的方法. 如下使用DependencyPropertyDescripto ...
- 使用WPF实现3D场景[一]
原文:使用WPF实现3D场景[一] 在这篇文章里,将介绍如何实现一个简单的三维场景,一个三维的空间,包括空间内的三维物体的组合. 首先介绍一下一个三维场景里的基本元素: 先是定义一个简单的三维的场景环 ...
- STL优先级队列
priority_queue 这是一个优先级队列的所有权值概念单向队列queue.在这个队列中.全部元素是按优先级排列的(也能够觉得queue是个按进入队列的先后做为优先级的优先级队列--先进入队列的 ...
- 专访黄勇:Java在未来的很长一段时间仍是主流(把老板当情人,把同事当小孩,把客户当病人)
url:http://www.csdn.net/article/2015-09-06/2825621 2015-09-06 13:18 摘要:本文采访了现任阿里巴巴公司系统架构师黄勇,从事近十年的Ja ...
- 入骨三分的“我们是谁”IT行业版
这组漫画用简单的台词.粗犷的线条,把很多人心中对甲方(客户)的不满彻底地发泄了一通,并且出现了很多变种版本,引发了传播热潮. http://news.sina.com.cn/c/nd/2017-08- ...
- sdutoj1225--编辑距离(dp:字符串转换)
编辑距离 nid=24#time" style="padding-bottom:0px; margin:0px; padding-left:0px; padding-right:0 ...
- java线:辛格尔顿隐藏ThreadLocal实现线程数据共享
效果图分享: A和B需要共享同一线程,还有一组的相同A和B共享还有一组线程,两组相互之间不受影响. 代码: package cn.itcast.lesson6; import java.util.Ra ...
- ios 双指捏合放大缩小图片的例子
图片跟随双指捏合的距离放大或者缩小. 利用-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 实现. touchesMov ...