-
2022-04-27 16:14:17
软件测试-查看日志常用的linux命令:
1、tail 查看文本文件的尾部
tail -f alert_monitor.log //实时查看alert_monitor.log文件 日志
tail -n 100 alert_monitor.log //查询日志尾部最后100行的日志
tail -n +100 alert_monitor.log // 查询100行之后的所有日志
2、cat 查看文件
cat -n alert_monitor.log
cat -n alert_monitor.log | tail -n +100 | head -n 20 //查询100行之后的日志,且在100行之后里再查前20条日志
3、head 查看文本文件的开头部分
head -n 10 alert_monitor.log //查询日志文件中的头10行日志
head -n -10 alert_monitor.log //查询日志文件除了最后10行的其他所有日志
4、sed 管道命令
sed -n '/2020-04-17 16:17:20/,/2020-04-17 16:20:36/p' alert_monitor.log //查看时间段日志
sed -n '100,200p' alert_monitor.log //查看100行-200行日志
5、grep 文本搜索
grep fuju alert_monitor.log //搜索文件中 fuju
cat -n alert_monitor.log | grep "ERROR" //查询关键字ERROR的日志
6、more/less 日志特别多,分页查看
catc -n alert_monitor.log | grep "debug" | more 分页打印了,通过点击空格键翻页
(more与less区别 less更强大,可在多个终端使用,支持上下键前后翻阅)
【补充一下:每个公司查看日志都不一样,我司是在jump server 里进入web终端直接可查看。
查看项目需要权限找开发帮你开一下,开发也会告知在哪个文件内。
实习的时候也很懵,日志到底在哪里看,后面问开发就清楚多了】
更多相关内容 -
测试人员在工作中如何查日志?
2021-05-17 17:53:04推荐理由:多个开发和测试前辈,都推荐的,简单好用 N0.2 推荐:查最后10000行匹配关键词的上下10行 eg:tail -n 行数 文件 |grep 关键词 -C 关键词上下行数 tail -n 10000 XXX.log|grep 客户号 -C 10 推荐理由...1、查日志最实用排行榜
N0.1
- 推荐:vi命令中的查找
- 步骤:
1、进入vi
2、输入:?关键词
3、n键向上查找,N向下查找 - 适合场景:适合成熟的软件,根据关键词查找想要的信息
N0.2
- 推荐:查最后10000行匹配关键词的上下10行
- eg:tail -n 行数 文件 |grep 关键词 -C 关键词上下行数
tail -n 10000 XXX.log|grep 客户号 -C 10
- 适合场景:相对灵活,可以调整行数
N0.3
- 推荐:查实时日志
- eg:
tail -200f XXX.log
- 适用场景:比如点击页面,有明显的异常,适合实时定位缺陷
2、关键词的选择
开发给的关键词>流水号>案件号>客户号>ERROR
- 开发给的关键词
开发在写接口时,通常会捕获异常打印日志。在测某个特定的接口时,我们可以根据开发写的日志来查。
- 模块id(案件号)
比如我们要测订单模块,那么肯定有订单id,我们可以根据订单id这个关键词去搜索
- 客户号
大部分表都通过该客户号进行关联,我们可以根据客户号查出大部分异常情况
- ERROR
为什么最后才推荐ERROR?
首先一个测试环境通常有多人在操作,测试环境又相当不稳定,ERROR的情况可能比较多,但是大多ERROR并不影响你测的模块。其次,并不是一定要报ERROR才是bug,wanning和info也可能会是bug的。3、怎么看日志
关键词>中文>ERROR>具体信息
- 关键词
首先看关键词,因为关键词相关的错误信息,才会与你负责的模块相关。否则你可能分析了半天,结果和你负责的模块没有任何关系。 - 中文
为什么看中文?首先中文很显眼,其次中文日志是开发捕获异常写的,简单明了,往往开发的一句中文你就能定位到原因 - ERROR
ERROR已经是高级别的错误,出现ERROR又与你负责的模块相关,那基本八九不离十了 - 具体信息
定位大概方向,我们还需要看看具体里面的逻辑,一方面确定原因,另一方面养成看日志的好习惯
-
软件测试技能之查看log日志
2021-07-23 13:02:47前言作为一名测试工程师,测试任务中和Linux打交道的地方有很多,比如查看日志、定位bug、修改文件、部署环境等。产品部署在linux上,如果某个功能发生错误,就需要我们去排查出错的原因,所以熟练的掌握查看log的...前言
作为一名测试工程师,测试任务中和Linux打交道的地方有很多,比如查看日志、定位bug、修改文件、部署环境等。产品部署在linux上,如果某个功能发生错误,就需要我们去排查出错的原因,所以熟练的掌握查看log的方法显得尤为重要。如何优雅的查看log日志,让我们拭目以待。
谈到查看log的方法,最常使用的命令可以说是cat与more及less了,但是如果查看一个很大的文件,并且只想看到该文件最后几行的结果输出时,你还记得用什么吗?对了,就是tail,此外tac也可以达到这个目的。接下来文章将通过实例来讲解各个查看日志的命令。
cat:由第一行开始显示文件内容
tac:从最后一行开始显示,不知道你是否观察出来,tac是cat倒着写的,所以功能上两个是相反的
nl:显示的时候,同时输出行号
more:一页一页地显示文件内容
less:与more类似,相比于more,可以往前翻页
head:只看前面几行tail:只看后面几行
cat/tac/nl
想要直接查看一个文件的内容,可以使用cat/tac/nl命令行。
1. cat(concatenate,串联)
cat [-AbEnTv] 文件
选项与参数:
-A :相当于-vET的整合,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做出行号显示,空白行不标行号;
-E :将结尾的换行符$显示出来;
-n :打印出行号,连同空白行也会有行号,与-b的选项不同;
-T :将[tab]按键以^I显示出来 ;
-v :列出一些看不出来的特殊字符;
实例1:查看/etc/spring.log的文件内容。
cat /etc/spring.log
\a
\ab
\abc
实例2:查看/etc/spring.log的文件内容并打印行号。
cat -n /etc/spring.log
1 \a
2 \ab
3 \abc
#如果对于大文件,cat -n 可以解决找特定行的需求。
实例3:将/etc/spring.log的内容完整的显示出来(包含特殊字符)。
cat -A /etc/spring.log
\a$
\ab$
\abc$
在一般情况下,使用[tab]与空格键的效果差不多,都是一堆空白,无法区分出两者,但是如果使用cat -A 就能够发现空白的地方到底是什么,其中[tab]是以^I表示,换行符则是以$表示。当文件内容的行数超过40行以上时,根本来不及在屏幕上看到结果。所以cat配合less或者more是不错的选择。
2. tac(反向列示)
实例1:反向输出/etc/spring.log的文件内容。
cat /etc/spring.log
\abc
\ab
\a
3. nl(添加行号打印)
nl [-bnw] 文件
选项与参数:
-b :指定行号指定的方式:主要2种:
-b a :表示不论是否为空行,也同样列出行号(类似cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要3种:
-n ln :行号在屏幕的最左方表示;
-n rn :行号在自己栏位的最右方显示,且不加0;
-n rz :行号在自己栏位的最右方显示,且加0;
-w :行号栏位的占用的字符数。
实例1:用nl列出/etc/spring.log的内容。
nl /etc/spring.log
1 \a
2 \ab
#其实文件有三行,第三行为空白(没有任何字符),因为是空白行,所以nl不会加上行号。
#如果想加上行号,使用nl -b a /etc/spring.log
实例2:
nl -b a /etc/spring.log
1 \a
2 \ab
3
#如果想在行号前面自动补上0,使用nl -b a -n rz /etc/spring.log
实例3:
nl -b a -n rz /etc/spring.log
000001 \a
000002 \ab
000003
# 默认6位数,想改为3位数可以使用nl -b a -n rz -w -3 /etc/spring.log
实例4:
nl -b a -n rz -w -3 /etc/spring.log
001 \a
002 \ab
003
nl可以将输出的文件内容自动地加上行号,其默认的结果与cat -n不太一样,nl可以将行号做比较多的显示设计,包括位数与是否自动补齐0等的功能。
more/less
想要一页一页的查看文件的内容,可以使用more和less命令。
1. more(一页一页翻动)
more 文件
实例1:
more /etc/spring.log
OpenJDK 64-Bit Server VM (25.171-b10) for linux-amd64 JRE (1.8.0_171-b10), built on May 9 2018 13:15:45 by "mockbuild" with gcc 4.8.5 201
50623 (Red Hat 4.8.5-28)
Memory: 4k page, physical 3881804k(1452992k free), swap 0k(0k free)
....省略....
--More--(75%) #这一行为重点,如果文件内容行数大于屏幕输出的行数时,就会展示出目前文件展示的百分比,此时光标也会停留在这里等待你输入信息,在more展示文件时,有几个功能按键可供使用:
1. 空格键(space): 代表向下翻一页
2. Enter :代表向下翻一行
3. /字符串 :代表在这个显示的内容中,向下查找字符串这个关键词
4. :f :立刻显示出文件名以及当前显示的行数
5. q : 代表立刻离开more,不再显示该文件内容
6. b或[ctrl]-b :代表往回翻页
2. less(一页一页翻动)
less 文件
实例1:
less /etc/spring.log
OpenJDK 64-Bit Server VM (25.171-b10) for linux-amd64 JRE (1.8.0_171-b10), built on May 9 2018 13:15:45 by "mockbuild" with gcc 4.8.5 201
50623 (Red Hat 4.8.5-28)
Memory: 4k page, physical 3881804k(1452992k free), swap 0k(0k free)
....省略....
: #这一行等待你输入信息,展示文件时,有几个功能按键可供使用:
1. 空格键(space): 代表往下翻动一页
2. [pagedown] :代表向下翻动一页
3. [pageup] :代表向上翻动一页
4. /字符串 :向下查找字符串这个关键词
5. ?字符串 :向上查找字符串这个关键词
6. n : 重复前一个查找(与/或?有关)
7. N:反向的重复前一个查找(与/或?有关)
8. g:前进到这个数据的第一行
9. G:前进到这个数据的最后一行
10. q : 退出
对比less和more,less的用法更加的灵活,more的缺点是没有办法向前翻页,只能往后翻,但是less既能往后翻也能往前翻页。
head/tail
如果只想关注日志内容的前一段或者最后一段的内容,使用head/tail。
1. head(取出前面几行)
head [-n number] 文件
选项与参数:
-n : 后面接数字,代表显示几行的意思。
# 默认情况下是显示前10行,如果想要显示前20行,使用head -n 20 文件
实例1:
head -n 20 /etc/spring.log
# 行数可以为正数,也可以为负数,为负数的时候,这样理解,比如一个文件有131行,我不想看最后的100行,也就是说想看前31行,其实有2种命令方式:
1. head -n 31 /etc/spring.log
2. head -n -100 /etc/spring.log
2. tail(取出后面几行)
tail [-n number] 文件
选项与参数:
-n : 后面接数字,代表显示几行的意思。
-f : 表示持续刷新显示后面所接文件中的内容,按下ctrl -c 才会结束
# 默认情况下是显示最后10行,如果想要显示最后20行,使用tail -n 20 文件
实例1:如果不知道文件有多少行,但是想要列出100行以后的数据?
tail -n +100 /etc/spring.log
实例2:持续检测/etc/spring.log的内容。
tail -f /etc/spring.log
几种查看log的方式总结的也差不多了,希望各位小伙伴能在实际操作中多加使用熟记命令,优雅的查看log日志。
更多软件测试相关推荐:
文章来源:网络 版权归原作者所有
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8103),我们将立即处理
-
APP测试-Android日志分析
2018-08-03 16:04:55日志,又称为 Log,保存的文件称为trace文件,是我们测试人员的又一利器,其实,不管是在调试还是测试的时候,日志都可以帮助我们解决问题。 2.所谓的日志,其实是一种记录机制,允许我们在程序代码中插入一些特殊... -
测试还是要学会看日志:查看日志小技巧
2021-07-10 07:42:56做测试,如果不会看日志,那估计真的是很out了,因为你看到的永远是表象, 估计有人说,不就是tail这个命令么?是的,问题是,一长串日志内容,可能好几屏,你能看懂问题在哪么? 或者说,调用栈那么长,你能在日志...前言
做测试,如果不会看日志,那估计真的是很out了,因为你看到的永远是表象,
估计有人说,不就是tail这个命令么?是的,问题是,一长串日志内容,可能好几屏,你能看懂问题在哪么?
或者说,调用栈那么长,你能在日志中找到抛出异常的准确位置么?这些信息对开发来说才是有用的,这也是bug质量,
如果你的日志截图毫无相关或者说对开发毫无帮助,估计开发又得自己去看日志,或者大吼一声:嘿,老铁,再点一波,我看下日志。。。
脾气好的测试,会老老实实配合再点一次,但是,这不浪费时间么?
脾气不好的测试,点你妹啊,你自己不会看啊?发泄完后,问题不解决,测试没法进行啊,依然乖乖的配合点一下了。
(如果你说没你们公司测试看日志权限,那我也不知道该说啥了)
举例
真实项目,调用链很长,日志也很多,这里只简单模拟介绍代码问题的日志。
下面代码,main调A中方法、A调B中方法、B调C中方法,C中方法会往外抛异常,B捕获到异常后,对异常进行了转换,然后继续往外抛
package com.qzcsbj; /** * @create : 2020/12/13 22:54 * @description : <描述> * @作者微信: ren168632201 */ public class TestException { public static void main(String[] args) throws ByZeroArithmeticException { System.out.println("Here is TestException.main"); TestA a = new TestA(); a.a(); } } class TestA { public void a() throws ByZeroArithmeticException { System.out.println("Here is TestA.a"); TestB b = new TestB(); b.b(); } } class TestB { public void b() throws ByZeroArithmeticException { System.out.println("Here is TestB.b"); TestC c = new TestC(); try { c.c(); } catch (ArithmeticException e) { // 转换为自定义的异常;也是为了不把原始异常信息抛到外面 throw new ByZeroArithmeticException("除数不能为0哦", e); } } } class TestC { public void c() throws ArithmeticException { System.out.println("Here is TestC.c"); System.out.println(5/0); } } // 自定义异常类 class ByZeroArithmeticException extends Exception { public ByZeroArithmeticException() { } public ByZeroArithmeticException(String message) { super(message); } public ByZeroArithmeticException(String message, Throwable cause) { super(message, cause); } public ByZeroArithmeticException(Throwable cause) { super(cause); } public ByZeroArithmeticException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); } }
结果
这种情况,从Caused by开始找到第一行本公司包名的代码。所以,问题就是在上图箭头指向的代码行。
有人说,我们的日志里面没有Caused by,比如下面这种情况
package com.qzcsbj; /** * @create : 2020/12/13 22:59 * @description : <描述> * @作者微信: ren168632201 */ public class TestException { public static void main(String[] args) throws ArithmeticException { System.out.println("Here is TestException.main"); TestA a = new TestA(); a.a(); } } class TestA { public void a() throws ArithmeticException { System.out.println("Here is TestA.a"); TestB b = new TestB(); b.b(); } } class TestB { public void b() throws ArithmeticException { System.out.println("Here is TestB.b"); TestC c = new TestC(); c.c(); } } class TestC { public void c() throws ArithmeticException { System.out.println("Here is TestC.c"); System.out.println(5/0); } }
结果
这种情况,没有Caused by就从头开始找到第一行本公司包名的代码。所以,问题就是在上图箭头指向的代码行。
最后,你就可以有目的的截图作为bug的附件了,这样也提高了bug质量,如果开发再说让你帮忙点一下,你就直接说:请认真看日志截图!!!如果你有代码能力,也可以进一步截图有问题的代码。
-
测试人员如何在linux服务器中查询mysql日志
2021-12-15 10:04:10Mysql日志,是用来记录数据库所有增删改查操作的,测试人员可以利用该工具查看软件某功能执行的sql语句,看到sql语句操作的哪个数据仓库,哪个表,方便测试人员快速定位bug。 但Mysql日志,一般都是都是关闭的,因为... -
为什么要进行日志测试和如何进行日志测试?
2021-07-26 02:04:24关键点1.在分布式的、可扩展的系统(通常包含不稳定的基础设施)中排除故障的效率通常取决于是否有充分的日志记录和搜索设备。2.唯一事件ID、事务追踪技术和结构化的...4.我们需要测试核心操作需求,如日志记录。5.我... -
xshell 6查看测试日志
2022-03-30 16:14:21xshell 6查看测试日志 -
生成“伪视频”来丰富自动测试的日志系统
2021-02-04 06:31:30借助这一工具,测试人员可以轻松地录制或编写脚本来进行自动化测试,测试效率得到显著提高,因而受到广大功能测试人员的青睐。由于自动测试的运行无需人工干预,日志系统作为记录运行过程的载体,对于测试成功与否的... -
测试人员掌握基本Linux命令——查看日志(实时日志)
2018-12-11 16:11:40很多初级测试人员,在进行执行测试用例这个步骤时,发现bug,不能更加的准确去定位bug,在这样的情况下就可以打开Linux服务器,敲命令查看操作进行中的实时日志,当系统报错时,可以截图日志在缺陷管理系统中,... -
测试人员必备-用adb抓取APP日志的方法
2022-02-28 21:32:04一种是按照日志级别过滤,一种是按照日志中的tag过滤,当然会有混合日志和tag在一起过滤 过滤格式: adb logcat [:priority] tag表示标签,priority输出的级别,注意如果要是要根据级别查看时记得要tag一定要给,如果... -
3分钟通过日志定位bug,这个技能测试人必须会
2021-11-17 19:25:10最近有很多小伙伴跟我说拿着日志找bug很实用,今天跟大家分享一下这个小诀窍 前 言 软件开发中通过日志记录程序的运行情况是一个开发的好习惯,对于错误排查和系统运维都有很大帮助。 Python 标准库自带了强大的 ... -
如何实时查看显示日志?
2018-03-19 03:18:29测试环境中,在linux部署的环境下,如何实时查看显示日志?如何将对 10.17.14.202 IP机的抓包数据存档在/tmp/a.log 文档中,请问抓包并保存的命令怎么写 -
APP测试中常用的ADB命令和日志获取及分析
2022-01-16 21:32:47关于logcat日志文件: Android日志系统提供了记录和查看系统调试信息的功能,日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过logcat命令来查看和使用;但缓冲区大小有限,在通常情况下,写满时... -
Linux服务器查看日志方法小结
2021-11-01 15:12:32作为软件测试人员,会经常会到服务器上查看日志,然后给大家分享几个简单查看日志命名。仅供参考,有更好的可以留言分享。 1、进入日志文件所在的文件目录,比如: cd /testkuaibao/logs 2、通过命令打开日志,分析... -
作为软件测试人员,需要掌握的一些Linux命令
2021-05-12 07:53:071.日志查看实时查看tomcat日志文件查看:cd /home/tomcat/logs #也可用相对目录``tail –f catalina.out #实时打印日志文件``ctrl+c #退出查看12345cd/home/tomcat/logs#也可用相对目录``tail–fcatalina.out#实时... -
软件测试人员正确分析定位BUG小技巧
2022-04-06 21:58:36软件测试人员测试过程中如何分析定位常见BUG 一、前置知识 1. 熟透系统业务、团队成员情况 2.熟悉使用F12或抓包工具 3.了解HTTP/HTTPS协议,能够区分请求URL、请求头、请求体、入参、响应数据、响应码 4. 具备... -
安卓APP测试之日志抓取
2021-10-25 11:07:00这时候告诉开发开发也不能重现这个崩溃,所以说测试人员如果能够在测试的时候实时监控APP的日志,那么一发生奔溃就可以提供安卓APP崩溃日志给开发来定位问题的原因。。因为之前也遇见过这样的问题,所以去网上找了很... -
Linux服务器log日志查看,快速定位bug
2022-02-09 14:39:31文章目录一、动态查看日志二、打开日志文件 一、动态查看日志 tail -f mylog.out tail -n 4 mylog.out 查询日志尾部最后4行的日志 head -n 4 catalina.out 查询日志文件中的前4行日志 [root@iZwz98qdx9tvkj6qz2yq90Z... -
adb 查看指定APP日志
2019-10-08 19:02:02前面大概学习了adb基础,但是adb的存在,在测试人员中究竟有什么必要,以及看log时,那么多的log,让我们看个屁啊,所以这一次,我决定一定要把adb这件事情搞清楚。 1.先来看最感兴趣的adb日志 首先来了解一共概念... -
测试er如何通过MacOS连接IOS系统iPhone查看系统崩溃日志?
2020-05-16 22:32:16很少公司会提供mac os让测试人员查看ios系统的崩溃日志,无条件的测试人员只能通过录屏去记录在APP测试中出现的问题。 在一些机构培训的过程也基本只教Android如何查看系统日志(安装配置adb,使用adb命令查看崩溃... -
如何查看运行日志
2020-12-23 14:15:56其实不然,有些场景下我们还是需要实时查看App运行时的日志的,比如测试人员拿着测试机发现问题了过来找你,这时候要看运行时日志,又不能重新DEBUG安装版本,怎么办?再比如,收到并点击推送的通知后启动App,这... -
测试人员定位bug的方法
2020-12-09 15:13:33前言: 作为测试人员,和我们最常打交道的,莫属bug。当你发现bug后,会采取什么样的行动?是直接报出来,亦或找找问题原因?不管是我们自己找到的,亦或是开发修复后告诉我们的,知道问题之所在总是好的。在本篇... -
Java基础学习总结(146)——开发人员日志实践规范
2019-06-17 15:58:43一、日志规范 日志作用: 1、日常排查问题(基本作用),快速定位问题的根源 2、分析日志,构建常见问题排查平台 3、报表输出(日活、周活) 4、追踪程序执行的过程,追踪数据的变化: a)在系统启动或初始化时... -
为什么要进行日志测试和如何进行日志测试
2018-05-02 16:11:45关键点1.在分布式的、可扩展的系统(通常包含不稳定的基础设施)中排除故障的效率通常取决于是否有充分的日志记录和搜索设备。2.唯一事件ID、事务追踪技术和结构化...4.我们需要测试核心操作需求,如日志记录。5.我... -
linux tail 查看日志(匹配时间段、关键字)
2019-10-31 10:45:16对于IT人员来说查日志是算是日常工作了,不管是开发还是测试都会涉及到查看日志,定位问题缺陷的所在。所以这里作者收集了一部分查看日志的命令以及解释: 常用命令: tail -f xxx.log ----实时刷新最新日志 tail...