7.6 KiB
7.6 KiB
EU-Utility Testing Guide
Complete testing instructions for EU-Utility Premium with Entropia Universe.
🚀 Quick Start
1. Install Dependencies
cd ~/EU-Utility
pip install -r requirements.txt
Required packages:
- PyQt6 (GUI framework)
- psutil (process monitoring)
- pywin32 (Windows API) - Windows only
- pillow (screenshots)
2. Configure Game Path
Edit the config file (created automatically on first run):
# Windows default paths:
# C:\Program Files (x86)\Entropia Universe\ClientLoader.exe
# C:\Users\<username>\AppData\Local\Entropia Universe
# Or create manually:
python -c "
import json
from pathlib import Path
config = {
'game_path': r'C:\\Program Files (x86)\\Entropia Universe',
'overlay_enabled': True,
'overlay_mode': 'overlay_toggle',
'hotkey': 'ctrl+shift+b',
'plugins_enabled': ['dashboard_widget'],
}
Path.home().joinpath('.eu-utility', 'config.json').write_text(json.dumps(config, indent=2))
"
3. Launch EU-Utility
python main.py
Command line options:
python main.py --verbose # Debug logging
python main.py --test # Test mode (no game required)
python main.py --no-overlay # Headless mode
🎮 Testing With Entropia Universe
Test 1: Basic Launch
Steps:
- Launch EU-Utility:
python main.py - Check console output - should show "EU-Utility Premium initialized"
- Look for system tray icon (small EU logo)
- Press
Ctrl+Shift+Bto toggle overlay
Expected: Overlay appears with dashboard widget
Test 2: Game Detection
Steps:
- Launch Entropia Universe game client
- Wait 5-10 seconds
- Check EU-Utility console for "Game client detected"
Expected: Log shows process detection working
Debug: If not detected, check game path in config
Test 3: Overlay Modes
Test each overlay mode in config:
Mode: overlay_toggle (default)
- Press
Ctrl+Shift+Bto show/hide overlay - Should toggle instantly (<100ms)
Mode: overlay_game
- Overlay auto-shows when EU window is focused
- Overlay auto-hides when EU loses focus
- Should be smooth (no lag)
Mode: overlay_temp
- Press hotkey to show for 8 seconds
- Auto-hides after duration
Test 4: Dashboard Widget
Steps:
- Open overlay with hotkey
- Verify dashboard widget loads
- Check for player stats display
Features to test:
- Player name display
- Skill levels visible
- Health/Energy bars
- PED balance (if available)
Test 5: Log File Parsing
Steps:
- In game, get some loot or skill gain
- Check EU-Utility console for events
- Look for:
[GameEvent] Loot: ...or[GameEvent] Skill: ...
Expected: Real-time event detection
Log locations:
%LOCALAPPDATA%\Entropia Universe\chat.log
%LOCALAPPDATA%\Entropia Universe\Entropia.log
Test 6: Performance Test
Steps:
- Run EU-Utility with game for 30 minutes
- Monitor CPU usage (should be <5%)
- Check for "Focus check took Xms" warnings
Expected:
- No lag spikes
- Smooth 60fps overlay
- CPU usage minimal
Debug: If slow, check overlay_controller.py optimizations
🔧 Troubleshooting
Issue: "Game not detected"
Check:
- Game path in config is correct
- Game is actually running
- Try running EU-Utility as administrator
Fix:
# Update config with correct path
config['game_path'] = r'C:\Your\Actual\Path\To\Entropia Universe'
Issue: "Overlay not appearing"
Check:
- Hotkey is not conflicting with other apps
- Overlay mode is set correctly
- No Qt/OpenGL errors in console
Fix:
# Try test mode
python main.py --test
# Or disable overlay temporarily
python main.py --no-overlay
Issue: "App is slow/laggy"
Check:
- Focus check timing in logs
- CPU/memory usage
- Number of plugins loaded
Fix:
- Reduce poll interval in config
- Disable unused plugins
- Check for window manager conflicts
Issue: "Plugins not loading"
Check:
- Plugin files exist in
plugins/builtin/ - plugin.json is valid JSON
- No import errors in console
Fix:
# Verify plugin structure
ls plugins/builtin/dashboard_widget/
# Should show: plugin.json, main.py
# Check for syntax errors
python -m py_compile plugins/builtin/dashboard_widget/main.py
🧪 Advanced Testing
Test Plugin Development
Create a test plugin:
# plugins/user/test_plugin/main.py
from premium.plugins.api import BasePlugin, PluginManifest
class TestPlugin(BasePlugin):
manifest = PluginManifest(
name="Test Plugin",
version="1.0.0",
author="Tester"
)
def on_load(self):
print("Test plugin loaded!")
return True
def on_enable(self):
print("Test plugin enabled!")
def on_disable(self):
print("Test plugin disabled!")
// plugins/user/test_plugin/plugin.json
{
"name": "Test Plugin",
"version": "1.0.0",
"author": "Tester",
"main": "main.py",
"entry_point": "TestPlugin"
}
Test Event System
# Test event bus
from premium.core.event_bus import EventBus, Event
bus = EventBus()
@bus.on("game.loot")
def on_loot(event):
print(f"Got loot: {event.data}")
bus.emit("game.loot", {"item": "Ammunition", "amount": 100})
Test State Management
# Test state store
from premium.core.state.store import StateStore, ActionBase
class IncrementAction(ActionBase):
type = "INCREMENT"
def counter_reducer(state, action):
if action.type == "INCREMENT":
return state + 1
return state
store = StateStore(counter_reducer, initial_state=0)
store.dispatch(IncrementAction())
print(store.state) # 1
📊 Performance Benchmarks
Expected Performance
| Metric | Target | Acceptable |
|---|---|---|
| Startup time | <3s | <5s |
| Focus check | <10ms | <50ms |
| Overlay toggle | <100ms | <200ms |
| CPU usage | <3% | <10% |
| Memory usage | <200MB | <500MB |
| Log parsing | Real-time | <1s delay |
Benchmark Script
# Run performance test
python -c "
import time
from premium.eu_integration.game_client import GameClient
start = time.time()
client = GameClient()
client.initialize()
print(f'Init time: {time.time() - start:.2f}s')
# Test detection
start = time.time()
found = client.find_game_process()
print(f'Detection time: {time.time() - start:.2f}s')
print(f'Game found: {found}')
"
🐛 Debug Mode
Enable Debug Logging
python main.py --verbose
Key Log Messages
| Message | Meaning |
|---|---|
| "Game client detected" | Process found |
| "Window focused" | EU window active |
| "Overlay shown/hidden" | Toggle working |
| "Plugin loaded: X" | Plugin loaded |
| "Focus check took Xms" | Performance warning |
| "Event: game.loot" | Game event detected |
Check Logs
# Real-time log view
tail -f ~/.eu-utility/logs/app.log
# Search for errors
grep ERROR ~/.eu-utility/logs/app.log
✅ Final Checklist
Before considering ready for production:
- App launches without errors
- Game detection works
- Overlay appears with hotkey
- Dashboard shows data
- Log events are captured
- Performance is smooth
- No memory leaks (stable after 1 hour)
- Plugins load/unload correctly
- Settings save/load properly
- Exits gracefully on close
🆘 Getting Help
If issues persist:
- Check logs:
~/.eu-utility/logs/ - Run tests:
python -m pytest tests/ - Check config:
~/.eu-utility/config.json - Verify game running and accessible
Debug info to collect:
- Console output
- Log files
- System specs (CPU, RAM, GPU)
- Windows version
- Game version