{ "server": { "host": "localhost", "port": 6667, "ssl": false, "ssl_port": 6697, "nick_prefix": "StressBot", "auto_join_channels": ["#test", "#general"] }, "log_level": "INFO", "scenarios": [ { "name": "Basic Connection Test", "description": "Test basic connection and registration", "client_count": 10, "duration": 30, "connect_gradually": false, "disconnect_gradually": true, "disconnect_delay": 0.2, "delay_after": 5, "activities": [] }, { "name": "Mass Connection Stress", "description": "Stress test with many simultaneous connections", "client_count": 50, "duration": 60, "connect_gradually": false, "disconnect_gradually": false, "delay_after": 5, "activities": [ { "type": "channel_flood", "channel": "#test", "message_count": 20, "delay": 2.0 } ] }, { "name": "Gradual Connection Test", "description": "Test gradual connection buildup", "client_count": 30, "duration": 45, "connect_gradually": true, "connect_delay": 0.1, "disconnect_gradually": true, "disconnect_delay": 0.1, "delay_after": 3, "activities": [ { "type": "private_flood", "message_count": 15, "delay": 3.0 } ] }, { "name": "Heavy Activity Test", "description": "Test server under heavy message load", "client_count": 25, "duration": 90, "connect_gradually": false, "disconnect_gradually": false, "delay_after": 5, "activities": [ { "type": "channel_flood", "channel": "#test", "message_count": 30, "delay": 1.0 }, { "type": "private_flood", "message_count": 20, "delay": 1.5 }, { "type": "join_part_spam", "iterations": 10, "channels": ["#spam1", "#spam2", "#spam3"], "delay": 2.0 }, { "type": "random_commands", "command_count": 15, "commands": ["WHO #test", "LIST", "VERSION", "WHOIS StressBot0001"], "delay": 2.5 } ] }, { "name": "Nick Change Spam", "description": "Test rapid nick changes", "client_count": 15, "duration": 30, "connect_gradually": false, "disconnect_gradually": false, "delay_after": 3, "activities": [ { "type": "nick_change_spam", "iterations": 20, "delay": 1.0 } ] }, { "name": "Channel Chaos Test", "description": "Rapid JOIN/PART with message flooding", "client_count": 20, "duration": 60, "connect_gradually": true, "connect_delay": 0.05, "disconnect_gradually": true, "disconnect_delay": 0.05, "delay_after": 5, "activities": [ { "type": "join_part_spam", "iterations": 25, "channels": ["#chaos1", "#chaos2", "#chaos3", "#chaos4"], "delay": 0.5 }, { "type": "channel_flood", "channel": "#chaos1", "message_count": 40, "delay": 1.0 } ] }, { "name": "Maximum Load Test", "description": "Push server to maximum capacity", "client_count": 100, "duration": 120, "connect_gradually": true, "connect_delay": 0.02, "disconnect_gradually": true, "disconnect_delay": 0.01, "delay_after": 10, "activities": [ { "type": "channel_flood", "channel": "#maxload", "message_count": 50, "delay": 0.8 }, { "type": "private_flood", "message_count": 30, "delay": 1.2 }, { "type": "join_part_spam", "iterations": 15, "channels": ["#load1", "#load2", "#load3", "#load4", "#load5"], "delay": 1.5 }, { "type": "random_commands", "command_count": 25, "commands": ["WHO #maxload", "LIST", "VERSION", "WHOIS StressBot0050", "NAMES #load1"], "delay": 2.0 } ] }, { "name": "EXTREME: Mass Connection Bomb", "description": "BRUTAL: 200+ connections at once", "client_count": 200, "duration": 120, "connect_gradually": false, "disconnect_gradually": false, "delay_after": 10, "activities": [ { "type": "channel_flood", "channel": "#massacre", "message_count": 50, "delay": 0.1 }, { "type": "private_flood", "message_count": 30, "delay": 0.2 } ] }, { "name": "EXTREME: Rapid Fire Connections", "description": "BRUTAL: Connect 150 clients as fast as possible", "client_count": 150, "duration": 60, "connect_gradually": true, "connect_delay": 0.001, "disconnect_gradually": true, "disconnect_delay": 0.001, "delay_after": 5, "activities": [ { "type": "channel_flood", "channel": "#rapidfire", "message_count": 100, "delay": 0.05 } ] }, { "name": "EXTREME: Message Hurricane", "description": "BRUTAL: Maximum message throughput test", "client_count": 80, "duration": 180, "connect_gradually": false, "disconnect_gradually": false, "delay_after": 10, "activities": [ { "type": "channel_flood", "channel": "#hurricane", "message_count": 200, "delay": 0.01 }, { "type": "private_flood", "message_count": 150, "delay": 0.02 }, { "type": "join_part_spam", "iterations": 50, "channels": ["#chaos1", "#chaos2", "#chaos3", "#chaos4", "#chaos5"], "delay": 0.1 }, { "type": "random_commands", "command_count": 100, "commands": ["WHO #hurricane", "LIST", "VERSION", "TIME", "ADMIN", "INFO"], "delay": 0.05 } ] }, { "name": "EXTREME: Connection Chaos", "description": "BRUTAL: Rapid connect/disconnect cycles", "client_count": 100, "duration": 90, "connect_gradually": true, "connect_delay": 0.01, "disconnect_gradually": true, "disconnect_delay": 0.01, "delay_after": 5, "activities": [ { "type": "nick_spam", "iterations": 20, "delay": 0.1 }, { "type": "channel_flood", "channel": "#chaos", "message_count": 75, "delay": 0.1 } ] }, { "name": "EXTREME: The Nuclear Option", "description": "ULTIMATE BRUTAL: Everything at maximum intensity", "client_count": 300, "duration": 300, "connect_gradually": true, "connect_delay": 0.002, "disconnect_gradually": false, "delay_after": 15, "activities": [ { "type": "channel_flood", "channel": "#nuclear", "message_count": 500, "delay": 0.005 }, { "type": "private_flood", "message_count": 300, "delay": 0.01 }, { "type": "join_part_spam", "iterations": 100, "channels": ["#nuke1", "#nuke2", "#nuke3", "#nuke4", "#nuke5", "#nuke6", "#nuke7", "#nuke8"], "delay": 0.02 }, { "type": "nick_spam", "iterations": 50, "delay": 0.03 }, { "type": "random_commands", "command_count": 200, "commands": ["WHO #nuclear", "LIST", "VERSION", "TIME", "ADMIN", "INFO", "LUSERS"], "delay": 0.01 } ] } ] }