Open dpiraud opened 8 years ago
la pause fait partie du dsl gatling est justement est en seconde, justement pour pouvoir envoyer le GET à la synthèse en seconde, l'idée de l'envoyer en ms n'est pas mal car ça va raccourcir le temps d’exécution du script gatling par un temps égale à nombre de package secondes, mais sinon ça demande la précision: si on demande la synthèse à la milliseconde x est ce que les messages envoyé entre x et x+1 sont compté ?
De ce que je vois du script:
Le timestamp de début de paquet est enregistré avant la création du timstamp de la première requête Le timestamp de fin de paquet est enregistré après la création du timestamp de la dernière requête Au pire, timestamp de début = timestamp de la première rqt et timestamp de fin = timestamp de la première rqt... donc, pour moi, envoyer en ms sans faire de pause avec le code actuel est OK.
Je confirme l'analyse de dpiraud. Il faut soit soit virer le paramètre duration et passer un timestamp de fin ou bien passer la duration en ms.
A mon avis, laisser que le check final, on a perdu pas mal de temps que pour voir certains aspects de timestamp et duration...ça se complique alors qu'il y a de bonnes façons de vérifier la validité des donnés émis.
je crois qu'on va basculer vers un appel de la synthèse avec un "timestamp" et une "duration" en ms ! j'apporterai un ensemble de correction sur le script ce weekend ;)
Dans le script gatling, après avoir envoyé un paquet de N rqt, il y a une instruction pause(1) qui permet de terminer la seconde courante pour pouvoir, ensuite, envoyé la durée de la synthèse demandée en secondes en "coupant" les ms. Ce fonctionnement semble KO: Je suppose que pause() est basé sur Thread.sleep() et Thread.sleep() ne garantit pas que la durée de la pause soit d'au moins le temps demandé: https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#sleep(long)
Avec le code tout en bas qui log le timestamp avant/après la pause, la pause est mesurée entre 489 et 1262 ms pour le script.... Donc on peut perdre 500ms de données avec pas de chance.
Pour moi, on peut _Augmenter "à la louche" la pause pour être assuré d'avoir au moins 1 seconde de pause. _Envoyer la durée de la simulation demandé directement en ms (Pour les synthèses intermédiaires et pour la synthèse globale). ==>Je penche pour la seconde proposition :)