编写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 ...
随机推荐
- Qt浅谈之十八:GraphicsView框架事件处理(有源码下载)
一.简介 GraphicsView支持事件传播体系结构,可以使图元在场景scene中得到提高了已被的精确交互能力.图形视图框架中的事件都是首先由视图进行接收,然后传递给场景,再由场景给相应的图形项. ...
- uwp - 获取当前屏幕宽高/应用宽高
原文:uwp - 获取当前屏幕宽高/应用宽高 public static Size GetScreen() { var applicationView = ApplicationView.GetFor ...
- uwp - ContentDialog - 自定义仿iphone提示框,提示框美化
原文:uwp - ContentDialog - 自定义仿iphone提示框,提示框美化 为了实现我想要的效果花费了我很长时间,唉,当初英语不好好学,翻官网翻了半天才找到,分享给刚入门的新手. 首先看 ...
- caffe 的架构设计及其依赖包的解析
Caffe | Deep Learning Framework Web Classification Demos caffe(全称,Convolution Architecture For Featu ...
- OpenGL(十九) gluOrtho2D、glViewport、glutInitWindowSize区别与关系
gluOrtho2D定义剪裁面,通过正交投影,把景物(模型)按照1:1的比例绘制到一个剪裁面上,相当于对世界坐标窗口的一个截取. glViewport定义视口,即视见窗口,是从世界坐标系窗口到屏幕坐标 ...
- Folly: Facebook Open-source Library Readme.md 和 Overview.md(感觉包含的东西并不多,还是Boost更有用)
folly/ For a high level overview see the README Components Below is a list of (some) Folly component ...
- WPF中StringFormat的用法
原文:WPF中StringFormat的用法 WPF中StringFormat的用法可以参照C#中string.Format的用法 1. C#中用法: 格式化货币(跟系统的环境有关,中文系统默认格式化 ...
- [Android] 环境优化配置Android Studio发展NDK
======================================================== 作者:qiujuer 博客:blog.csdn.net/qiujuer 站点:www. ...
- PHP获取月末时间
用php获取月末 $a_date = "2009-11-23"; echo date("Y-m-t", strtotime($a_date)); //第二种 ( ...
- jquery 相对元素
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...