我正在尝试使用真实的请求频率分布来自动化服务器的功能测试。(某种负载测试,某种模拟)
我选择了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
有什么更好的方法可以做到这一点?