Tests Artillery pour indicateurs de montée en charge ?
Hello ! Je m'étais amusé il y a un quelques semaines/mois à faire des scripts artillery[1] pour pollen. J'avais jusque là laisser ça se faire dans le CI, avec une instance démarrée durant l'exécution et appelée en local avec un simple sondage normal à deux choix. J'ai repris cette semaine tout ça, j'ai monté une instance sur demo4[2], avec trois sondages[3] : - un "classique" à deux choix - un condorcet à six choix - un borda à 20 choix. J'ai adapté mon scripts pour balancer sur chacun le même processus de tests : 1/ 20 votes en 1 minute (~ 1 vote toutes les 3 secondes) 2/ 1 vote par seconde pendant 1 minute 3/ Une montée progressive de 1 vote par seconde à 10/seconde pendant 3 minutes 4/ 5 votes par seconde pendant 1 minute 5/ 3 votes par seconde pendant 1 minute 6/ 20 votes en 1 minutes Cela fait entre 1500 et 1600 votes en 8 minutes. Si on regarde les résultats finaux (pages html en pièces jointes), on s'en sort avec ~10% d'erreurs 500 dans le processus. Ces erreurs proviennent de la période de pic des utilisateurs, et correspondent à des erreurs d'insertions en base de données. On se retrouve avec des ``` org.hibernate.StaleObjectStateException Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) : [org.chorem.pollen.persistence.entity.PollImpl#Poll_7ceBowNyRf2wrsvhrNe1Vw] ``` Si je remonte la provenance au niveau service dans la stack : ``` at org.chorem.pollen.services.service.PollenServiceSupport.commit(PollenServiceSupport.java:276) at org.chorem.pollen.services.service.FeedService.saveFeed(FeedService.java:206) at org.chorem.pollen.services.service.FeedService.addFeedEntry(FeedService.java:198) at org.chorem.pollen.services.service.FeedService.addVoteFeedEntry(FeedService.java:183) at org.chorem.pollen.services.service.FeedService.onVoteAdded(FeedService.java:107) at org.chorem.pollen.services.service.VoteService.addVote(VoteService.java:282) ``` Il y a peut être un bout de fonctionnalité à revoir ici (ou à virer complètement ?) J'ai aussi dans mes résultats des erreurs 400, je n'ai pas vu dans artillery comment avoir une trace des requètes/réponses (ou je suis passé à côté). Je soupçonne des soucis dans le jeu de données que je génère, car je vois rien du tout dans les logs côté serveur quand ça se produit. [1]https://gitlab.nuiton.org/chorem/pollen-artillery-tests/ [2]https://pollen-artillery.demo.codelutin.com/ [3]https://gitlab.nuiton.org/chorem/pollen-artillery-tests/-/blob/master/artill... -- Yannick Martel Code Lutin <http://www.codelutin.com/> +33 2 40 50 29 28 Restez chez vous.
participants (1)
-
Yannick Martel