编写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 ...
随机推荐
- 【OC语法要闻速览】一、方法调用
调用方法 [object method]; [object methodWithInput:input]; output = [object methodWithOutput]; output = [ ...
- oracle授权grant
alter any cluster 修改任意簇的权限 alter any index 修改任意索引的权限 alter any role 修改任意角色的权限 alter any sequence 修改任 ...
- 用acharengine作Android图表
首先要下载acharengine的包,里面重要的有lib和一些简易的工具,等下我附在文件夹里,而这些包都必须调用的. 然后以下附上主要的作图代码: package org.achartengine.c ...
- 【狼窝乀野狼】Parallel浅尝辄止
前段时间看到园子里面有同学在用Parallel进行批量插入数据库.后面也有很多同学针对这一事件给出了自己的看法和见解.我在这里不评论内容的好坏,至少能将自己东西总结分享这个是要靠勇气和毅力. 闲话少说 ...
- Bootstrap Thumbnail
Square Thumbnail with Image <!-- Square Thumbnail with Image --> <com.beardedhen.androidboo ...
- 构建自己的PHP框架(日志)
完整项目地址:https://github.com/Evai/Aier 日志在程序开发中有着十分重要的作用,帮助开发者更快的找到程序错误并即时处理.下面制作一个非常简单的记录日志类. 在 servic ...
- WPF 绑定父类属性
原文:WPF 绑定父类属性 1.绑定父控件的属性. <ContextMenu x:Key="ContextMenuColoum"> <MenuItem Heade ...
- WPF 4 单词拼写检查(SpellCheck)
原文:WPF 4 单词拼写检查(SpellCheck) 在WPF中 Textbox 和RichTextBox 控件都内置了拼写检查属性,但该属性目前默认仅支持English.Spanish. ...
- NoSQL Manager for MongoDB 4.6.0.3 带key
NoSQL Manager for MongoDB 4.6.0.3 是一个Windows平台的MongoDB高级管理工具.请低调使用. 博客园文件一次最大不超过10M. 官方安装包: mongodbm ...
- 对复杂字典Dictionary<T1,T2>排序问题
原文:对复杂字典Dictionary<T1,T2>排序问题 //VoltageCount类(电压值对应的数量): public class VoltageCount { ...