【MapSheep】
[好记性不如烂笔头]


下面给你一份Java后端(Web/微服务)全链路测试实战指南,覆盖渗透测试、安全测试、性能压测、功能/接口测试,全部是后端开发/测试常用、可直接落地的做法、工具、步骤,一次性讲全。

Java后端全测试(渗透+安全+压测+接口)完整方案

一、接口/功能测试(基础必做)

目标:验证接口逻辑、参数校验、返回值、异常处理是否正确

常用工具

  • Postman / Apifox(最常用)
  • JMeter(可做接口+压测)
  • Swagger / Knife4j(Java后端接口文档)
  • RestAssured(Java代码接口自动化)

怎么做

  1. 梳理接口清单(GET/POST/PUT/DELETE)
  2. 构造正常/异常用例:空参、超长参数、非法字符、越权ID、SQL注入字符
  3. 校验:状态码、响应体、数据库数据是否一致
  4. 自动化:用RestAssured写Java脚本批量跑

二、性能压测(高并发、负载、稳定性)

目标:测QPS、响应时间、CPU/内存/GC、数据库瓶颈、服务崩溃点

常用工具

  • JMeter(最通用)
  • Gatling(高并发、基于Scala、性能更好)
  • Arthas(Java在线诊断,必用)
  • Prometheus + Grafana(监控)

压测怎么做(标准流程)

  1. 确定压测指标:QPS、RT、错误率、CPU<80%、GC频率
  2. 编写压测脚本(登录→业务接口→退出)
  3. 梯度加压:50→100→200→500线程
  4. 监控指标:
    • Java:堆内存、FullGC、线程数、死锁
    • 服务器:CPU、负载、IO
    • DB:连接数、慢SQL、锁等待
  5. 常见问题:
    • 接口慢:查慢SQL、未加索引、循环查库
    • FullGC频繁:内存泄漏、大对象
    • 线程池耗尽:tomcat/ Dubbo线程池设置过小

三、Java安全测试(代码安全+漏洞扫描)

目标:找代码漏洞、配置漏洞、依赖漏洞

常用工具

  • SonarQube(代码质量+漏洞扫描)
  • OWASP Dependency-Check(第三方包漏洞)
  • IDEA插件:SonarLint、FindSecBugs

Java常见安全漏洞(必须测)

  1. SQL注入(MyBatis $ 拼接、未预编译)
  2. XSS(前端未转义、后端未过滤)
  3. 越权(未校验用户ID、接口直接传ID)
  4. 文件上传漏洞(未校验后缀、路径穿越)
  5. JWT伪造/未过期/密钥泄露
  6. 敏感信息泄露(日志打印密码、返回手机号明文)
  7. Redis未授权、Mongo弱口令
  8. 反序列化漏洞(Fastjson、Jackson)

四、Java渗透测试(Web/微服务渗透,实战流程)

目标:模拟黑客攻击,找可利用漏洞

渗透工具

  • Burp Suite(核心抓包改包)
  • Nmap(端口扫描)
  • Fiddler(简单抓包)
  • AWVS(漏洞扫描)

Java渗透测试步骤(实战版)

  1. 信息收集
    • 扫端口:8080、21、3306、6379、9200
    • 识别框架:SpringBoot、Tomcat、Dubbo、Shiro
  2. 抓包分析(Burp)
    • 找未授权接口、越权接口
    • 找参数可控点(ID、文件名、SQL参数)
  3. 漏洞验证
    • SQL注入:' or 1=1 --
    • 文件上传:上传jsp木马(测试环境)
    • 反序列化:Shiro、Fastjson漏洞利用
    • 越权:把用户ID改成别人ID
  4. 权限提升
    • 弱口令爆破(Tomcat、MySQL、Redis)
    • 未授权访问Redis写计划任务
  5. 报告输出:漏洞等级、复现步骤、修复方案

五、专项测试(Java后端必备)

1. 稳定性测试(7×24小时跑)

工具:JMeter + Grafana
测:内存泄漏、线程泄漏、句柄泄漏、FullGC

2. 异常测试(故障注入)

工具:ChaosBlade(阿里混沌工程)
模拟:

  • 数据库宕机
  • 网络延迟、丢包
  • CPU满载
  • 磁盘满
  • 调用第三方超时

3. 安全合规测试

  • 密码复杂度、加盐存储
  • 接口限流、防刷
  • 敏感数据脱敏
  • 日志不打印敏感信息

六、Java后端测试常用命令(直接复制用)

# Arthas 排查Java问题
java -jar arthas-boot.jar
dashboard  # 看CPU/内存/线程
thread     # 看死锁、耗CPU线程
watch      # 监控方法入参出参
# JMeter压测命令(无界面)
jmeter -n -t test.jmx -l result.jtl -e -o report
# 依赖漏洞扫描
dependency-check --scan ./target/*.jar

七、完整测试流程(企业标准)

  1. 单元测试(JUnit/Mockito)
  2. 接口测试(Postman/RestAssured)
  3. 代码安全扫描(Sonar)
  4. 依赖漏洞扫描(Dependency-Check)
  5. 性能压测(JMeter/Gatling)
  6. 渗透测试(Burp)
  7. 混沌测试(ChaosBlade)
  8. 上线前回归

posted on 2026-04-01 16:50  (Play)  阅读(2)  评论(0)    收藏  举报