我正在尝试使用请求的实际频率分布来自动化服务器的功能测试。 (排序的负载测试中,排序模拟)如何为给定的概率分布生成直方图(用于功能测试服务器)?
我选择了Weibull分配,因为它“之类的”我观察到的分布一致(快速斜升,迅速但不脱落瞬间)
我用这个分布产生应每天发送给定的开始和结束日期
我砍死在一起,在Python的算法之类的作品,但感觉缺憾之间的请求数:
how_many_days = (end_date - start_date).days
freqs = defaultdict(int)
for x in xrange(how_many_responses):
freqs[int(how_many_days * weibullvariate(0.5, 2))] += 1
timeline = []
day = start_date
for i,freq in sorted(freqs.iteritems()):
timeline.append((day, freq))
day += timedelta(days=1)
return timeline
有什么更好的方法来做到这一点?
该算法总是返回预期的响应数量,但它通常不会恰好在开始和结束日期之间适合它们,我不确定这是否可能,除非我手动弄乱频率? – 2008-09-10 11:18:50
它们不能保证在开始日期和结束日期之间适合,因为您使用的是无限支持的概率分布。只要你使用从分配中返回的随机数作为关键字,你就会遇到这个问题。 – Kai 2008-09-11 10:06:51