first commit
This commit is contained in:
113
config.py
Normal file
113
config.py
Normal file
@@ -0,0 +1,113 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
UI测试工具配置文件
|
||||
统一管理所有配置参数
|
||||
"""
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
class Config:
|
||||
"""配置管理类"""
|
||||
|
||||
# Appium连接配置
|
||||
APPIUM_SERVER_URL = 'http://localhost:4723'
|
||||
|
||||
# 设备配置
|
||||
DEVICE_CAPABILITIES = {
|
||||
'platformName': 'Android',
|
||||
'automationName': 'uiautomator2',
|
||||
'deviceName': 'emulator-5554',
|
||||
'appPackage': 'com.example.myapplication',
|
||||
'appActivity': '.MainActivity',
|
||||
'noReset': True,
|
||||
'newCommandTimeout': 300
|
||||
}
|
||||
|
||||
# 目录配置
|
||||
BASE_DIR = Path(".")
|
||||
SCREENSHOTS_DIR = BASE_DIR / "screenshots"
|
||||
XML_LAYOUTS_DIR = BASE_DIR / "xml_layouts"
|
||||
DESIGN_REFERENCES_DIR = BASE_DIR / "design_references"
|
||||
VISUAL_COMPARISONS_DIR = BASE_DIR / "visual_comparisons"
|
||||
REPORTS_DIR = BASE_DIR / "reports"
|
||||
|
||||
# 热键配置
|
||||
HOTKEYS = {
|
||||
'screenshot': 'F1',
|
||||
'save_xml': 'F2',
|
||||
'get_activity': 'F3',
|
||||
'element_info': 'F4',
|
||||
'visual_compare': 'F5',
|
||||
'analyze_page': 'F6',
|
||||
'monitor_performance': 'F7',
|
||||
'click_element': 'F8',
|
||||
'generate_report': 'F9',
|
||||
'quit': 'ctrl+q'
|
||||
}
|
||||
|
||||
# 视觉比对配置
|
||||
VISUAL_COMPARISON = {
|
||||
'similarity_threshold': 0.95, # 相似度阈值
|
||||
'excellent_threshold': 0.95, # 优秀相似度阈值
|
||||
'good_threshold': 0.85, # 良好相似度阈值
|
||||
'diff_threshold': 50, # 差异检测阈值
|
||||
'min_diff_area': 100, # 最小差异区域面积
|
||||
'supported_formats': ['.svg']
|
||||
}
|
||||
|
||||
# XML分析配置
|
||||
XML_ANALYSIS = {
|
||||
'min_clickable_size': 48, # 最小可点击尺寸
|
||||
'max_text_length': 50, # 最大文本长度
|
||||
'check_accessibility': True, # 检查可访问性
|
||||
'check_duplicates': True # 检查重复ID
|
||||
}
|
||||
|
||||
# 性能监控配置
|
||||
PERFORMANCE = {
|
||||
'enable_monitoring': True,
|
||||
'memory_check_interval': 5, # 内存检查间隔(秒)
|
||||
'operation_timeout': 30 # 操作超时时间(秒)
|
||||
}
|
||||
|
||||
# 报告配置
|
||||
REPORT = {
|
||||
'default_format': 'html', # 默认报告格式
|
||||
'generate_html': True, # 生成HTML报告
|
||||
'include_screenshots': True, # 包含截图
|
||||
'include_xml': True, # 包含XML分析
|
||||
'include_performance': True # 包含性能数据
|
||||
}
|
||||
|
||||
# 日志配置
|
||||
LOGGING = {
|
||||
'level': 'INFO',
|
||||
'format': '%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
'file': 'ui_test.log'
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def setup_directories(cls):
|
||||
"""创建必要的目录"""
|
||||
directories = [
|
||||
cls.SCREENSHOTS_DIR,
|
||||
cls.XML_LAYOUTS_DIR,
|
||||
cls.DESIGN_REFERENCES_DIR,
|
||||
cls.VISUAL_COMPARISONS_DIR,
|
||||
cls.REPORTS_DIR
|
||||
]
|
||||
|
||||
for directory in directories:
|
||||
directory.mkdir(exist_ok=True)
|
||||
|
||||
return directories
|
||||
|
||||
@classmethod
|
||||
def get_supported_design_formats(cls):
|
||||
"""获取支持的设计文件格式"""
|
||||
return cls.VISUAL_COMPARISON['supported_formats']
|
||||
|
||||
@classmethod
|
||||
def is_svg_preferred(cls):
|
||||
"""SVG是否为首选格式"""
|
||||
return True # SVG矢量格式,文件小,可缩放
|
||||
Reference in New Issue
Block a user