ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

新手测试工程师的Linux:从连服务器到定位Bug,这么多就够了

新手测试工程师的Linux:从连服务器到定位Bug,这么多就够了 相信很多新手跟我一样会问测试又不是运维为什么要学Linux我学完之后发现不会Linux连Bug都查不了。一、测试人员为什么要学Linux刚开始学的时候我也疑惑测试不是点点点吗跟Linux有什么关系学完才明白测试用Linux主要干两件事用途说明查日志定位Bug大部分服务端部署在Linux服务器上报错了要去服务器看日志搭建测试环境有些测试环境需要自己在Linux上部署服务说白了开发跟你说“服务器报错了你去看看”你不能说“我不会连服务器”吧二、实操用Linux查日志定位Bug下面是我模拟的一个场景完整走了一遍“从连服务器到抓Bug”的流程。场景设定开发说测试服务器的应用报错了让我去看看。第1步连上服务器用FinalShell等工具连上服务器需要四个信息信息说明IP地址服务器在哪端口号通常SSH是22账号登录用户名密码登录密码第2步确认当前位置连上之后先输入pwd作用查看当前在哪个目录。第3步进入日志目录cd /var/log作用切换到日志存放的目录。Linux的日志通常放在/var/log下。第4步查看有哪些日志文件ls作用列出当前目录下所有文件。第5步实时查看日志tail -f app.log作用实时滚动查看日志的最新内容。-f是 follow 的意思会一直刷新。为什么不用cat生产环境的日志文件可能几十个G直接cat会把整个文件读出来终端直接卡死。tail -f只显示最新内容安全又高效。⚠️我踩过的坑第一次用tail -f的时候日志刷得飞快我根本看不清哪一行是报错。而且我盯着看了好久发现日志在刷但报错只有最开始那几行刷过去的全是重复的INFO信息。后来我学乖了两种做法先停掉实时刷新Ctrl C退出再用grep一次性抓用管道过滤tail -f app.log | grep ERROR只显示ERROR级别的日志第6步退出实时查看看到满屏都是没用的信息按Ctrl C退出。第7步精准抓取报错信息grep Exception app.log作用从日志文件里专门把包含“Exception”的行抓出来。也可以搜其他关键词grep ERROR app.log grep NullPointerException app.log拿到报错之后怎么判断问题在哪grep抓出来的报错直接给开发或者自己也可以会先做三步判断第1步看异常类型异常关键词可能的原因NullPointerException代码里某个对象是空的TimeoutException请求超时可能是网络或服务响应慢SQLException数据库操作出问题了第2步看报错时间和频率是刚发生的还是一直在报用grep ERROR app.log | wc -l统计报错条数第3步看报错上下文grep -A 5 -B 5 Exception app.log-A 5显示报错行后面5行-B 5显示报错行前面5行很多时候真正的错误原因藏在报错行的上一行或下一行只看报错那一行反而看不出问题。三、其他高频命令除了查日志还有几个命令测试也必须掌握3.1 查看系统进程ps -ef | grep java作用查看所有进程然后筛选出跟 java 相关的。测试场景怀疑服务没起来可以用这个命令确认进程在不在。3.2 查看端口占用netstat -anptu | grep 8080作用查看端口占用情况。测试场景接口请求不通可能是端口没开用这个命令确认一下。3.3 强制杀死进程优先 kill 进程号kill 无效再用 kill -9kill -9 12345作用强制结束进程号为 12345 的进程。测试场景服务卡死了进程关不掉用-9强制杀掉。3.4 查看服务器IPifconfig或者ip addr作用查看服务器的IP地址。四、Linux高频命令速查卡命令作用测试场景pwd查看当前目录连上服务器先确认位置ls列出目录内容看有哪些日志文件cd /var/log切换目录进入日志目录tail -f app.log实时查看日志监控最新报错grep ERROR app.log搜索关键词精准抓取报错信息ps -ef | grep java查看进程确认服务是否在运行netstat -anptu | grep 8080查看端口占用排查接口不通kill -9 进程号强制杀进程服务卡死时使用ifconfig查看IP地址确认服务器地址口诀进目录、看日志、搜关键词、查进程、看端口、杀进程
返回列表