Skip to main content
Glama

Browser-MCP Server

by Euraxluo
test_browser_test.py4.66 kB
#!/usr/bin/env python3 """ Simple test script for Session-Based Browser Automation MCP Server Tests the basic functionality without requiring instance_id parameters """ import unittest # Import the session-based browser manager from browser_fastmcp_server import SessionBrowserManager, BrowserConfig class TestSessionBrowser(unittest.IsolatedAsyncioTestCase): async def asyncSetUp(self): self.manager = SessionBrowserManager(max_instances=5, default_ttl=300) async def asyncTearDown(self): await self.manager.shutdown() async def test_session_creation(self): """Test creating browser sessions""" print("\n🧪 Testing session creation...") # Create first session session1 = "test_session_1" instance1 = await self.manager.get_or_create_session_instance(session1, BrowserConfig(headless=True)) print(f"✅ Created session: {session1}") # Create second session session2 = "test_session_2" instance2 = await self.manager.get_or_create_session_instance(session2, BrowserConfig(headless=True)) print(f"✅ Created session: {session2}") # Verify sessions are different self.assertNotEqual(instance1.session_id, instance2.session_id) print("✅ Sessions are isolated") # Test getting existing session existing_instance = await self.manager.get_session_instance(session1) self.assertEqual(existing_instance.session_id, session1) print("✅ Retrieved existing session") # Test session info info = await self.manager.get_session_info(session1) self.assertIsNotNone(info) self.assertEqual(info.session_id, session1) print("✅ Session info retrieved") async def test_session_isolation(self): """Test that sessions are properly isolated""" print("\n🧪 Testing session isolation...") session1 = "isolation_test_1" session2 = "isolation_test_2" # Create two sessions instance1 = await self.manager.get_or_create_session_instance(session1) instance2 = await self.manager.get_or_create_session_instance(session2) # Verify they have different temp directories self.assertNotEqual(instance1.temp_dir, instance2.temp_dir) print("✅ Sessions have different temp directories") # Verify they have different browser sessions self.assertIsNot(instance1.browser_session, instance2.browser_session) print("✅ Sessions have different browser instances") # Test session count count = self.manager.get_session_count() self.assertGreaterEqual(count, 2) print(f"✅ Session count: {count}") # 关闭 await self.manager.close_session(session1) await self.manager.close_session(session2) async def test_session_cleanup(self): """Test session cleanup""" print("\n🧪 Testing session cleanup...") session = "cleanup_test" instance = await self.manager.get_or_create_session_instance(session) # Verify session exists info = await self.manager.get_session_info(session) self.assertIsNotNone(info) print("✅ Session created for cleanup test") # Close session await self.manager.close_session(session) print("✅ Session closed") # Verify session is gone - should raise exception or return None try: info = await self.manager.get_session_info(session) self.assertIsNone(info, "Session should not exist after cleanup") except Exception as e: if "not found" in str(e): print("✅ Session properly cleaned up") else: raise e async def test_session_manager_status(self): """Test session manager status functions""" print("\n🧪 Testing session manager status...") # Create a test session session = "status_test" await self.manager.get_or_create_session_instance(session) # Test get_all_sessions_info sessions_info = await self.manager.get_all_sessions_info() self.assertGreater(len(sessions_info), 0) print(f"✅ Found {len(sessions_info)} active sessions") # Test get_session_count count = self.manager.get_session_count() self.assertGreater(count, 0) print(f"✅ Session count: {count}") # Clean up await self.manager.close_session(session)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Euraxluo/browser-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server