01服务器状态监测.py 6.5 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
import sys
import os

# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..','..'))
# 添加路径
sys.path.append(预定系统_path)
# 导入模块
from 预定系统.Base.base import *

13 14 15 16 17 18 19

# 获取当前脚本所在的目录
current_dir = os.path.dirname(os.path.abspath(__file__))

# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../../测试数据/展厅巡检/会议补充预约.csv')

20
class Server_monitoring_0001:
21 22 23 24 25
    """
        执行指令:
            1.cd 预定系统
            2.hytest --report_title 会议预约测试报告 --report_url_prefix http://192.168.1.225 --test 展厅补充会议创建_001
    """
26
    tags = ['展厅巡检','服务器状态巡检']
27
    ddt_cases = read_csv_data(csv_file_path)
28 29 30 31

    def teststeps(self):
        i = 0
        # 使用示例
32
        url = "http://192.168.5.200:8081/media/cmdb/service_info/check.txt"
33 34 35 36 37 38 39
        save_path = "check.txt"
        extract_info = ['[m]ysql', '[r]edis', '[f]dfs_storaged', '[f]dfs_tracker', '[e]mqx',
                        'ubains-meeting-api-1.0-SNAPSHOT.jar', 'ubains-meeting-inner-api-1.0-SNAPSHOT.jar', 'uwsgi']

        info = fetch_and_parse_check_txt(url, save_path, extract_info)
        if info:
            for key, value in info.items():
40
                STEP(++i, f"服务器{key} 服务状态巡检")
41
                INFO(f"监测到{key} 服务的状态:{value}")
42 43
                CHECK_POINT(f"{key} 服务状态是否正常", value == '服务正常')

44
        else:
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
            INFO("无法获取或解析文件内容")

        # 补充预定系统会议创建
            # 初始化通知文本为空字符串
            notify_text = ""
            # 从全局存储中获取webdriver实例
            wd = GSTORE['wd']
            name = self.name
            conference_name, message_name, book_type, check_text = self.para

            # 在会议室列表搜索会议室
            STEP(1, f"在会议室列表搜索:{conference_name}")
            # 展开筛选下拉框
            safe_click((By.XPATH, "//i[@class='el-collapse-item__arrow el-icon-arrow-right']"), wd)
            sleep(1)
            # 输入会议室名称,并点击【查询】按钮
            safe_send_keys((By.XPATH, "//input[@placeholder='请输入会议室名称']"), conference_name, wd)
            safe_click((By.XPATH, "//button[@type='button']//span[contains(text(),'查询')]"), wd)
            sleep(1)

            # 点击【会议预定】按钮,进入会议预定界面
            STEP(2, "点击【会议预定】按钮")
            safe_click((By.XPATH, "//span[@class='MeetingCityList_t_btn']"), wd)
            sleep(1)

            # 在会议预定第一步界面进行数据填入
            STEP(3, "会议第一步数据填写")
            INFO(
                f"输入会议名称:{message_name},选择会议类型:视讯融合会议,选择预约类型:{book_type}")
            # 输入会议名称
            safe_send_keys((By.XPATH, "//input[@placeholder='请输入会议名称']"), message_name, wd)

            # 判断会议类型
            safe_click((By.XPATH,
                        f"//div[@class='reserve_input']//span[@class='el-checkbox__label'][normalize-space()='讯飞语音转录']"),
                       wd)
            sleep(2)

            # 选择普通会议
            safe_click((By.XPATH, f"//span[contains(text(),'{book_type}')]"), wd)
            sleep(1)

            # 选择签到时间
            INFO("选择提前30分钟开始签到")
            safe_click((By.XPATH, "(//span[@class='el-switch__core'])[2]"), wd)
            safe_click((By.XPATH, "(//span[@class='el-switch__core'])[3]"), wd)
            sleep(1)
            safe_send_keys((By.XPATH, "//input[@id='input_checkin']"), "30", wd)

            # 根据开始时间选择8点30
            safe_click((By.XPATH, f"(//div[normalize-space()='08:30'])[1]"), wd)
            safe_click((By.XPATH, f"(//div[normalize-space()='08:45'])[1]"), wd)

            # 在会议预定第二步界面进行数据填入
            STEP(4, "会议第二步数据填写")
            # 点击【下一步】进入会议预定第二步界面
            safe_click((By.XPATH, "//div[contains(text(),'下一步')]"), wd)
            sleep(1)

            # 根据参会人名称搜搜对应参会人
            ipn = ['赵嘉诚', 'CZJ', '马晓丽', '王兵', '陈林', '李立键', '丁海洪', '刘建胜', '潘松林', '卢培锽',
                   '黄史恭', '罗一龙', '彭甘宇']
            for i in range(0, 13):
                safe_send_keys((By.XPATH, "//input[@placeholder='账号/用户名']"), ipn[i], wd)
                send_keyboard((By.XPATH, "//input[@placeholder='账号/用户名']"), wd)
                sleep(1)
                # 选择内部参会人
                safe_click((By.XPATH,
                            "//th[contains(@class,'is-leaf el-table__cell')]//span[contains(@class,'el-checkbox__inner')]"),
                           wd)
                # 获取已选的参会人名称
                # notify_text = elment_get_text((By.XPATH, f"//span[normalize-space()='{ipn[i]}']"), wd)
            INFO(f"已选择参会人:{ipn}")
118
            SELENIUM_LOG_SCREEN(wd, "75%", "Exhibit_Inspect", "Server_Monitoring", "选择内部参会人")
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139

            # 点击【下一步】按钮
            safe_click((By.XPATH, "//div[contains(text(),'下一步')]"), wd)
            sleep(1)
            safe_click((By.XPATH, "//div[contains(text(),'下一步')]"), wd)

            # 进入会议预约第三步进行填写
            STEP(5, "会议第三步数据填写")
            # 取消短信提醒
            safe_click((By.XPATH, "//div[@class='Sendout']//span[@class='el-checkbox__label'][contains(text(),'全选')]"), wd)
            sleep(2)
            safe_click((By.XPATH, "//div[@class='Sendout']//span[@class='el-checkbox__label'][contains(text(),'全选')]"), wd)

            # 点击【确定】按钮
            STEP(6, "点击【确定】按钮")
            safe_click((By.XPATH, "//div[contains(text(),'确定')]"), wd)

            # 点击最后【确定】按钮,预定成功后会跳转至已预定界面
            STEP(7, "点击【确定】按钮")
            safe_click((By.XPATH, "//div[contains(@aria-label,'会议信息')]//span[contains(text(),'确定')]"), wd)
            sleep(3)
140
            SELENIUM_LOG_SCREEN(wd, "75%", "Exhibit_Inspect", "Server_Monitoring", "预定会议成功界面")