提交 6d707a1f authored 作者: 陈泽健's avatar 陈泽健

封装app自动化的初始化函数与清除函数,补充自动化adb连接设备以及判断。

上级 00338b68
...@@ -583,12 +583,19 @@ def volume_acquisition(): ...@@ -583,12 +583,19 @@ def volume_acquisition():
import subprocess import subprocess
from venv import logger from venv import logger
def adb_connect_device(device_ip, port=5555): def app_init(device_ip, port=5555):
""" """
通过 ADB 连接设备并检查设备状态 初始化浏览器设置和实例。
:param device_ip: 设备的 IP 地址
:param port: 端口号,默认为 5555 此函数旨在初始化程序与app设备之间的adb连接,判断adb连接状态是否可控
"""
# 标记初始化过程的开始
INFO("'----------' 正在初始化ADB连接 '----------'")
""" """
通过 ADB 连接设备并检查设备状态
:param device_ip: 设备的 IP 地址
:param port: 端口号,默认为 5555
"""
try: try:
# 构建设备地址 # 构建设备地址
device_address = f"{device_ip}:{port}" device_address = f"{device_ip}:{port}"
...@@ -605,13 +612,24 @@ def adb_connect_device(device_ip, port=5555): ...@@ -605,13 +612,24 @@ def adb_connect_device(device_ip, port=5555):
INFO(f"设备 {device_address} 已连接并可用") INFO(f"设备 {device_address} 已连接并可用")
return True return True
elif ip == device_address and status == 'offline': elif ip == device_address and status == 'offline':
logger.error(f"设备 {device_address} 处于 offline 状态") INFO(f"设备 {device_address} 处于 offline 状态,当前设备不可控制,请检查设备网络状态")
return False return False
elif ip == device_address and status == 'unauthorized': elif ip == device_address and status == 'unauthorized':
logger.error(f"设备 {device_address} 未授权调试") logger.error(f"设备 {device_address} 未授权调试")
return False return False
logger.error(f"设备 {device_address} 未找到") INFO(f"设备 {device_address} 未找到,请检查设备IP是否正确!")
return False return False
except subprocess.CalledProcessError as e: except subprocess.CalledProcessError as e:
logger.error(f"连接设备失败: {e}") INFO(f"连接设备失败: {e}")
return False return False
\ No newline at end of file
def app_quit(device_ip,port=5555):
"""
退出浏览器并释放资源。
该函数从全局存储中获取设备adb连接状态
"""
# 断开特定 IP 和端口的 ADB 连接
device_address = f"{device_ip}:{port}"
subprocess.run(['adb', 'disconnect', device_address])
INFO(f"ADB 连接已断开: {device_address}")
\ No newline at end of file
...@@ -161,4 +161,5 @@ ...@@ -161,4 +161,5 @@
35. 2025-01-07 35. 2025-01-07
- 增加窗帘下降后的等待时间再进行监控rtsp流截屏。 - 增加窗帘下降后的等待时间再进行监控rtsp流截屏。
36. 2025-01-09 36. 2025-01-09
- 将手动执行adb连接的操作合并到程序中,并在每个adb连接设备模块执行完后断开对应设备的adb连接。处理可能因网络连接自动断开adb后无法进行远程app自动化操作的问题。 - 将手动执行adb连接的操作合并到程序中,并在每个adb连接设备模块执行完后断开对应设备的adb连接。处理可能因网络连接自动断开adb后无法进行远程app自动化操作的问题。
\ No newline at end of file - 封装app自动化的初始化函数与清除函数,补充自动化adb连接设备以及判断。
\ No newline at end of file
...@@ -10,41 +10,23 @@ current_dir = os.path.dirname(os.path.abspath(__file__)) ...@@ -10,41 +10,23 @@ current_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.append(预定系统_path) sys.path.append(预定系统_path)
# 导入模块 # 导入模块
try: try:
from 预定系统.Base.base import *
from 预定系统.Base.app_base import * from 预定系统.Base.app_base import *
from 预定系统.Base.base import *
except ModuleNotFoundError as e: except ModuleNotFoundError as e:
print(f"ModuleNotFoundError: {e}") print(f"ModuleNotFoundError: {e}")
print("尝试使用绝对路径导入") print("尝试使用绝对路径导入")
from 预定系统.Base.base import *
from 预定系统.Base.app_base import * from 预定系统.Base.app_base import *
from 预定系统.Base.base import *
def suite_setup(): def suite_setup():
STEP(1, "初始化浏览器") STEP(1, "初始化设备adb连接")
login_exhibit_url = 'http://192.168.5.200:8080/#/login/logindf' device_ip = '192.168.5.112'
login_exhibit_ngrok_url = 'http://nat.ubainsyun.com:11060/#/login/logindf' app_init(device_ip)
browser_init(login_exhibit_url) login_url = "http://192.168.5.200:8080/#/login/logindf"
browser_init(login_url)
wd = GSTORE['wd'] wd = GSTORE['wd']
admin_login("Test02", "ubains@123")
sleep(5)
# 通过 ADB 连接设备
device_ip = '192.168.5.112' # 替换为你的设备 IP 地址
if not adb_connect_device(device_ip):
INFO("设备连接失败或状态不正确,无法继续执行测试")
sys.exit(1)
# 其他检查步骤...
# STEP(2, "检查灯光开启状态")
# INFO("请检查中控屏软件的灯光关闭状态显示是否正常")
# SELENIUM_LOG_SCREEN(wd,"50%","Exhibit_Inspect","Control_Manage","light_all_off")
# ...
def suite_teardown(): def suite_teardown():
browser_quit() device_ip = '192.168.5.112'
# 断开特定 IP 和端口的 ADB 连接 app_quit(device_ip)
device_ip = '192.168.5.112' # 替换为你的设备 IP 地址 browser_quit()
port = 5555 # 默认端口 \ No newline at end of file
device_address = f"{device_ip}:{port}"
subprocess.run(['adb', 'disconnect', device_address])
INFO(f"ADB 连接已断开: {device_address}")
\ No newline at end of file
...@@ -10,35 +10,23 @@ current_dir = os.path.dirname(os.path.abspath(__file__)) ...@@ -10,35 +10,23 @@ current_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.append(预定系统_path) sys.path.append(预定系统_path)
# 导入模块 # 导入模块
try: try:
from 预定系统.Base.base import *
from 预定系统.Base.app_base import * from 预定系统.Base.app_base import *
from 预定系统.Base.base import *
except ModuleNotFoundError as e: except ModuleNotFoundError as e:
print(f"ModuleNotFoundError: {e}") print(f"ModuleNotFoundError: {e}")
print("尝试使用绝对路径导入") print("尝试使用绝对路径导入")
from 预定系统.Base.base import *
from 预定系统.Base.app_base import * from 预定系统.Base.app_base import *
from 预定系统.Base.base import *
def suite_setup(): def suite_setup():
STEP(1, "初始化浏览器") STEP(1, "初始化设备adb连接")
login_exhibit_url = 'http://192.168.5.200:8080/#/login/logindf' device_ip = '192.168.5.157'
login_exhibit_ngrok_url = 'http://nat.ubainsyun.com:11060/#/login/logindf' app_init(device_ip)
browser_init(login_exhibit_url) login_url = "http://192.168.5.200:8080/#/login/logindf"
browser_init(login_url)
wd = GSTORE['wd'] wd = GSTORE['wd']
admin_login("Test02", "ubains@123")
sleep(5)
# 通过 ADB 连接设备
device_ip = '192.168.5.157' # 替换为你的设备 IP 地址
if not adb_connect_device(device_ip):
logger.error("设备连接失败或状态不正确,无法继续执行测试")
sys.exit(1)
def suite_teardown(): def suite_teardown():
browser_quit() device_ip = '192.168.5.157'
# 断开特定 IP 和端口的 ADB 连接 app_quit(device_ip)
device_ip = '192.168.5.157' # 替换为你的设备 IP 地址 browser_quit()
port = 5555 # 默认端口 \ No newline at end of file
device_address = f"{device_ip}:{port}"
subprocess.run(['adb', 'disconnect', device_address])
logger.info(f"ADB 连接已断开: {device_address}")
\ No newline at end of file
...@@ -10,35 +10,23 @@ current_dir = os.path.dirname(os.path.abspath(__file__)) ...@@ -10,35 +10,23 @@ current_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.append(预定系统_path) sys.path.append(预定系统_path)
# 导入模块 # 导入模块
try: try:
from 预定系统.Base.base import *
from 预定系统.Base.app_base import * from 预定系统.Base.app_base import *
from 预定系统.Base.base import *
except ModuleNotFoundError as e: except ModuleNotFoundError as e:
print(f"ModuleNotFoundError: {e}") print(f"ModuleNotFoundError: {e}")
print("尝试使用绝对路径导入") print("尝试使用绝对路径导入")
from 预定系统.Base.base import *
from 预定系统.Base.app_base import * from 预定系统.Base.app_base import *
from 预定系统.Base.base import *
def suite_setup(): def suite_setup():
STEP(1, "初始化浏览器") STEP(1, "初始化设备adb连接")
login_exhibit_url = 'http://192.168.5.200:8080/#/login/logindf' device_ip = '192.168.5.142'
login_exhibit_ngrok_url = 'http://nat.ubainsyun.com:11060/#/login/logindf' app_init(device_ip)
browser_init(login_exhibit_url) login_url = "http://192.168.5.200:8080/#/login/logindf"
browser_init(login_url)
wd = GSTORE['wd'] wd = GSTORE['wd']
admin_login("Test02", "ubains@123")
sleep(5)
# 通过 ADB 连接设备
device_ip = '192.168.5.142' # 替换为你的设备 IP 地址
if not adb_connect_device(device_ip):
logger.error("设备连接失败或状态不正确,无法继续执行测试")
sys.exit(1)
def suite_teardown(): def suite_teardown():
device_ip = '192.168.5.142'
app_quit(device_ip)
browser_quit() browser_quit()
# 断开特定 IP 和端口的 ADB 连接
device_ip = '192.168.5.142' # 替换为你的设备 IP 地址
port = 5555 # 默认端口
device_address = f"{device_ip}:{port}"
subprocess.run(['adb', 'disconnect', device_address])
logger.info(f"ADB 连接已断开: {device_address}")
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论