Programme d'alimentation aléatoire de données

Bonjour
Je poste ici sans trop savoir ou placer ce sujet
J’ai développé et posté sur mon github un programme python permettant de générer aléatoirement de la données dans dolibarr.

Le programme effectue son alimentation avec les api native (pas besoin d’avoir un accès à la base de données et c’est fonctionnellement plus « propre »)
Le but étant d’avoir de la data pour faire des tests de volumétrie dans le cadre d’un projet perso

Je rajouterai (ou si d’autres on envie de s’en occuper) des éléments (inter, ticket, …) au fil de mes besoins.

Bonjour :slightly_smiling_face:
Sympa cette idée!
Les paramètres sont a définir dans les fichiers .txt uniquement c’est ça?

dans les fichiers .txt tu précises l’url de l’api et le token
c’est pour l’instant dans le programme que l’on définie le nombre d’élément que l’on souhaite créer :

nbNewCLient=100
nbNewProduit=300
nbNewFacture=0
nbNewOrder=500
nbNewProposal=0
yearToFill=2023

ici on crée une centaine de clients (et un contact associé), 300 produits et 500 commandes depuis 2023

C’est top ca. merci
Exactement ce qu’il faut pour tester une nouvelle version !

visiblement avec Faker on peut utliser plusieurs langues?

fake = Faker('fr_FR')

au Top!!!

Oui, ensuite on ne teste pas l’interface de création, mais pour vérifier des performances de volumétries et le choix d’index c’est pas mal aussi. Idem pour benchmarker des serveurs : on lance le programme avec le meme nombres d’éléments à créer et on regarde le résultat en terme de temps de traitement (je sens qu’il y a des hébergeurs qui vont avoir des sueurs froides…)

et oui on peux même choisir des spécificités locales pour les nom des personnes.

Pour le moment il y a pas mal de paramètres qui sont directement dans le code du programme, comme le nombre d’éléments, l’intervale de date, le nombre de ligne (min, max), … mais cela évoluera dans le temps.

oui tout à fait, c’est bien un programme pour « remplir » dolibarr et ne pas avoir une instance toute vide pour tester etc.
Le fait de pouvoir alimenter un nombre précis de produits etc c’est top.

Salut Charlène @defrance
Super ça ! Merci merci
@+

hello
petite mise à jour du jour ^^

ajout du remplissage des interventions et un peu de refactoring

Bonjour :slightly_smiling_face:
@defrance merci

hello
un petit up du programme d’import, avec cette fois :

  • l’ajout d’un seul fichier de paramétrage au format yaml
  • mise à jour de l’alimentation des fiches d’interventions pour avoir des dates antérieurs (pour cela il faudra attendre la V22 ou passer un ch’tit patch)
  • les commandes ont aussi plusieurs statut différents, il me reste à gérer les status des factures, mais il y en a un paquet, sans parler des règlements.

je précise le fonctionnement d’affectation des status:

  • avant l’année en cours, les éléments sont terminés
  • durant l’année en cours, soit à l’état brouillon soit validé.

Je verrais plus tard comment gérer cela de manière plus cohérente, mais cela me permet de voir déjà pas mal de trucs en terme de stats notament.

Je vais attaquer la partie mouvement de stock cette semaine, sans doute aussi les contrats, tickets et la base de connaissance. La semaine prochaine ce sera la partie hrm, création d’utilisateur, congé et note de frais.
Je me garde les expéditions et les projets/tache pour la fin du mois.

Ensuite on pourra lancer des alimentations en masse histoire de voir comment dolibarr réagit a 1.000, 10.000 100.000 enregistrements (voir le millions qui sait).
J’aimerai aussi faire un benchmark avec postgres, histoire de voir ce que cela donne en terme de perf, cela me permettra d’étoffer mon cours de SQL avec des volumétries et des requêtes amusantes.

Bonjour :slightly_smiling_face:
Ca c’est vraiment top!! Merci

Tu as une licence pour ça…?

Toujours pleins de patch pourquoi?

Ne parle pas ch’ti qui veut non mais :wink:

Lâche l’ch’tiote nénette tranquille

C’est le petit up/mise à jour du soir
j’ai ajouté la mise à jour du stock initial des produits
les utilisateurs, les contrats, les tickets et la base de connaissance c’est bon (mais il y a pas mal de PR à réaliser).

J’ai prévu de réaliser encore l’ajout de contact aux éléments, la gestion de catégorie et les expéditions (le meilleur pour la fin) et je me consacrerai aux tests de charges.

Je me rend compte qu’il manque pas mal de truc pour visualiser les volumétries dans dolibarr . Par exemple pas de stat sur les tiers, contrats la base de connaissance, absence de page d’index sur la base de connaissance…
Je vais tenter de faire le tour pour les rajouter avant le freeze.

La présence de métrique sur les volumes présents peut avoir du sens quand on fait une démo de dolibarr, mon idée étant de pouvoir générer rapidement une base avec 3 années de data, parcourir l’ensemble des éléments et vérifier l’absence d’erreur…
Dans la meme veine, monter un scrappîng de parcours de dolibarr afin de valider la présence de message d’erreur et meme chronométrer le parcours afin de détecter si d’une version à l’autre, selon la base de données ou la présence de memcached on a des améliorations.

Hello, juste annoncer que j’ai terminé cette partie, pour celle et ceux qui souhaitent l’utiliser, la liste des pr nécessaires à sont fonctionnement sont noté dans le readme. Je m’avance un peu mais ils devraient être présent dans la prochaine V22

Il me reste encore un truc à gérer pour mon projet, c’est le payement des factures, avec des écritures sur les comptes bancaires, ce sera sans doute réglé demain.
Pour avoir un outili exaustif, il faudrait aussi que je traite la partie fournisseur, les projets et les RH, ce sera sans doute fait sur le second semestre, pour la V2 de mon projet, mais rien d’urgent, on a déjà de quoi bien jouer

Pour ce qui est des catégories et des contacts interne/externe, tout n’est pas encore présent dans les API.
Pour les Catégories, sont présent tiers, contact et produit
Pour les contact externe/interne, c’est devis, commande et facture.

Je devrais sortir une petite vidéo présentant l’utilisation du module

A titre d’information,
Alimenter 2 ans 1/2 de données (environ 400 éléments) prend 30 mins sur un macbook M1 avec un dolibarr dockerisé
Je n’ai pas détecté de ralentissement à l’usage

Hello
et une vidéo de présentation du programme ici :

Avec les derniers éléments ajoutés, notament les expéditions et le règlement des factures, sur un core I5 je suis à près d’une heure pour alimenter Dolibarr avec 2 ans 1/2 de données.
A titre d’information, en activant le mode production de l’api, on gagne 10mins sur le temps de traitement (50min au lieu d’une heure), mais je ne suis pas certaine si la présence d’obs (pour enregistrer la vidéo) n’a pas aussi un impact sur la durée de traitement.

Comme j’ai à présent les données que je souhaitais pour mon propre besoin, je vais faire une pause sur cet outil.

J’ai posté un PR permettant de d’activer/désactiver les modules, je suis encore en train de le tester, on verra si il est accepté comment implémenter une chaine « complète ».
Je vais aussi plus travailler sur les API de mes propres modules.

Un nouveau module permettant de faire pas mal de trucs autour des API est en cours de finalisation, il sera présenté lors du DevCamp de Valence (attendez-vous à du TRES TRES LOURDS)

Bonjour :slightly_smiling_face:
Merci pour la vidéo je vais regarder

→ je vous fais confiance la dessus :+1: