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

补充展厅中控屏巡检流程的rtsp视频流截取监控画面,优化主题函数的代码,将每个设备控制封装为函数调用,增加可维护性。

上级 187defb5
/预定系统/log
/预定系统/reports
\ No newline at end of file
from time import sleep
from appium.webdriver.common.appiumby import AppiumBy
from dominate.tags import button
from pygments.console import light_colors
import logging
from time import sleep
from appium.options.android import UiAutomator2Options
import logging
from selenium import webdriver
from hytest import *
def app_setup_driver(platformName, platformVersion, deviceName, appPackage, appActivity, udid):
......@@ -330,7 +326,7 @@ def light_control(app_drive):
light_training_room_button.click()
sleep(2)
def curtain_control(app_drive):
def curtain_control(app_drive,wd):
# 所有窗帘全部上升
logging.info("尝试定位所有【窗帘上升】按钮元素,并点击按钮")
# 上升按钮的定位
......@@ -340,10 +336,21 @@ def curtain_control(app_drive):
f"/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[{i}]")
curtain_up_button.click()
sleep(2)
INFO("请检查窗帘上升状态是否正常")
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "curtain_up")
# 截图获取当前中控屏软件窗帘上升的界面
app_drive.get_screenshot_as_file(
r"D:\GithubData\自动化\ubains-module-test\预定系统\reports\imgs\Exhibit_Inspect\Control_Manage\curtain_up.png")
sleep(10)
# # 测试报告中补充窗帘上升的截图
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "curtain_rtsp_up")
# 通过rtsp流获取当前窗帘的上升效果图
curtain_rtsp_url = "rtsp://admin:huawei@123@192.168.4.18/LiveMedia/ch1/Media2"
logging.info("开始捕获RTSP流中的帧")
if capture_frame_from_rtsp(curtain_rtsp_url, "curtain_rtsp_up.png"):
logging.info("帧捕获成功")
else:
logging.error("帧捕获失败")
# 所有窗帘全部下降
logging.info("尝试定位所有【窗帘下降】按钮元素,并点击按钮")
......@@ -354,17 +361,31 @@ def curtain_control(app_drive):
f"/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[{i}]")
curtain_down_button.click()
sleep(2)
INFO("请检查窗帘下降状态是否正常")
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "curtain_down")
# 截图获取当前中控屏软件窗帘上升的界面
app_drive.get_screenshot_as_file(
r"D:\GithubData\自动化\ubains-module-test\预定系统\reports\imgs\Exhibit_Inspect\Control_Manage\curtain_down.png")
# 测试报告中补充窗帘下降的截图
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "curtain_rtsp_down")
logging.info("开始捕获RTSP流中的帧")
if capture_frame_from_rtsp(curtain_rtsp_url, "curtain_rtsp_down.png"):
logging.info("帧捕获成功")
else:
logging.error("帧捕获失败")
def air_condition_control(app_drive):
def air_condition_control(app_drive,wd):
# 点击【打开空调】按钮
logging.info("尝试定位【打开空调】按钮元素,并点击按钮")
open_air_conditioner_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[14]")
open_air_conditioner_button.click()
sleep(20)
# 这是空调开启的状态显示
INFO("请检查空调开启的状态是否正常")
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "air_condition_on")
app_drive.get_screenshot_as_file(
r"D:\GithubData\自动化\ubains-module-test\预定系统\reports\imgs\Exhibit_Inspect\Control_Manage\air_condition_on.png")
sleep(2)
......@@ -375,15 +396,107 @@ def air_condition_control(app_drive):
"/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[14]")
close_air_conditioner_button.click()
sleep(20)
# 这是空调关闭的状态显示
INFO("请检查空调关闭的状态是否正常")
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "air_condition_off")
app_drive.get_screenshot_as_file(
r"D:\GithubData\自动化\ubains-module-test\预定系统\reports\imgs\Exhibit_Inspect\Control_Manage\air_condition_off.png")
sleep(2)
def command_centre_control(rtsp_url,app_drive):
def information_control(app_drive,wd):
# 选择生日快乐内容播放
brithday_information_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[2]")
brithday_information_button.click()
logging.info("选择生日快乐内容播放")
sleep(5)
# 这是生日快乐主题内容发布
INFO("请检查中控屏软件信息发布界面是否正常")
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "information_brithday_on")
information_rtsp_url = "rtsp://admin:huawei@123@192.168.4.19/LiveMedia/ch1/Media2" # 替换为你的RTSP流地址
logging.info("开始捕获RTSP流中的帧")
if capture_frame_from_rtsp(information_rtsp_url, "information_brithday_on.png"):
logging.info("帧捕获成功")
else:
logging.error("帧捕获失败")
# 选择欢迎领导发布内容播放
meeting_information_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[3]")
meeting_information_button.click()
logging.info("选择会议发布内容播放")
sleep(5)
# 这是会议欢迎主题内容发布
INFO("请检查中控屏软件信息发布界面是否正常")
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "information_meeting_on")
logging.info("开始捕获RTSP流中的帧")
if capture_frame_from_rtsp(information_rtsp_url, "information_meeting_on.png"):
logging.info("帧捕获成功")
else:
logging.error("帧捕获失败")
# 选择展厅空间结构内容播放
information_space_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[4]")
information_space_button.click()
logging.info("选择展厅空间结构内容播放")
sleep(5)
# 这是展厅空间结构内容发布
INFO("请检查中控屏软件信息发布界面是否正常")
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "information_space_on")
if capture_frame_from_rtsp(information_rtsp_url, "information_space_on.png"):
logging.info("帧捕获成功")
else:
logging.error("帧捕获失败")
# 点击信息发布关闭按钮
logging.info("点击信息发布关闭按钮")
information_close_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_close_button.click()
def 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(2)
# 调用音频采集判断音量函数
INFO("请检查中控屏音乐播放的音频采集是否正常!!!")
volume_acquisition()
sleep(10)
# 这是音乐开启播放后的界面显示
INFO("请检查中控屏软件打开音乐播放后的界面状态显示")
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "music_on")
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()
sleep(5)
# 这是音乐关闭播放后的界面显示
INFO("请检查中控屏软件关闭音乐播放后的界面状态显示")
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "music_off")
app_drive.get_screenshot_as_file(
r"D:\GithubData\自动化\ubains-module-test\预定系统\reports\imgs\Exhibit_Inspect\Control_Manage\music_off.png")
def command_centre_control(rtsp_url,app_drive,wd):
open_center_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")
open_center_button.click()
sleep(10)
# 这是指挥大屏开启的监控视频显示
INFO("请检查指挥大屏开启的监控视频状态是否正常")
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "command_screen_on")
# 从rtsp流中截取一帧保存为图片
logging.info("开始捕获RTSP流中的帧")
if capture_frame_from_rtsp(rtsp_url, "command_screen_on.png"):
......@@ -391,6 +504,9 @@ def command_centre_control(rtsp_url,app_drive):
else:
logging.error("帧捕获失败")
# 这是指挥大屏关闭的监控视频显示
INFO("请检查指挥大屏关闭的监控视频状态是否正常")
SELENIUM_LOG_SCREEN(wd, "50%", "Exhibit_Inspect", "Control_Manage", "command_screen_down")
# 关闭指挥中心大屏幕
logging.info("尝试定位【关闭指挥中心控制】按钮元素,并点击按钮")
close_center_button = app_drive.find_element(AppiumBy.XPATH,
......@@ -404,3 +520,61 @@ def command_centre_control(rtsp_url,app_drive):
logging.info("帧捕获成功")
else:
logging.error("帧捕获失败")
import pyaudio
import numpy as np
# 定义参数
FORMAT = pyaudio.paInt16 # 16-bit resolution
CHANNELS = 1 # 1 channel
RATE = 44100 # 44.1kHz sampling rate
CHUNK = 1024 # 2^10 samples for buffer
THRESHOLD = 1000 # 阈值,可以根据实际情况调整
RECORD_SECONDS = 10 # 录制时长
def is_audio_loud(data, threshold=THRESHOLD):
"""
判断音频数据是否超过阈值
:param data: 音频数据
:param threshold: 阈值
:return: 如果声音大小超过阈值,返回True;否则返回False
"""
return np.abs(np.frombuffer(data, dtype=np.int16)).mean() > threshold
def volume_acquisition():
audio = pyaudio.PyAudio() # 初始化pyaudio
# 打开音频流
stream = audio.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
logging.info("开始录音...")
frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK) # 读取音频数据
frames.append(data)
logging.info("录音结束。")
# 停止和关闭音频流
stream.stop_stream()
stream.close()
audio.terminate()
# 将所有帧合并成一个字节流
audio_data = b''.join(frames)
# 判断音量状态
if is_audio_loud(audio_data):
INFO("整段音频声音过大!")
else:
INFO("整段音频声音正常。")
# 进一步处理音频数据(例如保存为文件或分析)
# ...
# if __name__ == "__main__":
# volume_acquisition()
\ No newline at end of file
......@@ -157,3 +157,4 @@
- 切换标准版预订系统功能检测环境,定时运行程序,并进行调试,修复出现的异常情况。
34. 2025-01-06
- 补充展厅巡检后的会议创建流程。
- 补充展厅中控屏巡检流程的rtsp视频流截取监控画面,优化主题函数的代码,将每个设备控制封装为函数调用,增加可维护性。
\ No newline at end of file
......@@ -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():
......
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("尝试定位【灯光控制】按钮元素,并点击按钮")
......
......@@ -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:55").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:50").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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论