当前位置: 首页>移动开发>正文

IOS 定时打开钉钉 苹果定时唤醒钉钉

移动设备监控-发送钉钉通知

目的

每次测试要连接N台设备同时自动化,由于可能会出现中断情况,手动找起来太麻烦,尤其是假期的时候,出现特殊情况无法预知,特此增加了设备运行监控

说明

脚本主要是Python编写,移动设备50台,主控设备MacOS一台,设备管理使用Mysql

代码思路

使用mysql管理设备,主表存放设备的devicesID、设备编号、code
通过集线器将所有设备连接到主控机MacOS
批量执行设备运行自动化进程
通过运行的进程,找到进程的别名,例如:com.***sql这样
经实验运行完成和设备发生断电、以及程序异常的时候需要监控的进程会停止
导出设备的最近时间段的日志(太多了会很慢,导出一部分就好),截取需要的时间
使用正则进行拼接,例如:时间、设备ID、进程PID等
对时间进行差值计算,大于一定时间段,说明设备发生了异常,或者运行完成
把异常或完成的设备在数据库中进行标记,发生监控通知对应人员

监控脚本如下

'''提取日志时间和pid'''
    Url = '这里是钉钉的token'
    HEADERS = {"Content-Type": "application/json ;charset=utf-8 "}
    log_path = "数据源地址"
    for logs in read_path(log_path):
        with open(logs,'r',encoding='utf-8') as file:
            file_content = file.readlines()
            if len(file_content)!=0:
                file_line_last = file_content[-1]
                target = file_line_last[:60]
                log_data = re.findall('\d{2}-\d{2} \d{1,2}:\d{1,2}:\d{1,2}',target) #正则提取日期
                pid = re.findall('\s\s\d{1,4}\s\s',target)  # 正则提取pid
                log_datas = ['2022-'+(i) for i in log_data]
                log_times = "".join(log_datas)
                pids = [str(j)for j in pid]
                pid_id = "".join(pids)
                d1=datetime.datetime.strptime(log_times,'%Y-%m-%d %H:%M:%S')#日志时间
                times = strftime("%Y-%m-%d %H:%M:%S", localtime())#当前时间
                d2 = datetime.datetime.strptime(times, '%Y-%m-%d %H:%M:%S')
                devices = re.findall('.*report/(.*?)-',logs)
                time.sleep(0.5)
                diff=(d2-d1).seconds
                print(diff)
                time.sleep(0.3)
                if diff > 300:
                    for devid in devices:
                        sql = 'UPDATE dev_table SET code = 2 WHERE devices="%s"'%devid
                        db.updateDb(sql)
                        print(sql)
                        msg='

https://www.xamrdz.com/mobile/4ma1957429.html

相关文章: