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

封装配置项读取函数增加异常处理判断,调整涉及的相关代码部分,调整模拟器adb连接初始化方式。

上级 2b85f0b6
{
"_comment_meeting": "这是标准版预定系统的URL",
"标准版": "https://192.168.5.235/#/login/lgindf",
"标准版预定系统": "https://192.168.5.235/#/login/logindf",
"_comment_exhibit_meeting": "这是展厅预定系统的URL",
"展厅预定巡检": "http://192.168.5.200/#/login/logindf",
......
......@@ -77,39 +77,94 @@ def browser_init(login_type):
# 设置隐式等待时间为10秒,以允许元素加载
wd.implicitly_wait(60)
# # 获取当前脚本的绝对路径
# current_dir = os.path.dirname(os.path.abspath(__file__))
# # 构建配置文件的绝对路径
# config_path = os.path.join(current_dir, '..', 'Base', 'config.json')
# logging.info(f"配置文件路径: {config_path}")
#
# # 检查文件是否存在
# if not os.path.exists(config_path):
# raise FileNotFoundError(f"配置文件 {config_path} 不存在")
#
# # 读取配置文件
# with open(config_path, 'r', encoding='utf-8') as config_file:
# config = json.load(config_file)
# login_url = config.get(login_type)
# INFO(f"正在打开{login_type}的登录页面:{login_url}")
#
# # 检查是否成功获取到 URL
# if not login_url:
# raise ValueError(f"未找到对应的 URL 配置项: {login_type}")
# 获取登录URL
login_url = get_login_url_from_config(login_type)
# 打开对应类型的登录页面
wd.get(login_url)
# 最大化浏览器窗口
wd.maximize_window()
# 将WebDriver实例存储在全局存储器中,以便后续使用
GSTORE['wd'] = wd
# 标记初始化过程完成
INFO("'----------' 浏览器初始化完成 '----------'")
except Exception as e:
# 捕获并记录初始化过程中的任何异常
logging.error(f"浏览器初始化失败:{e}")
def get_login_url_from_config(login_type):
"""
从配置文件中读取登录URL。
参数:
login_type (str): 指定登录类型,根据不同的登录类型选择不同的URL。
返回:
str: 对应的登录URL。
"""
# 检查 login_type 是否为空或 None
if not login_type:
raise ValueError("login_type 不能为空")
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建配置文件的绝对路径
config_path = os.path.join(current_dir, '..', 'Base', 'config.json')
logging.info(f"配置文件路径: {config_path}")
# 构建配置文件的绝对路径,指向 ubains-module-test 目录下的 config.json
config_path = os.path.abspath(os.path.join(current_dir, '..', '..', 'config.json'))
# 规范化路径,防止路径遍历攻击
config_path = os.path.normpath(config_path)
# 记录配置文件路径以便调试,对路径进行脱敏处理
logging.info(f"配置文件路径: {os.path.basename(config_path)}")
# 检查文件是否存在
if not os.path.exists(config_path):
# 如果配置文件不存在,则抛出异常
raise FileNotFoundError(f"配置文件 {config_path} 不存在")
try:
# 读取配置文件
with open(config_path, 'r', encoding='utf-8') as config_file:
# 将配置文件内容解析为 JSON 格式
config = json.load(config_file)
# 根据 login_type 获取对应的登录 URL
login_url = config.get(login_type)
INFO(f"正在打开{login_type}的登录页面:{login_url}")
# 记录正在打开的登录页面类型和 URL
logging.info(f"正在打开 {login_type} 的登录页面:{login_url}")
except IOError as e:
# 处理文件读取异常
raise IOError(f"读取配置文件失败: {e}")
except json.JSONDecodeError as e:
# 处理 JSON 解析异常
raise json.JSONDecodeError(f"解析配置文件失败: {e}")
# 检查是否成功获取到 URL
if not login_url:
# 如果未找到对应的 URL,则抛出异常
raise ValueError(f"未找到对应的 URL 配置项: {login_type}")
# 打开对应类型的登录页面
wd.get(login_url)
# 最大化浏览器窗口
wd.maximize_window()
# 将WebDriver实例存储在全局存储器中,以便后续使用
GSTORE['wd'] = wd
# 标记初始化过程完成
INFO("'----------' 浏览器初始化完成 '----------'")
except Exception as e:
# 捕获并记录初始化过程中的任何异常
logging.error(f"浏览器初始化失败:{e}")
# 返回登录 URL
return login_url
def admin_login(username, password):
......
......@@ -178,3 +178,4 @@
- 优化browser_init初始化函数的传参方式以及系统环境判断处理。优化ngrok以及定时任务注解。
- 调整优化。处理截屏函数的兼容性,优化URL的判断。
- 系统地址获取方式改为读取config.json进行获取对应的环境信息。
- 封装配置项读取函数增加异常处理判断,调整涉及的相关代码部分,调整模拟器adb连接初始化方式。
\ No newline at end of file
......@@ -12,8 +12,8 @@ from 预定系统.Base.base import *
def suite_setup():
STEP(1, "初始化浏览器")
# 传入系统类型,标准版 == 192.168.5.235
browser_init("标准版")
# 初始化浏览器与系统地址
browser_init("标准版预定系统")
wd = GSTORE['wd']
admin_login("admin@ZDH", "Ubains@4321")
......
......@@ -12,8 +12,8 @@ from 预定系统.Base.base import *
def suite_setup():
STEP(1, "初始化浏览器")
# 传入系统类型,标准版 == 192.168.5.235
browser_init("标准版")
# 初始化浏览器与系统地址
browser_init("标准版预定系统")
wd = GSTORE['wd']
admin_login("admin@ZDH", "Ubains@4321")
......
......@@ -12,8 +12,8 @@ from 预定系统.Base.base import *
def suite_setup():
STEP(1, "初始化浏览器")
# 传入系统类型,标准版 == 192.168.5.235
browser_init("标准版")
# 初始化浏览器与系统地址
browser_init("标准版预定系统")
wd = GSTORE['wd']
admin_login("admin@ZDH", "Ubains@4321")
......
......@@ -12,8 +12,8 @@ from 预定系统.Base.base import *
def suite_setup():
STEP(1, "初始化浏览器")
# 传入系统类型,标准版 == 192.168.5.235
browser_init("标准版")
# 初始化浏览器与系统地址
browser_init("标准版预定系统")
wd = GSTORE['wd']
admin_login("admin@ZDH", "Ubains@4321")
......
......@@ -12,8 +12,8 @@ from 预定系统.Base.base import *
def suite_setup():
STEP(1, "初始化浏览器")
# 传入系统类型,标准版 == 192.168.5.235
browser_init("标准版")
# 初始化浏览器与系统地址
browser_init("标准版预定系统")
wd = GSTORE['wd']
admin_login("admin@ZDH", "Ubains@4321")
......
......@@ -12,8 +12,8 @@ from 预定系统.Base.base import *
def suite_setup():
STEP(1, "初始化浏览器")
# 传入系统类型,标准版 == 192.168.5.235
browser_init("标准版")
# 初始化浏览器与系统地址
browser_init("标准版预定系统")
wd = GSTORE['wd']
admin_login("admin@user", "Ubains@4321")
......
......@@ -18,8 +18,8 @@ except ModuleNotFoundError as e:
def suite_setup():
STEP(1, "初始化浏览器")
# 传入系统类型,标准版 == 192.168.5.235
browser_init("标准版")
# 初始化浏览器与系统地址
browser_init("标准版预定系统")
wd = GSTORE['wd']
admin_login("admin@ZDH", "Ubains@4321")
......
......@@ -18,8 +18,8 @@ except ModuleNotFoundError as e:
def suite_setup():
STEP(1, "初始化浏览器")
# 传入系统类型,标准版 == 192.168.5.235
browser_init("标准版")
# 初始化浏览器与系统地址
browser_init("标准版预定系统")
wd = GSTORE['wd']
admin_login("admin@ZDH", "Ubains@4321")
......
......@@ -18,8 +18,8 @@ except ModuleNotFoundError as e:
def suite_setup():
STEP(1, "初始化浏览器")
# 传入系统类型,标准版 == 192.168.5.235
browser_init("标准版")
# 初始化浏览器与系统地址
browser_init("标准版预定系统")
wd = GSTORE['wd']
admin_login("admin@ZDH", "Ubains@4321")
......
......@@ -12,8 +12,8 @@ from 预定系统.Base.base import *
def suite_setup():
STEP(1, "初始化浏览器")
# 传入系统类型,标准版 == 192.168.5.235
browser_init("标准版")
# 初始化浏览器与系统地址
browser_init("标准版预定系统")
wd = GSTORE['wd']
admin_login("admin@ZDH", "Ubains@4321")
......
......@@ -11,15 +11,19 @@ sys.path.append(预定系统_path)
# 导入模块
try:
from 预定系统.Base.base import *
from 预定系统.Base.app_base import *
except ModuleNotFoundError as e:
print(f"ModuleNotFoundError: {e}")
print("尝试使用绝对路径导入")
from 预定系统.Base.base import *
from 预定系统.Base.app_base import *
def suite_setup():
STEP(1, "初始化浏览器")
# 传入系统类型,展厅预定巡检 == 192.168.5.200
browser_init("展厅预定巡检")
device_ip = '127.0.0.1'
app_init(device_ip,62001)
wd = GSTORE['wd']
admin_login("Test02", "ubains@123")
......@@ -28,4 +32,6 @@ def suite_setup():
SELENIUM_LOG_SCREEN(wd,"75%","Exhibit_Inspect","Tx_meeting","会场画面截屏")
def suite_teardown():
device_ip = '127.0.0.1'
app_quit(device_ip, 62001)
browser_quit()
\ No newline at end of file
......@@ -11,15 +11,19 @@ sys.path.append(预定系统_path)
# 导入模块
try:
from 预定系统.Base.base import *
from 预定系统.Base.app_base import *
except ModuleNotFoundError as e:
print(f"ModuleNotFoundError: {e}")
print("尝试使用绝对路径导入")
from 预定系统.Base.base import *
from 预定系统.Base.app_base import *
def suite_setup():
STEP(1, "初始化浏览器")
# 传入系统类型,展厅统一平台巡检 == 192.168.5.200
browser_init("展厅统一平台巡检")
device_ip = '127.0.0.1'
app_init(device_ip, 62001)
wd = GSTORE['wd']
STEP(2, "登录系统")
......@@ -31,6 +35,7 @@ def suite_setup():
safe_click((By.XPATH, "//div[@id='pane-1']//div//span[contains(text(),'登录')]"),wd)
sleep(2)
def suite_teardown():
device_ip = '127.0.0.1'
app_quit(device_ip, 62001)
browser_quit()
\ No newline at end of file
......@@ -13,8 +13,8 @@ from 预定系统.Base.base import *
def suite_setup():
STEP(1, "初始化浏览器")
# 传入系统类型,标准版 == 192.168.5.235
browser_init("标准版")
# 初始化浏览器与系统地址
browser_init("标准版预定系统")
def suite_teardown():
wd = GSTORE['wd']
......
......@@ -13,8 +13,8 @@ from 预定系统.Base.base import *
def suite_setup():
STEP(1, "初始化浏览器")
# 传入系统类型,标准版 == 192.168.5.235
browser_init("标准版")
# 初始化浏览器与系统地址
browser_init("标准版预定系统")
wd = GSTORE['wd']
admin_login("admin@ZDH", "Ubains@4321")
......
......@@ -28,7 +28,7 @@ class Main_User_Manage_000x:
执行测试步骤以用户管理的主流程功能。
本函数根据参数添加用户,并使用新增的用户进行登录的提示信息是否与预期相符。
"""
login_url = 'https://192.168.5.235/#/login/logindf'
# login_url = 'https://192.168.5.235/#/login/logindf'
# 初始化通知文本为空字符串
notify_text = ""
# 从全局存储中获取webdriver实例
......@@ -128,6 +128,7 @@ class Main_User_Manage_000x:
SELENIUM_LOG_SCREEN(wd,"50%","User_Manage","User_Main","用户管理主流程-用户登录")
# 清除浏览器,再重新打开浏览器
login_url = get_login_url_from_config("标准版预定系统")
wd.get(login_url)
# 最大化浏览器窗口
wd.maximize_window()
......
......@@ -35,7 +35,6 @@ class User_Chanage_Pwd_000x:
执行测试步骤以用户新增功能。
本函数根据参数输入账号、用户名、密码、确认密码、部门、性别、手机号和邮箱,并检查新增后的提示信息是否与预期相符。
"""
login_url = 'https://192.168.5.235/#/login/logindf'
# 初始化通知文本为空字符串
notify_text = ""
# 从全局存储中获取webdriver实例
......@@ -106,13 +105,14 @@ class User_Chanage_Pwd_000x:
CHECK_POINT('校验修改密码提示信息', notify_text == check_text)
if name == '用户修改密码_022':
login_url = get_login_url_from_config("标准版预定系统")
# 清除浏览器,再重新打开浏览器
wd.get(login_url)
# 最大化浏览器窗口
wd.maximize_window()
admin_login("admin@ZDH", "Ubains@4321")
enter_the_backend()
# wd.refresh()
INFO("打开账号管理下拉菜单")
safe_click((By.XPATH, "//span[@class='aside_menu menu_account']"), wd)
......
......@@ -98,7 +98,7 @@ class Add_User_000x:
sleep(1)
if name == '用户新增_048':
login_url = 'https://192.168.5.235/#/login/logindf'
login_url = get_login_url_from_config("标准版预定系统")
# 清除浏览器,再重新打开浏览器
wd.get(login_url)
# 最大化浏览器窗口
......
......@@ -96,7 +96,7 @@ class Query_User_000x:
CHECK_POINT("检查搜索结果", query_text in check_text)
if name == '用户查询_044':
login_url = 'https://192.168.5.235/#/login/logindf'
login_url = get_login_url_from_config("标准版预定系统")
# 清除浏览器,再重新打开浏览器
wd.get(login_url)
# 最大化浏览器窗口
......
......@@ -123,7 +123,7 @@ class User_Status_000x:
sleep(2)
if name == '用户状态设置_004':
login_url = 'https://192.168.5.235/#/login/logindf'
login_url = get_login_url_from_config("标准版预定系统")
# 清除浏览器,再重新打开浏览器
wd.get(login_url)
# 最大化浏览器窗口
......
......@@ -16,7 +16,7 @@ except ModuleNotFoundError as e:
def suite_setup():
STEP(1, "初始化浏览器")
# 传入系统类型,标准版 == 192.168.5.235
# 初始化浏览器与系统地址
browser_init("标准版预定系统")
wd = GSTORE['wd']
......
......@@ -10,8 +10,8 @@ from 预定系统.Base.base import *
def suite_setup():
STEP(1, "初始化浏览器")
# 传入系统类型,标准版 == 192.168.5.235
browser_init("标准版")
# 初始化浏览器与系统地址
browser_init("标准版预定系统")
wd = GSTORE['wd']
admin_login("admin@ZDH", "Ubains@4321")
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论