转自:http://blog.csdn.net/on_my_way20xx/article/details/8559761
1. 唯一性
唯一性的保证非常常见,也非常重要.通常我们的手段有:
(1) 使用unique number
这里面要注意的地方有四个
1) start 参数 每个虚拟用户起始的数值
2) block size per user 每个虚拟用户分配的数据区间大小
这两个参数搭配,可以掌控每个虚拟用户的参数范围,举个例子.
start 参数设置为 200, block size per user 参数设置为 10000,当前共有5个用户,那么5个用户每个的区间是:
用户1: 200~10199,
用户2: 10200~20199
用户3: 20200~30199
依次类推
(2) 增强的unique number
搭配random number 进一步减少重复的几率. 随机数虽然重复的几率很小,但是它是有规律的,对于上面例子中的第一个用户来说,它的取值顺序始终是
200,201,202,203 ....等等,对于要求唯一的情况下,重复运行脚本必然会造成参数重复. 另外 当参数化要求数据量特别大的时候,也可以用下面的方法
增加一个Random Number的参数,
用以下的方法将随机数拼接到 Unique Number的前面
- //拼接前缀字符串防重复
- strcat(perfix,lr_eval_string("{perfix}"));
- strcat(perfix,lr_eval_string("{perfix}"));
- strcat(real_merch_order_no,perfix);
- strcat(real_merch_order_no,lr_eval_string("{merch_order_no}"));
//拼接前缀字符串防重复
strcat(perfix,lr_eval_string("{perfix}"));
strcat(perfix,lr_eval_string("{perfix}"));
strcat(real_merch_order_no,perfix);
strcat(real_merch_order_no,lr_eval_string("{merch_order_no}"));
(3) 还是增强的unique number
通过给不同Vuser 设置不同的编号来进一步杜绝重复的可能. 做法如下:
新建一个File的参数user_id,依次输入1,2,3,4,5.....n 和vuser数保持一致,并设置select next row 为 unique,update value on 为once;
这样,每个vuser 启动的时候都会取一次,这个值搭配上 unique number 可以实现不同用户的unique number 以 自身user_id开头.
当然还有更简单的办法 直接选择参数类型为 Vuser ID 也可以.
(4) 几乎不可能重复的 datetime
给参数前面拼接一个datetime 设置格式为201308201531250075 精确到毫秒的,这样重复的可能性进一步降低.