linux部署项目后怎么测试
linux部署项目后怎么测试详细介绍
在 Linux 服务器上部署项目后,需要通过一系列测试确保项目正常运行。以下是分步骤的测试方法,涵盖基础检查、功能验证、性能监控等关键环节:
一、基础环境与服务启动测试
- 服务运行状态检查
- 确认进程是否正常启动:bash
项目关键词systemctl status 服务名
- 检查端口监听(如 Web 服务、API 端口):bash
端口号ss 端口
- 确认进程是否正常启动:bash
- 本地与远程连通性测试
- 本地访问测试(确认服务在服务器内可用):bash
http://127.0.0.1:端口号telnet .0.1 端口号
- 远程访问测试(从外部主机验证):bash
http://服务器IP:端口号
- 本地访问测试(确认服务在服务器内可用):bash
二、功能与业务逻辑测试
- 手动功能验证
- Web/API 服务:
使用curl、wget或 Postman 发送请求,验证返回数据和状态码(200/404/500 等):bashGET - 文件 / 配置检查:
确认项目读取的配置文件(如config.yaml、application.properties)路径正确,权限无误:bash配置文件路径
- Web/API 服务:
- 自动化测试脚本
- 运行项目自带的单元测试、集成测试(如 Java 的 JUnit、Python 的 pytest):bash
项目目录pytest tests/
mvn
- 针对 Web UI 的端到端测试(如 Selenium、Cypress):bash
npx cypress run
- 运行项目自带的单元测试、集成测试(如 Java 的 JUnit、Python 的 pytest):bash
三、性能与压力测试
- 基础性能指标
- 测试接口响应时间和并发能力:
- Apache Benchmark(ab):bash
ab http://服务器IP/目标路径 - wrk(更轻量):bash
wrk http://服务器IP/目标路径
- Apache Benchmark(ab):bash
- 监控资源消耗(CPU、内存、磁盘 I/O):bash
进程PIDiostat
- 测试接口响应时间和并发能力:
- 分布式压力测试(可选)
- 使用 JMeter、Gatling 等工具模拟多用户并发,支持复杂场景(如登录 - 操作 - 退出流程)。
四、日志与错误排查
- 查看应用日志
- 定位日志文件(通常在
/var/log/项目名/或项目目录logs/下):bash日志文件路径日志文件
- 结构化日志(如 JSON 格式)可通过工具分析(如
jq):bashapp.log jq
- 定位日志文件(通常在
- 系统日志与服务日志
- 查看系统级错误(如内核、服务启动失败):bash
journalctlerror
- 查看系统级错误(如内核、服务启动失败):bash
五、环境与依赖验证
- 依赖组件检查
- 确认数据库、缓存(如 MySQL、Redis)连接正常:bash
mysql 服务器IP 用户名redis-cli 服务器IP
- 检查环境变量(如
JAVA_HOME、PATH)是否正确加载:bash$环境变量名
- 确认数据库、缓存(如 MySQL、Redis)连接正常:bash
- 权限与文件完整性
- 确保项目目录和文件权限合理(避免使用 root 运行服务):bash
用户名:用户组 项目目录项目目录 f
- 验证文件是否完整(防篡改或部署遗漏):bash
md5sum 目标文件
- 确保项目目录和文件权限合理(避免使用 root 运行服务):bash
六、安全与防火墙测试
- 端口访问控制
- 检查防火墙规则(确保仅开放必要端口):bash
ufw statusfirewall-cmd --list-ports
- 禁止公网访问敏感端口(如数据库端口 3306、Redis 端口 6379),仅允许内部 IP 访问。
- 检查防火墙规则(确保仅开放必要端口):bash
- 漏洞扫描(可选)
- 使用工具扫描常见漏洞(如 OWASP ZAP、Nessus),或检查代码中的安全风险(如 SQL 注入、XSS)。
七、高可用性与异常处理
- 故障恢复测试
- 模拟服务崩溃,验证自动重启机制(如 systemd 的
Restart=always配置):bash进程PIDsystemctl status 服务名
- 网络中断测试:断开服务器网络,验证重连逻辑是否正常。
- 模拟服务崩溃,验证自动重启机制(如 systemd 的
- 健康检查接口
- 添加健康检查 API(如
/health),返回服务状态(正常 / 异常),供监控系统调用:bashhttp://服务器IP/health
- 添加健康检查 API(如
八、监控与持续验证
- 实时监控配置
- 使用 Prometheus+Grafana 监控项目指标(如请求量、响应时间、错误率)。
- 部署日志收集系统(ELK Stack、Fluentd),集中管理日志。
- 定时任务验证
- 若项目包含定时任务(如 Cron Job),检查是否按预期执行:bash
/var/log/cron.log
- 若项目包含定时任务(如 Cron Job),检查是否按预期执行:bash
总结步骤
- 启动检查:确认服务运行、端口监听。
- 功能验证:手动 / 自动化测试业务逻辑。
- 性能压测:评估负载能力和资源消耗。
- 日志排查:定位错误日志,修复异常。
- 环境检查:依赖、权限、配置无误。
- 安全扫描:防火墙、端口、漏洞修复。
- 故障模拟:验证容错和恢复机制。
- 监控部署:持续跟踪运行状态。
通过以上步骤,可全面验证项目在 Linux 环境中的稳定性、功能性和可靠性。根据项目类型(Web、API、微服务等),可针对性调整测试工具和重点(如微服务需额外测试服务间调用、熔断机制等)。