使用Loadrunner11录制FTP协议脚本

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liaoyanyunde/article/details/50877566

安装Loadrunner11。

以测试上传XML文件到FTP服务器的并发测试为例。具体步骤如下:

(1)virtual user generator中新建脚本。

File->New,选中New Single Protocol Script中的FTP协议,点击Create:

1)application type应用程序类型

Ø  InternetApplications是指我们要录制的对象是一个网络应用(B/S)

Ø  Win32Applications是用来支持Win32的标准客户端的(C/S)

2)Program to record要录制的程序

我们需要录制的程序名,在录制B/S应用脚本时,Loadrunner默认支持的Web客户端是IE,也可以使用自己安装的其他浏览器程序(如360和google),不过使用其他的浏览器,很可能导致录制完之后脚本为空,所以,最好使用默认的IE浏览器。如果使用IE浏览器进行脚本录制时出现脚本内容为空的现象,可尝试换一个版本的IE浏览器,或者重启电脑重新录制,或者使用端口映射进行更加严格准确的脚本录制。

而此处我们录制的FTP协议脚本属于C/S应用,故Programto record要选择FTP客户端(如8uftp.exe)。

3)Program arguments:程序参数,在某些应用程序后需要添加一些参数才能运行,这里提供的是填写参数的位置。

注:在录制B/S应用脚本时,该字段是URL Address URL地址:我们录制开始所需要访问的URL地址,也就是我们第一个请求所需要访问的页面。

Workingdirectory工作目录:用来指定录制后脚本所存储的目录

5)Record into Action录制到操作:我们录制的内容放在哪个Action中。

注:Action是loadRunner提供的一种类似于函数的脚本块,我们通过将不同的脚本块放在不同的Action中实现代码的高内聚低耦合

Ø  Vuser_init存放LoadRunner中用户的初始化操作,只能有一个;

Ø  Action是非常自由的,可以当做普通的函数,可以有多个(单击“New”便可新建Action);

Ø  Vuser_end存放LoadRunner中用户的结束操作,只能有一个。

6)Record the application startup

指我们一旦启动了应用后就将开始录制我们应用收发的协议

7)Option设置录制选项设置

单击Option、点击Tools->Recording Options或者在工具栏点击图标,打开“Recording Options”对话框,便可开始设置录制选项。

对于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协议涉及多个端口)。

完成录制选项的设置之后,点击“Start Rcording”对话框中的“OK”按钮,开始录制脚本。打开8UFtp之后,登录172.31.27.2这个FTP服务器,执行上传文件的操作,然后退出,完成脚本的录制。

(3)脚本回放

       完成脚本录制之后,未验证脚本的正确性,需要对脚本进行回放。在进行脚本回放之前,可以通过Run-Time Settings和General Options设置对回放的运行逻辑和其他的一些常规项进行设置。

       1)设置完成后,单击菜单栏中的 Run 按钮也可直接按【F5】键回放脚本。

2)脚本回放的过程中我们可以通过运行日志来查看脚本运行结果。

3)脚本运行完成后,还可以通过:viewàTest Result操作来查看回放结果。(注:FTP脚本回放无法查看回放结果)

(4)脚本增强

       脚本增强是指根据业务流程和测试目标对录制生成的脚本进行优化,具体可以通过删除与业务流程无关的脚本、插入事务、参数化等操作来进行。

1)删除与业务流程无关的脚本

       本次FTP脚本录制的具体业务流程为:登录FTP服务器->上传XML文件到FTP服务器—>退出FTP服务器。据此,我们可以删除脚本中与业务无关的脚本。如下图所示是业务无关脚本删除前后的对比。可以发现,删除与业务无关的脚本之后,脚本逻辑变得更加简洁清晰。

删除业务无关脚本之前

删除业务无关脚本之后

2)关联

所谓的关联(correlation)就是把脚本中某些写死的(hard-coded)数据,转变成是撷取自服务器所送的、动态的、每次都不一样的数据。具体的操作,详见《性能测试进阶指南—LoadRunner11实战》中第161页。本次脚本中不涉及关联,故不需要进行关联的设置。

3)插入事务

事务是一系列操作的集合,插入事务使脚本逻辑更直观,方便今后的性能分析。本次脚本中的事务可以划分为以下三个:“登录到FTP服务器”事务、“上传XML文件到FTP服务器”事务、“退出FTP服务器”事务。

4)参数化

在参数化时,还可以根据实际需要设置参数更新选择的方式。如下表所示:

LoadRunner参数更新方法和数据分配

Select next row

Update Value on

实际运行结果

sequential

each iteration

在某次循环中所有用户取值相同。

所有用户第一次循环取第一行值,第二次循环取第二行值

each occurrence

在某次循环中或者脚本中使用参数的地方,所有用户取值相同。
脚本中出现要使用参数的话,参数值就更新一次,循环一次值再更新一次。

once

在所有的循环中所有用户取值相同。
所有的用户所有的循环中,只用一个值(即参数中的第一行值)

random

each iteration

不同的用户,在不同的循环次数中,随机取值

each occurrence

不同的用户,脚本中出现要使用参数的话,随机取值一次,循环一次再随机取值一次

once

不同的用户,不管循环多少次,只随机取值一次。

unique

each iteration

若选择手工自配参数,那LR按照每用户几个参数先分配参数,然后进行循环。
若选择自动分配参数:
Controller中edit schedule中run until comletion:按照循环次数先分配第一个VU(例如设置的循环次数为3,那分配给第一个VU 3个参数值),然后接下来的3个参数值分配给第二个VU,依次类推…...
Controller中edit schedule中run for:若选择自动分配,LR将按照用户数均分参数,剩余的参数不使用。

each occurrence

只能手工分配用户,给每个用户分配好X个参数后,在脚本中有参数的地方,就使用已经分配好的X个参数。

once

按照用户数分配给每个用户分配一个参数而已。以后的循环这个用户就使用这一个参数

5)调整脚本运行逻辑

如果你录制脚本的过程中便已经将相应的初始化操作和结束操作分别放在了vuser_init、Action、vuser_end中,则不需要进行这一步。因为我们录制脚本时把所有的操作都放在了Action中,所以要对vuser_init、Action、vuser_end中的内容进行调整。在进行FTP服务器并发测试时,每个用户只需要登录一次,退出一次,上传文件可以执行多次,所以我们可以报登录FTP服务器的脚本放在vuser_init中,上传XML文件到FTP服务器的脚本放在Action中,退出FTP服务器的脚本放在vuser_end中。因为在Run Logic默认设置中,vuser_init和vuser_end只会在开始和结束时被运行一次,而Action可以反复被运行。

猜你喜欢

转载自blog.csdn.net/liaoyanyunde/article/details/50877566
今日推荐