J'essaie d'automatiser les tests fonctionnels d'un serveur en utilisant une distribution de fréquence réaliste des demandes. (Sorte de test de charge, une sorte de simulation)Comment générer un histogramme pour une distribution de probabilité donnée (pour tester un serveur)?
J'ai choisi la distribution Weibull comme « une sorte de » correspond à la distribution que j'ai observé (rampes rapidement, tombe rapidement, mais pas instantanément)
J'utilise cette distribution pour générer le nombre de demandes qui doivent être envoyés chaque jour entre un début et une date de fin
J'ai piraté ensemble un algorithme en Python ce genre de travaux, mais il se sent kludgy:
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
Quelles sont les meilleures façons de faire cela?
Cet algorithme renvoie toujours le nombre attendu de réponses, mais il ne correspond généralement pas exactement entre les dates de début et de fin, je ne suis pas sûr que cela soit possible à moins que je ne manipule manuellement les fréquences? –
Ils ne sont pas garantis d'être ajustés entre les dates de début et de fin car vous utilisez une distribution de probabilité avec un support infini. Tant que vous utilisez le nombre aléatoire retourné de la distribution inchangé comme une clé, vous allez avoir ce problème. – Kai