- 弃用 npm run 改为直接调用 appium.cmd,消除 Windows 进程残留。 - 统一 _cleanup_process_tree 逻辑,确保异常退出时无孤儿进程。 - 重构 start_appium_service 为单一循环状态机,增强启动探测的健壮性。 - 新增 with_appium 装饰器,确保无论测试结果如何均能干净退出
44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
import time
|
|
|
|
from appium import webdriver
|
|
from appium.options.android import UiAutomator2Options
|
|
|
|
from run_appium import start_appium_service, stop_appium_service, with_appium
|
|
|
|
|
|
@with_appium
|
|
def main(service):
|
|
print(f"正在测试,服务模式: {service.role}")
|
|
# 简单操作示例
|
|
driver = None
|
|
try:
|
|
# 在自动化套件启动前执行
|
|
# proc = start_appium_service()
|
|
|
|
# 配置Android设备参数
|
|
capabilities = dict(
|
|
platformName='Android',
|
|
automationName='uiautomator2',
|
|
deviceName='Android',
|
|
appPackage='com.android.settings',
|
|
appActivity='.Settings'
|
|
)
|
|
|
|
# 转换capabilities为Appium Options
|
|
options = UiAutomator2Options().load_capabilities(capabilities)
|
|
|
|
# 连接Appium服务器
|
|
# driver = webdriver.Remote('http://localhost:4723', options=options)
|
|
driver = webdriver.Remote('http://127.0.0.1:4723', options=options)
|
|
time.sleep(1)
|
|
print("当前Activity:", driver.current_activity)
|
|
finally:
|
|
driver.quit()
|
|
# 在自动化套件结束后执行
|
|
# stop_appium_service(proc)
|
|
print("Hello from AppAutoTest!")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|