UNPKG

lightweight-browser-load-tester

Version:

A lightweight load testing tool using real browsers for streaming applications with DRM support

145 lines (121 loc) 5.25 kB
# localStorage Randomization Examples # This configuration demonstrates various randomization patterns for localStorage # to simulate diverse user scenarios and realistic load testing conditions # Basic test configuration concurrentUsers: 8 testDuration: 180 # 3 minutes rampUpTime: 20 # 20 seconds to ramp up all users streamingUrl: "https://app.example.com/dashboard" # localStorage with comprehensive randomization patterns localStorage: # Authentication domain - unique tokens and user data - domain: "auth.app.example.com" data: # Unique authentication tokens for each browser instance access_token: "Bearer {{random:uuid}}" refresh_token: "refresh_{{random:alphanumeric}}" # Randomized user identification user_id: "{{randomFrom:userIds}}" username: "testuser{{random:1-999}}@example.com" # Session management with timestamps session_id: "sess-{{random:alphanumeric}}" session_start: "{{random:timestamp}}" session_expires: "{{random:timestamp}}" # Device and security information device_id: "device_{{random:1-9999}}" device_fingerprint: "{{random:hex}}" last_login_ip: "192.168.{{random:1-255}}.{{random:1-255}}" # User preferences domain - randomized settings - domain: "preferences.app.example.com" data: # UI preferences with randomized choices theme: "{{randomFrom:themes}}" language: "{{randomFrom:languages}}" currency: "{{randomFrom:currencies}}" timezone: "America/New_York" # Complex JSON preferences with randomization ui_settings: '{"sidebar_collapsed":{{randomFrom:booleans}},"notifications_enabled":{{randomFrom:booleans}},"auto_save":{{randomFrom:booleans}}}' # Accessibility and display settings font_size: "{{random:12-18}}" high_contrast: "{{randomFrom:booleans}}" reduced_motion: "{{randomFrom:booleans}}" # Application data domain - user-specific content - domain: "data.app.example.com" data: # Workspace and project data active_workspace: "workspace_{{random:1-50}}" recent_projects: '["project_{{random:1-100}}","project_{{random:1-100}}","project_{{random:1-100}}"]' # User activity and analytics page_views: "{{random:1-1000}}" session_duration: "{{random:300-7200}}" # 5 minutes to 2 hours feature_usage: '{"dashboard":{{random:1-100}},"reports":{{random:1-50}},"settings":{{random:1-20}}}' # Collaboration and sharing shared_items: '["item_{{random:uuid}}","item_{{random:uuid}}"]' team_memberships: '["team_{{random:1-20}}","team_{{random:1-20}}"]' # Cache and performance domain - domain: "cache.app.example.com" data: # Cache versioning and performance data cache_version: "v{{random:1-10}}.{{random:0-99}}.{{random:0-99}}" last_cache_clear: "{{random:timestamp}}" # Performance metrics avg_load_time: "{{random:100-2000}}" # milliseconds connection_quality: "{{randomFrom:connectionQualities}}" # Feature flags and A/B testing feature_flags: '{"new_dashboard":{{randomFrom:booleans}},"beta_features":{{randomFrom:booleans}},"experimental_ui":{{randomFrom:booleans}}}' ab_test_group: "group_{{randomFrom:abTestGroups}}" # Analytics and tracking domain - domain: "analytics.app.example.com" data: # User tracking and behavior visitor_id: "visitor_{{random:uuid}}" first_visit: "{{random:timestamp}}" return_visitor: "{{randomFrom:booleans}}" # Engagement metrics total_sessions: "{{random:1-500}}" bounce_rate: "{{random:10-80}}" avg_session_duration: "{{random:60-1800}}" # 1 minute to 30 minutes # Conversion tracking conversion_events: '["signup","purchase","subscription"]' funnel_stage: "{{randomFrom:funnelStages}}" # Request parameters that work with localStorage data requestParameters: - target: "header" name: "X-User-ID" valueTemplate: "{{randomFrom:userIds}}" scope: "per-session" - target: "header" name: "X-Session-ID" valueTemplate: "sess-{{random:alphanumeric}}" scope: "per-session" - target: "header" name: "X-Device-Type" valueTemplate: "{{randomFrom:deviceTypes}}" scope: "global" # Resource limits for handling multiple randomized instances resourceLimits: maxMemoryPerInstance: 640 # Higher memory for complex localStorage data maxCpuPercentage: 85 maxConcurrentInstances: 12 # Focus on application requests streamingOnly: false allowedUrls: - "*api*" - "*auth*" - "*preferences*" - "*dashboard*" - "*.js" - "*.css" blockedUrls: - "*analytics*" - "*tracking*" - "*ads*" - "*marketing*" # Note: This configuration uses additional predefined arrays that would be available: # - connectionQualities: ['excellent', 'good', 'fair', 'poor'] # - abTestGroups: ['A', 'B', 'C', 'control'] # - funnelStages: ['awareness', 'interest', 'consideration', 'purchase', 'retention'] # # These arrays can be extended in the browser pool configuration or loaded from files: # - "{{randomFromFile:./data/connection-types.txt}}" # - "{{randomFromFile:./data/test-groups.txt}}"