Créer un lot de User dans Django
Par Rodolphe Quiédeville le mercredi, avril 3 2013, 11:22 - Tests de charge - Lien permanent
Lors d'un récent test de charge sur une application Django j'ai eu à créer 10K utilisateurs pour tester la charge sur le processus de login. Ce besoin de création d'utilisateur de test étant récurrent j'ai écrit une commande manage (1) afin de créer facilement un grand nombre d'utilisateurs mais également de conserver leur id pour suppression ultérieure. La liste des ids est affichée sur stdout pour faire au plus simple.
Par défaut on crée 10 utilisateurs et on spécifie comme premier argument le nombre total souhaité.
Le code de la classe, simple et efficace :
""" Create users in batch """ import json from django.core.management.base import BaseCommand from django.contrib.auth.models import User class Command(BaseCommand): help = 'Create test accounts' def handle(self, *args, **options): nb_accounts = 10 mac = 0 userids = [] if len(args) > 0: nb_accounts = int(args[0]) while mac < nb_accounts: username = 'tsung-%04d' % (mac) email = 'tsung-%04d@example.com' % (mac) password = 'password-%04d' % (mac) user = User.objects.create(username=username, email=email) user.set_password(password) user.save() userids.append(user.id) mac += 1 print json.dumps(userids)
Commentaires
Pour gagner du temps, remplacer :
user = User.objects.create(username=username, email=email)
user.set_password(password)
user.save()
Par :
user = User.objects.create_user(username=username, email=email, password=password)
https://docs.djangoproject.com/en/d...