51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 939|回复: 0
打印 上一主题 下一主题

[转贴] LoadRuner脚本开发之文件参数化

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:19
  • 签到天数: 933 天

    连续签到: 5 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-4-21 09:59:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    参数类型设置完成后,需要设置参数的数据源,根据不同的业务需求需要不同的数据,这些数据可以是来自真实的历史数据也可以是为了测试而构建的数据,同时对参数中的数据如何调用也需要设置。
      1.Browse属性
      该设置项用来选择参数文件的路径,需要注意的一个问题是,一般在做参数化的时候没有单独把参数文件放到一个文件夹下,便无需修改,但是如果将参数化文件合并成一个文件并放到一个专门管理参数的文件夹下,就要选择参数的路径,否则无法读到参数文件中的参数,具体如图所示。

    选择好参数文件后,参数文件中所有的数据将会被显示出来,如图所示。

    注意:这样设置同样有一个问题,如果把这个脚本拷贝到别的机器上运行,或者是脚本的路径发生了变化,这个路径就是错误的路径,也就是现在的脚本可移植性不好,当更换路径后,运行时一定会出错,因为这里写的是绝对路径,如果换到其他的一个盘或机器,运行就报错了,那么怎么解决呢?这里采用相对路径来解决这个问题,将Browse设置为相对路径,将脚本的根目录使用“.”来代替,如图所示,这样就不会出错了。

     2.Edit With Notepad设置
      点击Edit With Notepad按钮,打开记事本,记事本内容中第一行是参数名称,第二行是参数的初始值。参数之间使用逗号隔开。可以在记事本中对参数值进行修改或添加、删除,如图所示。
      如果要在没有启动记事本的情况下添加列,可以在参数属性对话框中点击Add Column按钮,弹出Add new column对话框,输入新列的名称,点击OK按钮,脚本生成器会将该列添加到表中,并显示该列的初始值,如图所示。


     3.Select column设置
      指明参数选择的列。这里有两种方式选择参数的列,可以按列号来选择也可以按列名来选择。列号是包含所需要数据的列的索引,列名显示在每列的第一行,一般情况下为了避免出错,都选择按列名来选择参数数据的列,如图所示。

    4.Column delimiter设置
      选择列分隔符,一般情况下都是默认选择逗号作为分隔符,但其实这里也可以指定逗号、空格符等进行分隔,列分隔符指的是当参数化文件中出现多列参数时(如该实例中的参数有user和pw),参数与参数之间如何隔开。
      5.File data line设置
      在脚本执行时选择第几行数据开始使用。如果选择从列标题后的第一行参数开始执行的话,就在File data line中输入1。
      6.Select next row设置
      值的注意的是所有的Select next row属性选择是针对虚拟用户来说的,也就是这里的策略是针对Controller设置的,在调试脚本的过程中是看不出来的,其决定虚拟用户选择参数的过程。
      ·顺序(Sequential):虚拟用户Vuser按照行顺序读取参数文件中的数据,如果参数文件中的数据都执行了一遍,则返回到第一行,继续执行。
      · 随机(Random):每个Vuser从表中随机地读参数数据,假设有50个数据,那么随机数将在1~50之间随机取一个,然后把这个数作为行号,去读取相应行的参数数据。
      · 唯一(Unique):该方法分配一个唯一的有顺序的值给每个虚拟用户作为参数。
      当该选项被选中后,When out of values和Allocate Vuser values in the Controller两个选项变成可用状态,如图所示。

     When out of values:表示当参数不够时如何处理,通常有以下三种方式:
      Abort Vuser:忽略剩下所有的虚拟用户不再运行。
      Continue in a cyclic manner:将参数继续循环一次,虚拟用户按顺序参数进行迭代,这种情况与选择顺序的策略方法一致。
      Continue with last value:一直使用最后一个数据进行后面的迭代。
      Allocate Vuser values in the Controller:指在控制器运行时,如何分配这些参数,有以下两种方式:
      Automatically allocate block size:由LoadRunner自动分配每个虚拟用户使用的参数情况。
      Allocate XXX values for each Vuser:为每个虚拟用户分析所设置的虚拟用户数,假设设置为20个,那么第一个虚拟用户使用的参数为1-20个,第二个虚拟用户使用的参数为21-40个,以此类推。
      注意:在实际测试过程中不要将该值设置为参数的总数,假设一共有10000个参数,如果将该值设置为10000,那么第二个虚拟用户就没有数据可用,这样在控制器的输出错误信息中会提示参数错误的相关信息,一般将所有参数平均分配到不同的虚拟用户即可或者设置为LoadRunner自动分配。
      l Same link as ***:与某个已定义好的参数取同一行值。注意:该方法要求至少其中的一个参数必须是Sequential、Random或Unique。
      如下面的数据表有2列:
    1. User PW
    2.   T01 0001
    3.   T02 0002
    4.   T03 0003
    复制代码
    将参数PW“Select next row”设置为“Same Line as user”。当User选择T01时,那么参数PW(密码)只能选择0001。
      7.Update value on设置
      设置脚本迭代过程中取值的策略,其结果可以在代码调试的日志中体现。
      如图所示对登录用户名和密码进行参数化。

    --->Each iteration:脚本每迭代一次都访问数据表中的下一个值,也就是说在同一次迭代的过程中,不管同一个参数出现多少次都只使用这一个参数,如图所示是参数第一次迭代的结果。

     --->Each occurrence:在每次迭代的过程中,参数的值都更新,即使在同一次迭代过程,如果某个参数使用了多次,其选择的值也会更新而并不会使用相同的参数值,如图所示。

    --->Once:在同一个Vuser中一直取同一个参数,表中其他的数据不参与迭代的过程,如图所示。








    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-20 01:46 , Processed in 0.064380 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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