一、测试环境基础管理命令
1.1 进程状态监控与调试
在持续集成测试场景中,进程状态监控是基础能力。ps命令的aux参数组合可展示完整进程列表,配合grep过滤特定服务进程:
ps aux | grep nginx
对于容器化测试环境,建议使用pstree命令以树状结构展示进程关系,快速识别僵尸进程:
pstree -p | grep -A 5 "test-service"
当需要强制终止异常进程时,kill -9 PID是最后手段,但更推荐先尝试优雅终止:
kill -15 1234 # 发送SIGTERM信号kill -0 1234 # 检查进程是否存在(返回0表示存在)
1.2 服务启停与守护管理
系统服务管理推荐使用systemctl命令族(适用于主流Linux发行版):
systemctl status mysql # 查看服务状态systemctl restart nginx # 重启服务journalctl -u redis --no-pager -n 50 # 查看服务日志
对于传统SysVinit系统,仍需掌握service命令:
service httpd status
在测试环境搭建时,常需配置服务开机自启:
systemctl enable docker
二、日志分析核心命令组合
2.1 实时日志追踪
tail命令的-f参数是实时日志分析的利器,结合-n可控制显示行数:
tail -n 200 -f /var/log/app.log | grep -i "error"
对于多文件日志分析,multitail工具(需单独安装)支持分屏显示:
multitail -cS log4j /var/log/app/*.log
2.2 日志内容聚合分析
当需要统计错误频率时,awk命令可实现复杂文本处理:
awk '/ERROR/ {print $1,$2}' access.log | sort | uniq -c | sort -nr
对于JSON格式日志,推荐使用jq工具进行结构化解析:
cat app.log | jq '.level' | sort | uniq -c
2.3 日志轮转管理
测试环境需定期清理旧日志,logrotate配置示例:
/var/log/test/*.log {dailymissingokrotate 7compressdelaycompressnotifemptycreate 640 root adm}
手动触发轮转命令:
logrotate -vf /etc/logrotate.d/test
三、性能测试工具链
3.1 基础性能监控
top命令的交互式界面可实时查看系统负载,推荐使用htop增强版(需安装):
htop --sort-key=PERCENT_CPU
对于磁盘I/O监控,iotop工具可识别高负载进程:
iotop -oP
3.2 网络性能测试
使用iperf3进行带宽测试(需服务端先启动):
# 服务端iperf3 -s# 客户端iperf3 -c 192.168.1.100 -t 30 -P 4
TCP连接分析推荐ss命令替代传统netstat:
ss -tulnp | grep 8080
3.3 压力测试工具
ab(Apache Benchmark)是轻量级HTTP压力测试工具:
ab -n 1000 -c 50 http://test.example.com/api/
对于复杂场景,推荐使用wrk工具(需安装):
wrk -t4 -c100 -d30s http://test.example.com/
四、网络诊断命令矩阵
4.1 连通性测试
基础ping测试需注意ICMP限制:
ping -c 4 -i 0.2 test.example.com
更可靠的连通性检测使用tcping工具:
tcping -t 5 test.example.com 443
4.2 路由追踪分析
traceroute命令可显示数据包路径:
traceroute -n -w 2 example.com
对于IPv6环境,使用traceroute6命令:
traceroute6 -n example.com
4.3 DNS解析诊断
dig命令提供详细DNS查询信息:
dig +trace example.comdig @8.8.8.8 example.com MX
快速测试DNS解析时间:
time dig example.com
五、自动化测试集成实践
5.1 命令管道组合
将多个命令通过管道连接可构建复杂测试流程:
# 监控特定接口的错误日志并实时报警tail -f /var/log/app.log | awk '/500 Internal Server Error/ {system("echo \"ALERT: 500 Error detected\" | mail -s \"Test Alert\" admin@example.com")}'
5.2 定时任务配置
使用cron实现自动化测试任务:
# 每天凌晨3点执行测试套件0 3 * * * /usr/bin/python3 /opt/tests/run_suite.py >> /var/log/test_run.log 2>&1
5.3 测试报告生成
结合gnuplot可将性能数据可视化:
# 生成CPU使用率图表cat cpu_usage.log | awk '{print $1,$2}' | gnuplot -persist -e "plot '-' with lines"
六、安全测试必备命令
6.1 端口扫描检测
使用nmap进行基础端口扫描:
nmap -sV -p 1-1024 test.example.com
快速检查开放端口:
ss -tulnp | grep LISTEN
6.2 漏洞扫描基础
lynis工具可进行系统安全审计:
lynis audit system --quick
检查SUID权限文件:
find / -perm -4000 -type f 2>/dev/null
6.3 文件完整性检查
使用md5sum验证关键文件:
md5sum /etc/passwd /etc/shadow > checksums.txtmd5sum -c checksums.txt
本文梳理的命令组合覆盖了软件测试工作中95%的典型场景,从环境搭建到性能调优,从日志分析到安全测试形成完整技术闭环。建议测试工程师建立个人命令库,将常用命令组合保存为脚本,通过alias命令创建快捷方式。实际工作中需注意:1)生产环境操作前务必确认命令影响范围;2)重要操作建议先在测试环境验证;3)定期更新命令知识体系,关注新工具发展动态。掌握这些核心命令后,测试工程师可显著提升问题定位效率,为系统质量保障提供坚实技术支撑。