def generate_password(length=12): chars = string.ascii_letters + string.digits + "!@#$%" return ''.join(random.choice(chars) for _ in range(length))
def generate_username(): return fake.user_name() + str(random.randint(1, 999))
def generate_accounts(count=10, email_domain="test.local"): accounts = [] for _ in range(count): first = fake.first_name() last = fake.last_name() username = generate_username() accounts.append( "username": username, "email": f"username@email_domain", "password": generate_password(), "first_name": first, "last_name": last, "role": random.choice(["viewer", "editor", "admin"]) ) return accounts
def save_to_csv(accounts, filename="test_accounts.csv"): with open(filename, 'w', newline='') as f: writer = csv.DictWriter(f, fieldnames=accounts[0].keys()) writer.writeheader() writer.writerows(accounts) print(f"Saved len(accounts) accounts to filename") if name == " main ": accounts = generate_accounts(count=5, email_domain="qa.example.com") save_to_csv(accounts)
import csv import random import string from faker import Faker fake = Faker()
