在测试的过程中,软开关机、硬开关机是我们必须要的关注的测试项目,我们要充分的验证设备的开关机状况是否稳定,在一堵的日志中,我么如何高效的分析呢?
对于有日志记录的,我们就能使用脚本轻松的分析启动情况,如何记录日志是关键:文章源自陈学虎-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
这样在批量的测试中,可以快速的分析出结果。
关注我们,获取更多脚本:
评论