CP_AUTOMATION/tests/load_tests/CUSTOM_URL_USAGE.md
2025-12-16 17:43:41 +05:30

3.5 KiB

Custom URL Usage Guide

🎯 Overview

The load test script now supports a --url argument to use any frontend URL dynamically.


📝 Usage

Basic Usage

# Use default URL from config (localhost:3983 or live)
python3 tests/load_tests/test_generic_load_assessments.py \
  --csv students_with_passwords_2025-12-15T10-49-08_01.csv \
  --start 0 --end 1 --workers 1 --headless

Custom URL Usage

# Use custom local URL
python3 tests/load_tests/test_generic_load_assessments.py \
  --csv students_with_passwords_2025-12-15T10-49-08_01.csv \
  --start 0 --end 1 --workers 1 --headless \
  --url http://localhost:3983

# Use custom port
python3 tests/load_tests/test_generic_load_assessments.py \
  --csv students_with_passwords_2025-12-15T10-49-08_01.csv \
  --start 0 --end 1 --workers 1 --headless \
  --url http://localhost:5000

# Use live/staging URL
python3 tests/load_tests/test_generic_load_assessments.py \
  --csv students_with_passwords_2025-12-15T10-49-08_01.csv \
  --start 0 --end 1 --workers 1 --headless \
  --url https://cognitiveprism.tech4bizsolutions.com

# Use any custom URL
python3 tests/load_tests/test_generic_load_assessments.py \
  --csv students_with_passwords_2025-12-15T10-49-08_01.csv \
  --start 0 --end 100 --workers 30 --headless \
  --url https://staging.example.com

🔧 How It Works

  1. URL Override: When --url is provided, it overrides BASE_URL in config.config
  2. Derived URLs: Automatically updates:
    • LOGIN_URL: {url}/
    • DASHBOARD_URL: {url}/student/dashboard
    • ASSESSMENTS_URL: {url}/assessments
    • PROFILE_EDITOR_URL: {url}/student/profile-builder
  3. Page Objects: All page objects use the updated URLs when instantiated

📋 Examples

Example 1: Local Development

python3 tests/load_tests/test_generic_load_assessments.py \
  --csv students.csv \
  --start 0 --end 10 \
  --workers 5 \
  --headless \
  --url http://localhost:3983

Example 2: Staging Environment

python3 tests/load_tests/test_generic_load_assessments.py \
  --csv students.csv \
  --start 0 --end 100 \
  --workers 30 \
  --headless \
  --url https://staging.cognitiveprism.com

Example 3: Production (with visible browsers for debugging)

python3 tests/load_tests/test_generic_load_assessments.py \
  --csv students.csv \
  --start 0 --end 1 \
  --workers 1 \
  --visible \
  --url https://cognitiveprism.tech4bizsolutions.com

⚙️ URL Format

  • With protocol: http://localhost:3983 or https://example.com
  • Trailing slash: Automatically removed (both http://localhost:3983/ and http://localhost:3983 work)
  • Port: Can specify any port (e.g., http://localhost:5000)

🔍 Verification

When you run the script, it will print:

  • 🌐 Using custom URL: {your_url} if --url is provided
  • 🌐 Using default URL: {default_url} if --url is not provided

📝 Notes

  • The URL override happens before page objects are instantiated
  • All page objects will use the custom URL automatically
  • No need to modify config files or environment variables
  • Works with all existing functionality (login, password reset, profile, assessments, etc.)

🚀 Quick Reference

# Full command with all options
python3 tests/load_tests/test_generic_load_assessments.py \
  --csv <csv_file> \
  --start <start_index> \
  --end <end_index> \
  --workers <num_workers> \
  --headless \
  --url <custom_url> \
  --metrics-interval <interval>

Status: Ready to Use