Skip to main content
Glama
Skynotdie

MCP Localization Project

by Skynotdie
test_unigui_simple.py5.47 kB
#!/usr/bin/env python3 """ UniGUI-MCP 간단한 통합 테스트 핵심 기능들만 테스트하여 빠른 검증 """ import asyncio import json import time import logging import sys import traceback # 모듈 임포트 try: from unigui_web_module import WebModuleMCP except ImportError as e: print(f"❌ 모듈 임포트 실패: {e}") sys.exit(1) # 로깅 설정 logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) async def test_basic_functionality(): """기본 기능 테스트""" print("🧪 UniGUI-MCP 기본 기능 테스트 시작...") mcp_server = WebModuleMCP() test_results = {} try: # 초기화 테스트 print("\n🔧 초기화 테스트...") init_result = await mcp_server.initialize() test_results["initialization"] = init_result print(f"초기화 결과: {init_result}") if not init_result: print("❌ 초기화 실패로 테스트 중단") return test_results # 코드 생성 세션 테스트 print("\n📝 코드 생성 세션 테스트...") session_options = { "outputPath": "/tmp/test_codegen", "testNamePrefix": "SimpleTest", "includeComments": True } session_result = await mcp_server.start_codegen_session(session_options) test_results["codegen_session"] = session_result.get("success", False) print(f"세션 생성: {'성공' if session_result.get('success', False) else '실패'}") # 브라우저 네비게이션 테스트 print("\n🌐 브라우저 네비게이션 테스트...") nav_result = await mcp_server.playwright_navigate( url="https://httpbin.org/get", browserType="chromium", headless=True ) test_results["navigation"] = nav_result.get("success", False) print(f"네비게이션: {'성공' if nav_result.get('success', False) else '실패'}") if nav_result.get("success", False): # 스크린샷 테스트 print("\n📸 스크린샷 테스트...") screenshot_result = await mcp_server.playwright_screenshot( name="simple_test", storeBase64=True, savePng=False ) test_results["screenshot"] = screenshot_result.get("success", False) print(f"스크린샷: {'성공' if screenshot_result.get('success', False) else '실패'}") # 텍스트 가져오기 테스트 print("\n📄 텍스트 가져오기 테스트...") text_result = await mcp_server.playwright_get_visible_text() test_results["get_text"] = text_result.get("success", False) print(f"텍스트 가져오기: {'성공' if text_result.get('success', False) else '실패'}") # HTTP GET 요청 테스트 print("\n🌐 HTTP GET 요청 테스트...") get_result = await mcp_server.playwright_get("https://httpbin.org/get") test_results["http_get"] = get_result.get("success", False) print(f"HTTP GET: {'성공' if get_result.get('success', False) else '실패'}") # 브라우저 닫기 print("\n🔚 브라우저 닫기...") close_result = await mcp_server.playwright_close() test_results["close_browser"] = close_result.get("success", False) print(f"브라우저 닫기: {'성공' if close_result.get('success', False) else '실패'}") except Exception as e: print(f"❌ 테스트 중 오류 발생: {e}") traceback.print_exc() test_results["error"] = str(e) return test_results def print_test_report(results): """테스트 결과 보고서 출력""" print("\n" + "="*50) print("📋 UniGUI-MCP 기본 테스트 결과") print("="*50) total_tests = 0 passed_tests = 0 for test_name, success in results.items(): if test_name == "error": continue total_tests += 1 if success: passed_tests += 1 print(f"✅ {test_name}: 통과") else: print(f"❌ {test_name}: 실패") if "error" in results: print(f"⚠️ 에러 발생: {results['error']}") success_rate = (passed_tests / total_tests * 100) if total_tests > 0 else 0 print(f"\n📊 전체 결과:") print(f" 총 테스트: {total_tests}개") print(f" 통과: {passed_tests}개") print(f" 실패: {total_tests - passed_tests}개") print(f" 성공률: {success_rate:.1f}%") if success_rate >= 80: print(f"\n🎉 테스트 성공! UniGUI-MCP가 정상 작동합니다.") return True else: print(f"\n⚠️ 테스트 부분 실패. 추가 점검이 필요합니다.") return False async def main(): """메인 테스트 실행""" try: results = await test_basic_functionality() success = print_test_report(results) return 0 if success else 1 except KeyboardInterrupt: print("\n⚠️ 사용자에 의해 테스트가 중단되었습니다.") return 1 except Exception as e: print(f"\n❌ 예상치 못한 오류 발생: {e}") traceback.print_exc() return 1 if __name__ == "__main__": sys.exit(asyncio.run(main()))

Latest Blog Posts

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/Skynotdie/mky'

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