作为一个学完Python基础知识的测试,终于可以像RD们自己写脚本处理任何场景吧,如何优雅地写出来代码,接下来开启进阶版的Python。
在我们工作中,经常会查看大量异常的日志log,上千行数据如何统计出我要数据,并清晰反馈RD,这不之前学习的Python,这次派上用场了。
本期,我们一起来实现如何使用Python可视化处理log日志,一起来涨知识吧~
1. 问题背景
近期,RD对软件进行一次接口请求速度优化的更新,必须要在两天内对更新内容进行反馈。首先接到任务,作为测试的我,对基本的接口功能测完后,发现进入到性能测试环境,万行日志怎么看:
常规有如下几种操作:
- windows 电脑自带的TXT文本工具:无批量搜索功能
- Notepad++/Vscode :批量搜索,只能统计总数,无法可视化
有没有人遇到这种问题,像头铁的我将Notpad++批量筛选出来的数据,复制到Excel表中,进行字符处理统计,一顿操作,复用性太差了~~~~
果断使用Python,自己写一个脚本帮我自动处理分析log日志,其他时间摸摸鱼岂不是美哉。
-
脚本需求比较简单,主要分为三部分:
- 日志文件,数量不定数
- 多个字段信息
- 可视化展示数据变化
2. 批量修改log文件名
log日志文件格式是txt格式,且日志文件名是32位的taskID与报告ID组成taskID_reportID 形式如:60ac5624493b11eda5771e56c768036b_31.txt。
由于报告名字是32位数字,不利于我们跟踪那个设备端数据,因此得到报告后需要将报告名改为设备ID(U21041489-0A01245)。
代码实现思路:
-
- 将测试报告放入指定的目录下:如E:\screen_log
-
- 遍历读取每一份报告,获取deviceiD值列表
- 遍历获取文件内容,可以调用Python os.listdir获取目录文件名字all_files
- 使用for循环遍历all_files,上下文管理with打开并读取file内容
- 使用正则表达式提取到deviceid字段,经过分割、空格去掉,将deviceid添加到res_search列表中,代码示例如下:
def get_filecontext(file_path,search): all_files = os.listdir(file_path) cp = re.compile("'+"+ search