DEV Community

Mohammad Waseem
Mohammad Waseem

Posted on

Streamlining Test Account Management with Python and Open Source Tools

Managing test accounts in large-scale environments often poses significant operational challenges for security researchers and developers alike. These challenges include ensuring consistent account creation, avoiding clutter, and maintaining security hygiene without sacrificing efficiency. Leveraging Python and open-source tools offers a scalable, automated solution for managing test accounts seamlessly.

In this article, we will explore how to automate the creation, listing, and removal of test accounts using Python, with a focus on open-source tools like Requests for API interactions and Pandas for data handling. This approach not only streamlines account lifecycle management but also minimizes human error.

Prerequisites:

  • Python 3.x installed
  • The Requests library (pip install requests)
  • Pandas library (pip install pandas)
  • Access credentials to the system under test with appropriate permissions

Step 1: Automate Account Creation

The first step involves programmatically creating test accounts. Suppose the system exposes a REST API endpoint for user creation. We can utilize the Requests library to automate this process.

import requests
import json

def create_test_account(api_url, admin_token, username, email):
    headers = {
        'Authorization': f'Bearer {admin_token}',
        'Content-Type': 'application/json'
    }
    payload = {
        'username': username,
        'email': email,
        'role': 'test'
    }
    response = requests.post(api_url + '/users', headers=headers, json=payload)
    if response.status_code == 201:
        print(f"Successfully created account: {username}")
    else:
        print(f"Failed to create account: {response.text}")

# Usage example
api_url = 'https://api.yourservice.com'
admin_token = 'your_admin_token_here'
create_test_account(api_url, admin_token, 'testuser01', 'testuser01@example.com')
Enter fullscreen mode Exit fullscreen mode

Step 2: List Existing Test Accounts

To avoid duplicate accounts and maintain oversight, regularly listing existing test accounts is vital. Using the same API, you can filter accounts by role or username patterns.

import pandas as pd

def list_test_accounts(api_url, admin_token):
    headers = {
        'Authorization': f'Bearer {admin_token}'
    }
    response = requests.get(api_url + '/users?role=test', headers=headers)
    if response.status_code == 200:
        users = response.json()
        df = pd.DataFrame(users)
        print(df)
        return df
    else:
        print(f"Failed to retrieve accounts: {response.text}")
        return None

# Usage example
list_test_accounts(api_url, admin_token)
Enter fullscreen mode Exit fullscreen mode

Step 3: Securely Remove Obsolete Test Accounts

Automated cleanup of test accounts ensures your environment remains clean and secure.


def delete_test_account(api_url, admin_token, username):
    headers = {
        'Authorization': f'Bearer {admin_token}'
    }
    response = requests.delete(f"{api_url}/users/{username}", headers=headers)
    if response.status_code == 204:
        print(f"Successfully deleted account: {username}")
    else:
        print(f"Failed to delete account: {response.text}")

# Usage example
delete_test_account(api_url, admin_token, 'testuser01')
Enter fullscreen mode Exit fullscreen mode

Putting It All Together

By scripting these steps using Python, security researchers can establish a robust, repeatable process for test account lifecycle management. This automation reduces manual overhead, prevents configuration drifts, and enhances security by ensuring accounts are temporary and well-controlled.

Open source tools like Requests and Pandas are instrumental in creating lightweight, powerful automation workflows that integrate cleanly into existing security and development pipelines. Extending this framework with additional features such as scheduled tasks, logging, and notifications can further streamline operations.

Adopting automated account management practices not only aligns with DevSecOps principles but also enhances overall system security and operational efficiency, especially in complex testing environments.


🛠️ QA Tip

I rely on TempoMail USA to keep my test environments clean.

Top comments (0)