设备自动重启日志分析

老虎说测试 脚本开发字数 1474阅读4分54秒阅读模式
摘要在测试的过程中,软开关机、硬开关机是我们必须要的关注的测试项目,我们要充分的验证设备的开关机状况是否稳定,在一堵的日志中,我么如何高效的分析呢?

在测试的过程中,软开关机、硬开关机是我们必须要的关注的测试项目,我们要充分的验证设备的开关机状况是否稳定,在一堵的日志中,我么如何高效的分析呢?

对于有日志记录的,我们就能使用脚本轻松的分析启动情况,如何记录日志是关键:文章源自陈学虎-https://chenxuehu.com/article/2022/08/8022.html

1、选择一个关键字作为参考时间;文章源自陈学虎-https://chenxuehu.com/article/2022/08/8022.html

2、在记录日志的时候,每行增加时间记录;文章源自陈学虎-https://chenxuehu.com/article/2022/08/8022.html

这两点是必须的,然后我们就能通过计算时间,来统计出启动日志是否符合我们的预期,比如:我们的机器启动的时间约是25秒,我们该如何测试呢?文章源自陈学虎-https://chenxuehu.com/article/2022/08/8022.html

如果你设置为26秒重启、开关机一次,这显然是不合符逻辑的,这样如果机器自动重启,我们是无法捕捉到异常的,因此,至少需要开机60秒,这样才是合理的用例。文章源自陈学虎-https://chenxuehu.com/article/2022/08/8022.html

这里分享一个统计的代码,是用 Python 写的,或许对你有帮助。文章源自陈学虎-https://chenxuehu.com/article/2022/08/8022.html

我的日志时间记录格式设置如下,如果你的时间记录格式不同,请修改对应的匹配规则:文章源自陈学虎-https://chenxuehu.com/article/2022/08/8022.html

[2022/7/15 18:01:52] LD_VER 03.00.02文章源自陈学虎-https://chenxuehu.com/article/2022/08/8022.html

import re
import datetime as dt
from dateutil import parser
from dateutil import rrule

logFile = "D:\\Share\2022-08-08_18_56_19.log"

tone = 0
linen = 0
renum = 0
reline = 0

with open(logFile,'r',encoding="utf-8") as fl:
    for line in fl.readlines():
        linen += 1
        if linen > 0:
            if "LD_VER 03.00.02" in line:
                reline += 1
                if tone == 0:
                    tone = line[1:].split(']')[0].split(" ")
                    basey = tone[0].split('/')
                    baset = tone[1].split(':')
                    continue

                two = line[1:].split(']')[0].split(" ")
                basey2 = two[0].split('/')
                baset2 = two[1].split(':')

                date1 = dt.datetime(int(basey[0]),int(basey[1]),int(basey[2]),int(baset[0]),int(baset[1]),int(baset[2]))  
                date2 = dt.datetime(int(basey2[0]),int(basey2[1]),int(basey2[2]),int(baset2[0]),int(baset2[1]),int(baset2[2]))  

                if (date2 - date1).seconds  < 30:
                    renum += 1
                    print(str(linen) + ":" + str((date2 - date1).seconds))

                tone = line[1:].split(']')[0].split(" ")
                basey = tone[0].split('/')
                baset = tone[1].split(':')

print("Reboot测试数据,1分钟reboot1次")
print("自动重启次数:" + str(renum/2))
print("总测试次数:" + str(reline-renum))
if renum != 0 or reline-renum != 0:
    print("自动重启比率:" + str((renum/2) / (reline-renum) * 100) + "%")

如此,就能轻松的统计出是否有自动重启的情况。文章源自陈学虎-https://chenxuehu.com/article/2022/08/8022.html

以下是分别统计的两次测试情况,结果还是非常直观的:文章源自陈学虎-https://chenxuehu.com/article/2022/08/8022.html

设备自动重启日志分析-图片1

 

这样在批量的测试中,可以快速的分析出结果。

关注我们,获取更多脚本:

设备自动重启日志分析-图片2

 最后更新:2022-8-25
  • 版权声明:本文为原创文章,转载请附上原文出处链接及本声明。
  • 转载请注明:设备自动重启日志分析 | https://chenxuehu.com/article/2022/08/8022.html