loadlording 发表于 2008-9-2 15:39:45

LoadRunner进阶十问--2. 唯一流水号的生成

LoadRunner进阶十问--1.客户经理和客户的测试数据设置?


看了很多问题,建议初学者还是多读读帮助,或者找一本书来读读,别总说市面上的书写的比较浅,其实这里面的很多问题,那些“浅”的书都涉及到,甚至是单独某个章节的讨论。

我们不妨讨论一些和LoadRunner和性能测试相关的有趣问题,我在接下来的一段时间里,会陆续提出十个场景相关的问题,大家可以尽情的发表自己的见解,最后,如果不是特别冷清的话,我会在每个问题提交后的第五天说一下我个人认为比较好的解决方案和实际的操作,供大家参考。

今天放第二个问题。
场景是10个并发用户多次迭代执行20分钟,会执行多次交易,但是每次提交请求时要生成唯一的流水号提交给服务器端。
因为要储备测试数据,所以交易数据不会删除。
流水号的长度是11位,只能是数字,交易的响应时间是0.1秒到10秒之间。
流水号要10个用户整体考虑,任何两个都不能重复,如何考虑流水号的生成?

云层 发表于 2008-9-2 16:14:53

假设我们需要的id是value=12345678910
我们可以这样参数化{uniquenum}{vuserid}
这两个参数用对应的参数化类型即可,设置uniquenum数据为0000000001-9999999999,
vuserid直接取虚拟用户的编号即可,10个用户可能会出现点问题,那么你手工-1就行了

loadlording 发表于 2008-9-2 18:38:58

感谢云层的回答,但是可能还没有详细的考虑。

这个场景是多次执行的,如果你只是通过Unique配置,很难知道哪些数据被用了,哪些没有用,以后执行怎么处理,可能还会出现重复。

所以应该在配置中有每次执行的痕迹。

云层 发表于 2008-9-3 12:20:50

多谢提醒,如果是这个样子我可能会和时间绑在一起:)

nataliedu 发表于 2008-9-4 17:31:29

我觉得大概估计一下迭代执行20分钟,执行多少次交易,然后用unique number来参数化,设置block来为每个vuser设定它使用的参数的范围。

下一次测试的参数值只要从start值 + 10*block值开始就可以了

loadlording 发表于 2008-9-8 23:23:19

nataliedu提供的确实是一种思路,我们在最开始的时候就是这样用的,后来发觉每次都要修改开始的数值很麻烦。
后来像云层说的,我们考虑和时间放在一起。
10位流水号,
1-2放的是唯一值,每个Vuser指定一个,不会重复
3--5放的是从第一次开始执行时的第几天,1-999天,够运行快3年了(计算得出)
6-10,放的是每天的第几秒(计算秒数,对86400取余)
11位,放的是0-9的顺序执行,因为是0.1秒级的,要避免同一秒内不要重复,一般不会很快的在同一秒内执行场景两次的。如果想更唯一,获得毫秒数,除以100取整。

当然还有其它的方法,以上只是作为一个参考吧。
页: [1]
查看完整版本: LoadRunner进阶十问--2. 唯一流水号的生成