(十八)除File外的参数化类型、参数池应用

之前的File参数类型是支持用户手写的,其他的参数类型不支持手写参数值。
一、Data/Time
①若要创建新格式,则先编辑,后Add format
②Offset:
在Sample中显示的是当前某种格式的日期/时间,但有时我们并不需要当前的时间,作为参数值,这里就可以设置提前、延后、只有工作日时间。
Offset parameter x days and xx:xx:xx
Working days onl
Prior to current

二、Group Name
要放到控制台上。
举例:%06s:组名最少6位,若不够则在组名前面补0
三、iteration number
应用场景一:如果调试脚本时,脚本中的参数在每次迭代时都不能相同(只要不同即可,没有其他的要求),则使用该类型比较合适。若用file,还得用Excel或者notepad写一个文件,比较麻烦。
四、load generator
五、Random Number
min: max:
六、Unique Number
类似于File中的选值方式unique
需求:手机号138、139号段,1000用户并发测试,测试过程中要求手机号不能重复出现,测试时间为1个小时。已知:单用户在一个小时的运行时间内循环次数为457次
分析:①如果不想使用file类型的唯一取值方法,可以使用unique number类型。
②如果单用户运行一个小时后循环次数为n,则1000用户中每个用户循环时间小于n.(因为虚拟用户数多,压力大,响应时间长)
步骤:
①脚本:手机号参数化类型为unique,start 1 Block size per VU:500(因为单用户在1小时循环次数为457,所以当并发操作时,并不会超过这个数,设置500是安全的)
②controller:根据并发测试设置即可(设置每个用户的迭代次数为457)。

  • 这个在因为没有实际脚本,若只是简单的输出虚拟用户名和手机号码(以上面参数化形式),很可能会报错(不是事务错误)。因为在各个计算机在1小时很有可能迭代次数超过457。能够将此场景设置出来,能运行即可。(若出现error,error是没有一个用户块中数据不够,它默认使用最后一个数据,程序依然能够运行下去)
  • 这样的测试可以做多少次?
    若虚拟用户块设为500,有1000个虚拟用户,那么需要500000个数据。
    138号码后面还有8位,所以可能组合成10^8次个号码。
    10^8/500000=200次。

七、Vuser ID
可以用来区分不同的虚拟用户,在控制台有效

八、表数据参数类型Table
Data Wizard
数据源:数据的源头
如果把数据当成水,则数据库就相当于水库,数据源相当于连接水库的水管。
操作步骤:(这里用的是access)
1)创建数据库:在已安装的数据库管理软件中新建一个数据库lrtest,然后新建一张表user(列1:user 列2:password)
2)为当前数据库创建数据源:
控制面板—>管理工具—>数据源(ODBC)

这里写图片描述

这里写图片描述
将数据源和数据库联系起来,在“选择”中指定数据库,数据源名称为:dbtest
这里写图片描述
然后确定即可
3)通过数据源取数据
点击Data Wizard—>选择”Specity SQL statement menu”—>create—>机器数据源(选择刚新建的数据源名称)
这里写图片描述
下图中Connection是选择数据源后自动写好的;下面的SQL语句是自己手动写
这里写图片描述
这里写图片描述
参数池应用:
1、lr自带的tours项目,购买机票脚本中,用户名和密码分别做参数化,用户名aa1、aa2……..aa30,共三个虚拟用户,迭代两次要求
1)登录过程在init找那个,参数池的策略:顺序+每次迭代、唯一+每次迭代
2)登录过程在action中,参数池策略:顺序+每次迭代、唯一+每次迭代
结果要说明:

若init中要用到参数,在Action中也会用到此参数,则init的参数和第一次Action的参数值相同。
1)顺序+每次迭代:因为参数化的没在action中,所以两次迭代都是一个用户买的票(一个用户分析):因为在这种模式下,每个用户执行的都相同,所以aa1 买了6张票
唯一+每次迭代(若选择默认的自动分配块大小,则块大小为迭代次数2,所以将参数表2个一块分开了):aa1 2张;aa3 2张;aa5 2张
2)顺序+每次迭代:因为参数化在action中,所以两次迭代是两个用户买的票:因为在这种模式下,每个VU执行相同,所以是aa1 3张;aa2 3张;aa3 3张
唯一+每次迭代(默认块大小为迭代次数2):aa1 —aa6各1张

posted @ 2018-07-16 16:58  测试开发分享站  阅读(113)  评论(0编辑  收藏  举报