软件测试工程师必备:Linux常用命令实战手册

​作为一名软件测试工程师,熟练掌握Linux常用命令是必不可少的技能。​这些命令不仅有助于高效地管理和操作系统,还能在测试过程中快速定位和解决问题。

Linux常用命令是软件测试工程师在测试过程中经常使用的工具,帮助管理文件、控制进程、检查网络和监控系统。这些命令简单易学,能提升测试效率。

在软件测试工作中,Linux命令是定位缺陷、分析日志、监控系统的核心工具。本文从日志分析、文件操作、进程管理、网络调试等维度,整理测试工程师高频使用的Linux命令及实战场景,助力提升测试效率。

一、日志分析篇

1. 实时日志监控

# 查看实时日志(测试环境调试)  
tail -f /var/log/app/error.log  

# 过滤包含"ERROR"关键字的日志(定位错误)  
tail -f app.log | grep "ERROR"  

# 查看最近100行日志中的异常(快速排查)  
tail -n 100 app.log | grep -C 5 "Exception"  # 显示匹配行前后5行  

2. 日志统计与过滤

# 统计错误出现次数(评估问题严重性)  
grep -c "NullPointerException" app.log  

# 按时间范围过滤日志(精确时间排查)  
sed -n '/2024-03-01 14:00:00/,/2024-03-01 15:00:00/p' app.log  

# 多条件过滤(复杂场景分析)  
cat app.log | grep "ERROR" | grep -v "Timeout"  # 包含ERROR但不含Timeout  

二、文件操作篇

1. 文件搜索与处理

# 查找所有扩展名为.log的文件(定位日志文件)  
find /opt/app/logs -name "*.log"  

# 批量重命名测试文件(数据准备)  
rename 's/test_/prod_/' test_*.csv  

# 快速创建大文件(性能测试数据生成)  
dd if=/dev/zero of=test.data bs=1M count=1024  # 生成1GB文件 

 

2. 文件内容操作

# 对比两个测试结果文件(验证接口一致性)  
diff -u result_v1.txt result_v2.txt  

# 提取CSV文件第3列(测试数据清洗)  
awk -F ',' '{print $3}' test_data.csv  

# 替换配置文件参数(环境切换)  
sed -i 's/host=dev/host=test/' config.properties  

三、进程管理篇

1. 进程监控与操作

# 查看Java进程(定位测试服务)  
ps -ef | grep java  

# 强制终止进程(卡死服务处理)  
kill -9 1234  

# 查看进程资源占用(性能问题分析)  
top -p 1234  

​​​​​​​

2. 线程级分析

# 查看Java线程栈(死锁分析)  
jstack 1234 > thread_dump.txt  

# 监控线程数变化(并发测试)  
watch -n 1 "ps -eLf | grep app | wc -l"  

​​​​​​​

四、网络调试篇

1. 网络状态检查

# 查看端口监听状态(服务是否启动)  
netstat -tuln | grep 8080  

# 实时监控TCP连接(压测期间观察)  
watch -n 1 "netstat -ant | awk '{print \$6}' | sort | uniq -c"  

# 路由跟踪(网络问题排查)  
traceroute api.example.com  

​​​​​​​

2. HTTP接口测试

# 快速接口测试(验证服务可用性)  
curl -X POST http://localhost:8080/api/login -d '{"user":"test"}'  

# 下载测试文件(大文件下载验证)  
wget -O test.zip http://download.example.com/largefile.zip  

# 限速下载测试(弱网模拟)  
wget --limit-rate=100k http://example.com/file  

​​​​​​​

五、系统监控篇

1. 资源监控

# 实时监控CPU/内存(性能测试期间)  
htop  

# 磁盘空间检查(日志文件清理预警)  
df -h  

# I/O监控(数据库性能分析)  
iostat -x 2  

​​​​​​​

2. 网络流量监控

# 实时流量监控(压测网络瓶颈定位)  
iftop -i eth0  

# 抓包分析(接口协议调试)  
tcpdump -i eth0 port 8080 -w capture.pcap  

​​​​​​​

六、权限与用户管理

1. 文件权限控制

# 添加执行权限(自动化脚本授权)  
chmod +x test_script.sh  

# 递归修改目录权限(测试环境部署)  
chmod -R 755 /opt/app  

​​​​​​​

2. 用户与组管理

# 创建测试专用用户  
useradd tester -m -s /bin/bash  

# 给用户添加sudo权限(测试环境操作)  
usermod -aG sudo tester  

​​​​​​​

七、环境管理篇

1. 环境变量操作

# 临时设置环境变量(测试配置覆盖)  
export DB_HOST=testdb.example.com  

# 查看所有环境变量(环境问题排查)  
env | grep DB_  

​​​​​​​

2. 容器化测试环境

# 查看Docker容器日志(容器化应用测试)  
docker logs -f app_container  

# 进入容器调试(测试环境诊断)  
docker exec -it app_container /bin/bash  

​​​​​​​

八、实用小工具

1. 文本处理

# 统计行数/词数(测试结果验证)  
wc -l report.csv  

# 随机生成测试数据(Mock数据生成)  
shuf -n 1000 users.csv > sample_data.csv  

​​​​​​​

2. 时间操作

# 计算命令执行时间(性能基准测试)  
time curl -s http://localhost:8080/api/ping  

# 转换时间戳(日志时间解析)  
date -d @1712345678 "+%Y-%m-%d %H:%M:%S"  

​​​​​​​

九、测试场景命令速查表

类别命令描述语法示例
文件管理pwd打印当前工作目录pwdpwd 输出 /home/user/test_directory
ls列出文件和目录ls -lls -l 显示详细列表
cd更改目录cd /path/to/directorycd /path/to/test/project
mkdir创建新目录mkdir new_test_dirmkdir test_data
touch创建新文件touch test_file.txttouch test_case.txt
cp复制文件或目录cp file1 file2cp file1 file2 复制 file1 到 file2
mv移动或重命名文件或目录mv old_name new_namemv old_name new_name
rm删除文件或目录rm file_to_deleterm temp_file
cat显示文件内容cat file.txtcat test_log.txt
less分页查看文件less large_file.txtless test_report.txt
grep在文件中搜索模式grep "pattern" file.txtgrep "error" log.txt
进程管理ps列出运行进程ps -auxps -aux 显示所有进程详情
top实时显示系统进程和资源使用toptop 监控CPU和内存使用
kill按PID终止进程kill 1234kill 1234 终止PID为1234的进程
bg将命令运行在后台bg在Ctrl+Z后使用 bg 运行后台任务
fg将后台进程带到前台fg %1fg %1 带第一个后台任务到前台
jobs列出所有活动任务jobsjobs 查看后台运行的任务
网络命令ping检查主机是否可达ping google.comping google.com 测试网络连接
ssh安全连接远程机器ssh user@remote_hostssh user@server
scp安全复制文件到远程机器scp local_file user@remote_host:/remote/path/scp test_file user@server:/remote/path/
curl传输数据到或从服务器curl -O https://example.com/file.zipcurl -O https://example.com/test_data.zip
netstat显示网络统计netstat -tlnpnetstat -tlnp 列出监听端口和进程
ifconfig配置和显示网络接口ifconfig eth0ifconfig eth0 查看eth0接口详情
dig查询DNS服务器查找域名的IP地址dig google.comdig example.com 获取DNS信息
系统监控uname显示系统信息uname -auname -a 显示详细系统信息
free显示内存使用free -mfree -m 以MB为单位显示内存使用
df显示磁盘空间使用df -hdf -h 以人类可读格式显示磁盘空间
top 或 htop实时监控系统资源toptop 查看CPU和内存使用
lsof列出打开的文件和相关进程`lsofgrep file_name`
vmstat报告虚拟内存统计vmstat 1vmstat 1 每秒报告一次统计
sar系统活动报告器,性能数据sar -u 1 5sar -u 1 5 每秒报告5次CPU使用率
脚本自动化bash默认shell,用于编写脚本#!/bin/bash创建脚本文件,添加shebang
for、while、if控制流语句,用于脚本逻辑for i in {1..5}; do echo $i; donefor i in {1..5}; do echo $i; done 打印1到5
echo、read输入输出处理read -p "Enter name: " name; echo "Hello, $name!"read -p "Enter name: " name; echo "Hello, $name!" 读取输入并打印
chmod更改文件权限chmod +x script.shchmod +x test_script.sh 使脚本可执行
crontab定时任务调度crontab -e 然后添加 0 * * * * /path/to/script.shcrontab -e 编辑,每小时运行脚本
版本控制(Git)git clone从远程克隆仓库git clone https://github.com/user/repogit clone https://github.com/user/test_repo
git pull更新本地仓库git pull origin mastergit pull origin main 更新主分支
git add暂存更改git add .git add . 暂存所有更改
git commit提交更改,带消息git commit -m "Commit message"git commit -m "Update test cases"
git push推送本地更改到远程仓库git push origin mastergit push origin main 推送主分支
git checkout切换分支或提交git checkout feature/new_featuregit checkout feature/test 切换到测试分支
测试特定命令make构建和编译软件makemake 在有Makefile的目录编译项目
test脚本中简单条件检查if test -f file.txt; then echo "File exists."; fiif test -f test_log.txt; then echo "Log exists."; fi 检查文件是否存在
time测量命令执行时间time ./my_test_script.shtime ./run_tests.sh 测量测试脚本运行时间
valgrind内存调试工具valgrind ./my_programvalgrind ./test_app 检查内存泄漏

测试场景

常用命令组合

接口响应慢

curl -o /dev/null -s -w "%{time_total}\n" [URL]

内存泄漏排查

jmap -histo:live <pid> > heap.txt

大文件传输测试

rsync -avz --progress src/ user@host:/dest/

服务启动检查

systemctl status app.service

批量杀死进程

ps -ef | grep app | awk '{print $2}' | xargs kill -9

十、进阶技巧

1. 管道符组合命令

# 分析日志中高频错误(TOP 10错误类型)  
cat app.log | grep "ERROR" | awk '{print $5}' | sort | uniq -c | sort -nr | head -n 10  

​​​​​​​

2. 定时任务(Cron)

# 每天凌晨清理7天前日志  
0 0 * * * find /var/log/app -name "*.log" -mtime +7 -exec rm {} \;  

总结

​​​​​​​以上命令只是Linux系统中众多命令的一部分,但对于软件测试工程师而言,掌握这些基本命令将大大提高工作效率和问题解决能力。​在实际工作中,结合具体需求,灵活运用这些命令,将有助于您更高效地完成测试任务。

Linux常用命令是软件测试工程师的必备技能,涵盖文件管理、进程控制和系统监控。通过掌握这些命令,您可以高效完成测试任务,确保软件质量。这不仅是技术工具,更是提升测试效率的关键。

“掌握Linux命令,测试工程师的效率从此飞跃!”

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值