Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录
切换导航
U
ubains-module-test
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
郑晓兵
ubains-module-test
Commits
f3adf8fb
提交
f3adf8fb
authored
1月 06, 2025
作者:
陈泽健
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
补充展厅中控屏巡检流程的rtsp视频流截取监控画面,优化主题函数的代码,将每个设备控制封装为函数调用,增加可维护性。
上级
187defb5
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
107 行增加
和
72 行删除
+107
-72
.gitignore
.gitignore
+2
-1
app_base.cpython-310.pyc
预定系统/Base/__pycache__/app_base.cpython-310.pyc
+0
-0
app_base.py
预定系统/Base/app_base.py
+0
-0
README.md
预定系统/README.md
+3
-2
__st__.cpython-310.pyc
预定系统/cases/展厅巡检/00展厅中控屏/__pycache__/__st__.cpython-310.pyc
+0
-0
展厅中控屏.cpython-310.pyc
预定系统/cases/展厅巡检/00展厅中控屏/__pycache__/展厅中控屏.cpython-310.pyc
+0
-0
__st__.py
预定系统/cases/展厅巡检/00展厅中控屏/__st__.py
+49
-40
展厅中控屏.py
预定系统/cases/展厅巡检/00展厅中控屏/展厅中控屏.py
+52
-28
01服务器状态监测.cpython-310.pyc
.../cases/展厅巡检/08服务器监测/__pycache__/01服务器状态监测.cpython-310.pyc
+0
-0
定时执行功能测试.py
预定系统/定时执行功能测试.py
+1
-1
没有找到文件。
.gitignore
浏览文件 @
f3adf8fb
/预定系统/log
\ No newline at end of file
/预定系统/log
/预定系统/reports
\ No newline at end of file
预定系统/Base/__pycache__/app_base.cpython-310.pyc
浏览文件 @
f3adf8fb
No preview for this file type
预定系统/Base/app_base.py
浏览文件 @
f3adf8fb
此差异已折叠。
点击以展开。
预定系统/README.md
浏览文件 @
f3adf8fb
...
...
@@ -156,4 +156,5 @@
-
调试展厅巡检的异常,补充对视讯资源异常情况的判断处理。
-
切换标准版预订系统功能检测环境,定时运行程序,并进行调试,修复出现的异常情况。
34.
2025-01-06
-
补充展厅巡检后的会议创建流程。
\ No newline at end of file
-
补充展厅巡检后的会议创建流程。
-
补充展厅中控屏巡检流程的rtsp视频流截取监控画面,优化主题函数的代码,将每个设备控制封装为函数调用,增加可维护性。
\ No newline at end of file
预定系统/cases/展厅巡检/00展厅中控屏/__pycache__/__st__.cpython-310.pyc
浏览文件 @
f3adf8fb
No preview for this file type
预定系统/cases/展厅巡检/00展厅中控屏/__pycache__/展厅中控屏.cpython-310.pyc
浏览文件 @
f3adf8fb
No preview for this file type
预定系统/cases/展厅巡检/00展厅中控屏/__st__.py
浏览文件 @
f3adf8fb
...
...
@@ -25,51 +25,60 @@ def suite_setup():
wd
=
GSTORE
[
'wd'
]
admin_login
(
"Test02"
,
"ubains@123"
)
sleep
(
5
)
INFO
(
"请检查中控屏软件灯光开启的状态是否正常"
)
STEP
(
2
,
"检查灯光开启状态"
)
# 这是全部灯光关闭后在软件界面上的状态显示
INFO
(
"请检查中控屏软件的灯光关闭状态显示是否正常"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
,
"Exhibit_Inspect"
,
"Control_Manage"
,
"light_all_off"
)
# 这是全部灯光开启后在软件界面上的状态显示
INFO
(
"请检查中控屏软件的灯光开启状态显示是否正常"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
,
"Exhibit_Inspect"
,
"Control_Manage"
,
"light_all_on"
)
# 这是灯光开启前的截图
INFO
(
"请检查灯光开启前的监控视频状态是否正常"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
,
"Exhibit_Inspect"
,
"Control_Manage"
,
"light_down"
)
# 这是灯光开启后的截图
INFO
(
"请检查灯光开启后的监控视频状态是否正常"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
,
"Exhibit_Inspect"
,
"Control_Manage"
,
"light_on"
)
# STEP(2, "检查灯光开启状态")
# # 这是全部灯光关闭后在软件界面上的状态显示
# INFO("请检查中控屏软件的灯光关闭状态显示是否正常")
# SELENIUM_LOG_SCREEN(wd,"50%","Exhibit_Inspect","Control_Manage","light_all_off")
# # 这是全部灯光开启后在软件界面上的状态显示
# INFO("请检查中控屏软件的灯光开启状态显示是否正常")
# SELENIUM_LOG_SCREEN(wd,"50%","Exhibit_Inspect","Control_Manage","light_all_on")
# # 这是灯光开启前的截图
# INFO("请检查灯光开启前的监控视频状态是否正常")
# SELENIUM_LOG_SCREEN(wd,"50%","Exhibit_Inspect","Control_Manage","light_down")
# # 这是灯光开启后的截图
# INFO("请检查灯光开启后的监控视频状态是否正常")
# SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "light_on")
STEP
(
3
,
"检查窗帘的上升下降状态"
)
INFO
(
"请检查窗帘上升状态是否正常"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
,
"Exhibit_Inspect"
,
"Control_Manage"
,
"curtain_up"
)
INFO
(
"请检查窗帘下降状态是否正常"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
,
"Exhibit_Inspect"
,
"Control_Manage"
,
"curtain_down"
)
#
STEP(3, "检查窗帘的上升下降状态")
#
INFO("请检查窗帘上升状态是否正常")
#
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "curtain_up")
#
INFO("请检查窗帘下降状态是否正常")
#
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "curtain_down")
STEP
(
3
,
"检查空调开启状态"
)
# 这是空调关闭的状态显示
INFO
(
"请检查空调关闭的状态是否正常"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
,
"Exhibit_Inspect"
,
"Control_Manage"
,
"air_condition_off"
)
# 这是空调开启的状态显示
INFO
(
"请检查空调开启的状态是否正常"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
,
"Exhibit_Inspect"
,
"Control_Manage"
,
"air_condition_on"
)
#
STEP(3, "检查空调开启状态")
#
#
这是空调关闭的状态显示
#
INFO("请检查空调关闭的状态是否正常")
#
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "air_condition_off")
#
#
这是空调开启的状态显示
#
INFO("请检查空调开启的状态是否正常")
#
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "air_condition_on")
STEP
(
4
,
"检查指挥大屏开启状态"
)
# 这是指挥大屏关闭的监控视频显示
INFO
(
"请检查指挥大屏关闭的监控视频状态是否正常"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
,
"Exhibit_Inspect"
,
"Control_Manage"
,
"command_screen_down"
)
# 这是指挥大屏开启的监控视频显示
INFO
(
"请检查指挥大屏开启的监控视频状态是否正常"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
,
"Exhibit_Inspect"
,
"Control_Manage"
,
"command_screen_on"
)
#
STEP(4, "检查指挥大屏开启状态")
#
#
这是指挥大屏关闭的监控视频显示
#
INFO("请检查指挥大屏关闭的监控视频状态是否正常")
#
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "command_screen_down")
#
#
这是指挥大屏开启的监控视频显示
#
INFO("请检查指挥大屏开启的监控视频状态是否正常")
#
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "command_screen_on")
STEP
(
5
,
"检查音乐播放状态"
)
# 这是音乐开启播放后的界面显示
INFO
(
"请检查中控屏软件打开音乐播放后的界面状态显示"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
,
"Exhibit_Inspect"
,
"Control_Manage"
,
"music_on"
)
# 这是音乐关闭播放后的界面显示
INFO
(
"请检查中控屏软件关闭音乐播放后的界面状态显示"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
,
"Exhibit_Inspect"
,
"Control_Manage"
,
"music_off"
)
#
STEP(5,"检查音乐播放状态")
#
#
这是音乐开启播放后的界面显示
#
INFO("请检查中控屏软件打开音乐播放后的界面状态显示")
#
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "music_on")
#
#
这是音乐关闭播放后的界面显示
#
INFO("请检查中控屏软件关闭音乐播放后的界面状态显示")
#
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "music_off")
# STEP(6,"检查信息发布界面展示")
# # 这是生日快乐主题内容发布
# INFO("请检查中控屏软件信息发布界面是否正常")
# SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "information_brithday_on")
# # 这是会议欢迎主题内容发布
# INFO("请检查中控屏软件信息发布界面是否正常")
# SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "information_meeting_on")
# # 这是展厅空间结构内容发布
# INFO("请检查中控屏软件信息发布界面是否正常")
# SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "information_space_on")
def
suite_teardown
():
...
...
预定系统/cases/展厅巡检/00展厅中控屏/展厅中控屏.py
浏览文件 @
f3adf8fb
from
appium.webdriver.common.appiumby
import
AppiumBy
from
dominate.tags
import
button
from
pygments.console
import
light_colors
from
预定系统
.
Base
.
app_base
import
*
import
logging
from
time
import
sleep
from
hytest
import
*
# 配置日志记录
logging
.
basicConfig
(
level
=
logging
.
DEBUG
,
format
=
'
%(asctime)
s -
%(levelname)
s -
%(message)
s'
)
...
...
@@ -22,6 +20,7 @@ class Exhibition_hall_Control_000x:
该方法初始化应用驱动,等待应用加载,定位并点击会议按钮,加入会议,并截取会议画面。
"""
app_drive
=
None
wd
=
GSTORE
[
'wd'
]
try
:
# 初始化应用驱动,连接到指定的设备和应用
app_drive
=
app_setup_driver
(
"Android"
,
"5.1.1"
,
"UT-13"
,
"com.ubains.gviewer"
,
...
...
@@ -36,12 +35,17 @@ class Exhibition_hall_Control_000x:
"/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.RelativeLayout[1]/android.widget.Button[6]"
)
logging
.
info
(
"尝试定位【空气净化】按钮元素,并点击按钮"
)
air_button
.
click
()
sleep
(
20
)
sleep
(
10
)
STEP
(
2
,
"检查灯光控制功能"
)
# 这是灯光开启前的截图
INFO
(
"请检查灯光开启前的监控视频状态是否正常"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
,
"Exhibit_Inspect"
,
"Control_Manage"
,
"light_down"
)
# 先截取当前空间的灯光状态图片
rtsp_url
=
"rtsp://admin:huawei@123@192.168.4.15/LiveMedia/ch1/Media2"
# 替换为你的RTSP流地址
light_
rtsp_url
=
"rtsp://admin:huawei@123@192.168.4.15/LiveMedia/ch1/Media2"
# 替换为你的RTSP流地址
logging
.
info
(
"开始捕获RTSP流中的帧"
)
if
capture_frame_from_rtsp
(
rtsp_url
,
"light_down.png"
):
if
capture_frame_from_rtsp
(
light_
rtsp_url
,
"light_down.png"
):
logging
.
info
(
"帧捕获成功"
)
else
:
logging
.
error
(
"帧捕获失败"
)
...
...
@@ -54,24 +58,39 @@ class Exhibition_hall_Control_000x:
# 点击【灯光控制】按钮
light_button
.
click
()
logging
.
info
(
"点击【灯光控制】按钮成功"
)
sleep
(
20
)
sleep
(
10
)
# 这是全部灯光关闭后在软件界面上的状态显示
INFO
(
"请检查中控屏软件的灯光关闭状态显示是否正常"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
,
"Exhibit_Inspect"
,
"Control_Manage"
,
"light_all_off"
)
# 截图获取当前软件的灯光控制界面
app_drive
.
get_screenshot_as_file
(
r"D:\GithubData\自动化\ubains-module-test\预定系统\reports\imgs\Exhibit_Inspect\Control_Manage\light_all_off.png"
)
# 调用灯光控制函数
light_control
(
app_drive
)
# 这是全部灯光开启后在软件界面上的状态显示
INFO
(
"请检查中控屏软件的灯光开启状态显示是否正常"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
,
"Exhibit_Inspect"
,
"Control_Manage"
,
"light_all_on"
)
# 截图获取当前软件的灯光控制界面
app_drive
.
get_screenshot_as_file
(
r"D:\GithubData\自动化\ubains-module-test\预定系统\reports\imgs\Exhibit_Inspect\Control_Manage\light_all_on.png"
)
# 这是灯光开启后的截图
INFO
(
"请检查灯光开启后的监控视频状态是否正常"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
,
"Exhibit_Inspect"
,
"Control_Manage"
,
"light_on"
)
# 先截取当前空间的灯光状态图片
rtsp_url
=
"rtsp://admin:huawei@123@192.168.4.15/LiveMedia/ch1/Media2"
# 替换为你的RTSP流地址
light_
rtsp_url
=
"rtsp://admin:huawei@123@192.168.4.15/LiveMedia/ch1/Media2"
# 替换为你的RTSP流地址
logging
.
info
(
"开始捕获RTSP流中的帧"
)
if
capture_frame_from_rtsp
(
rtsp_url
,
"light_on.png"
):
if
capture_frame_from_rtsp
(
light_
rtsp_url
,
"light_on.png"
):
logging
.
info
(
"帧捕获成功"
)
else
:
logging
.
error
(
"帧捕获失败"
)
STEP
(
3
,
"检查窗帘的升降功能"
)
# 切换至窗帘控制界面
logging
.
info
(
"尝试定位【窗帘控制】按钮元素,并点击按钮"
)
curtain_button
=
app_drive
.
find_element
(
AppiumBy
.
XPATH
,
...
...
@@ -79,8 +98,9 @@ class Exhibition_hall_Control_000x:
curtain_button
.
click
()
sleep
(
2
)
# 调用窗口上升下降的函数
curtain_control
(
app_drive
)
curtain_control
(
app_drive
,
wd
)
STEP
(
3
,
"检查空调控制是否正常"
)
# 切换至空调控制界面
logging
.
info
(
"尝试定位【空调控制】按钮元素,并点击按钮"
)
air_conditioner_button
=
app_drive
.
find_element
(
AppiumBy
.
XPATH
,
...
...
@@ -88,8 +108,9 @@ class Exhibition_hall_Control_000x:
air_conditioner_button
.
click
()
sleep
(
2
)
# 调用空调控制的函数
air_condition_control
(
app_drive
)
air_condition_control
(
app_drive
,
wd
)
STEP
(
4
,
"检查指挥大屏控制是否正常"
)
# 切换至指挥中心控制界面
# 打开指挥中心大屏幕
logging
.
info
(
"尝试定位【开启指挥中心控制】按钮元素,并点击按钮"
)
...
...
@@ -98,33 +119,36 @@ class Exhibition_hall_Control_000x:
center_button
.
click
()
sleep
(
2
)
# 调用指挥中心控制函数
command_centre_control
(
rtsp_url
,
app_drive
)
command_centre_control
(
light_rtsp_url
,
app_drive
,
wd
)
STEP
(
5
,
"检查音乐控制功能是否正常"
)
# 切换至音乐区域
logging
.
info
(
"尝试定位【音乐】按钮元素,并点击按钮"
)
music_button
=
app_drive
.
find_element
(
AppiumBy
.
XPATH
,
"/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.RelativeLayout[1]/android.widget.Button[9]"
)
music_button
.
click
()
sleep
(
2
)
# 调用音乐控制函数
music_control
(
app_drive
,
wd
)
# 点击【播放音乐】
logging
.
info
(
"尝试定位【播放音乐】按钮元素,并点击按钮"
)
play_music_button
=
app_drive
.
find_element
(
AppiumBy
.
XPATH
,
"/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.RelativeLayout[2]/android.widget.Button[8]"
)
play_music_button
.
click
()
sleep
(
5
)
app_drive
.
get_screenshot_as_file
(
r"D:\GithubData\自动化\ubains-module-test\预定系统\reports\imgs\Exhibit_Inspect\Control_Manage\music_on.png"
)
# 点击【关闭播放音乐】
logging
.
info
(
"尝试定位【关闭播放音乐】按钮元素,并点击按钮"
)
close_play_music_button
=
app_drive
.
find_element
(
AppiumBy
.
XPATH
,
"/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.RelativeLayout[2]/android.widget.Button[8]"
)
close_play_music_button
.
click
()
STEP
(
6
,
"检查信息发布界面发布内容功能是否正常"
)
logging
.
info
(
"尝试定位【发布屏】按钮元素,并点击按钮"
)
information_delivery
=
app_drive
.
find_element
(
AppiumBy
.
XPATH
,
"/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.RelativeLayout[1]/android.widget.Button[7]"
)
logging
.
info
(
"定位成功"
)
information_delivery
.
click
()
sleep
(
5
)
app_drive
.
get_screenshot_as_file
(
r"D:\GithubData\自动化\ubains-module-test\预定系统\reports\imgs\Exhibit_Inspect\Control_Manage\music_off.png"
)
# 打开信息发布播放
information_on_button
=
app_drive
.
find_element
(
AppiumBy
.
XPATH
,
"/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.RelativeLayout[2]/android.widget.Button[7]"
)
information_on_button
.
click
()
logging
.
info
(
"信息发布播放开启成功"
)
# 调用信息发布控制函数
information_control
(
app_drive
,
wd
)
STEP
(
7
,
"关闭展厅环境灯光。"
)
# 切换灯光控制界面
# 所有测试结束后关闭灯光
logging
.
info
(
"尝试定位【灯光控制】按钮元素,并点击按钮"
)
...
...
预定系统/cases/展厅巡检/08服务器监测/__pycache__/01服务器状态监测.cpython-310.pyc
浏览文件 @
f3adf8fb
No preview for this file type
预定系统/定时执行功能测试.py
浏览文件 @
f3adf8fb
...
...
@@ -70,7 +70,7 @@ start_workers(3)
# 每天早上07:50执行后台系统设置功能测试
schedule
.
every
()
.
day
.
at
(
"10:00"
)
.
do
(
run_task
,
run_automation_test
,
report_title
=
"预定系统_后台管理功能_测试报告"
,
report_url_prefix
=
"http://nat.ubainsyun.com:31133"
,
test_case
=
"预定系统功能"
,
ding_type
=
"标准版巡检"
)
schedule
.
every
()
.
day
.
at
(
"07:5
5
"
)
.
do
(
run_task
,
run_automation_test
,
report_title
=
"展厅巡检测试报告"
,
report_url_prefix
=
"http://nat.ubainsyun.com:31133"
,
test_case
=
"展厅巡检"
,
ding_type
=
"展厅巡检"
)
schedule
.
every
()
.
day
.
at
(
"07:5
0
"
)
.
do
(
run_task
,
run_automation_test
,
report_title
=
"展厅巡检测试报告"
,
report_url_prefix
=
"http://nat.ubainsyun.com:31133"
,
test_case
=
"展厅巡检"
,
ding_type
=
"展厅巡检"
)
# schedule.every().day.at("08:25").do(run_task, run_automation_test, report_title="展厅巡检_腾讯终端入会测试报告", report_url_prefix="http://nat.ubainsyun.com:31133", test_case="展厅巡检_腾讯会议")
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论