脚本增强的总结
1、脚本采用录制还是抓包手写没有本质的区别。
2、脚本增强技术,一般事务和检查点是属于必加的。
参数化
三种方式:
-
选中需要参数化的值,右键-->replace with a parameter,然后点击 open parameter list,设置参数的值,
-
先把参数写入一个txt/csv文件,点击open parameter list,从文件读取参数,然后将需要参数化的值参数化
-
直接点击open parameter list,使用LR的txt文档设置参数的值
然后打开log的参数调试模式,运行查看参数使用情况
-
函数类型:通过工具内置的、扩展的函数来生成对应的参数值。
-
文件类型:通过读取特定的文件来获取参数值。常规的参数文件格式都是CSV格式(以逗号分隔的文件)
参数取值方式
Update value on
用来设置参数更新参数值的时机。可选的选项有三个:
-
Each Iteration:每次迭代,即每一次迭代开始的时候,参数就会去读取或者更新参数值。在下一次迭代开始之前,不论该参数是否被调用、调用一次还是多次,参数的值都是保持不变的。 该模式下,参数值的更新和迭代有关,和调用无关。 参数值的更新次数等于迭代次数。
若一个迭代里多次调用该参数,这个迭代中的参数值都是一样的。
-
Each occurrence:每次出现,所谓出现就是参数被调用。即每一次参数被调用之前,参数都会去读取或者更新参数值。调用一次,变更一次。 该模式下,参数值的更新只和调用有关,和迭代无关。 参数值的更新次数等于调用次数。
若一个迭代里多次调用该参数,这个迭代中的参数值是不一样的。
-
Once:仅一次,是指参数第一次被调用时,参数会获取一个参数值。之后不论该参数是否被调用,参数的值都不会发生变更。 参数值的更新次数等于1.
不论多少个迭代或调用,参数的值始终是一样的。
Select next value
该选项是用来设置参数读取参数值的方式。
-
Sequential:顺序取值。
-
Random:随机取值。
-
Unique:唯一取值。 在LR中,对于Unique的实现采取的是:先分配再顺序的方式。
-
先分配:先将所有的参数值按照块大小提前分配给每一个虚拟用户
块大小设置在paramter type中的unique number中的block size per vuser
-
再顺序:每一个虚拟用户都会按照顺序取值的方式使用自己的参数值。
通过先分配再顺序的方式,最低可以保障虚拟用户之间不会使用重复的值。如果分给每一个虚拟用户的值足够多,在顺序取值的基础上,就可以保障每一个虚拟用户每一次取值都是唯一的。
-
-
same line as XXX:该选项只有当脚本中出现2个及2个以上的文件类型的参数时才会出现。 最终是参数A可以选择: same line as 参数B这样的操作。 效果:调用参数A的时候,参数A会使用和参数B相同行号的值。 该方式就是用来建立两个参数之间的一一对应关系的。 该方式不参与和 Update value on 选项的组合。
Select next value为Unique时的选项
-
when out of values:out of values是指参数更新参数值的次数大于按块所分配到的参数值的个数。该选项就是用来设置满足该条件时的处理方式。有以下三种:
-
abort vuser:中止虚拟用户,即虚拟用户会停止执行脚本。
-
Continue in a clycle manner:继续执行,循环使用所分配到的值。
-
Continue with last value:继续执行,使用最后一次的参数值。PS选择abort,保证了每一次都是唯一的。 选择continue,则意味着放弃了唯一的诉求,只保留了分配的效果。
-
-
Allocate:用来设置块大小,方式有两种:
-
Auto:自动方式,仅适用于每次迭代。块大小等于Run logic中的Number of iterations的值。
-
Allocate:手动方式,由用户手动设置块大小。
-
LR中参数化的注意事项
-
以记事本方式编辑参数文件时,要确保最后一个有效的参数值之后有且只有一个回车。
-
随机取值和顺序取值本质上是没有任何区别的。
-
要实现唯一或者分配的效果,则可以使用Unique方式来实现