当前位置: 首页 > news >正文

测试类型术语,使用指标,计算方式,使用场景总结

系统测试(System Testing)包括负载测试、性能测试、压力测试、安全性测试等子类型。

  • 定义:在完整集成的系统上验证功能和非功能需求是否满足要求,属于黑盒测试。
  • 测试指标:功能正确性、系统稳定性、负载能力(如并发用户数)、性能(响应时间、吞吐量)、安全性、兼容性等。
  • 过程:在集成测试之后、验收测试之前进行。
  • 框架/工具:Selenium(功能测试)、JMeter(性能/负载测试)、Postman(API测试)等。

验收测试(Acceptance Testing)分为用户验收测试(UAT)、Alpha测试、Beta测试等

  • 定义:由客户或用户验证系统是否满足业务需求,
  • 测试指标:业务需求覆盖率、用户体验(界面友好度)、端到端流程正确性。
  • 过程:在系统测试完成后
  • 框架/工具:手动测试为主,工具如TestRail(用例管理)、Jira(缺陷跟踪)。
  1. 用户验收测试(UAT)
  • 定义:用户验证系统是否符合实际业务场景的最终测试。
  • 测试指标:业务流程正确性、用户操作流畅性、数据准确性。
  • 过程:
    • 在系统测试后执行,通常分为Alpha和Beta测试。
    • Alpha测试在受控环境(开发环境)进行,Beta测试在用户真实环境进行。

Alpha测试与Beta测试

  • Alpha测试:由开发者或QA团队在开发环境中执行,检查界面错误、基本功能等。
  • Beta测试:由真实用户在真实环境中执行,收集反馈以改进产品。

负载测试(Load Testing)模拟正常至峰值负载。

  • 定义:评估系统在预期负载(并发用户数或事务量)下的表现,
  • 测试指标:响应时间、吞吐量、资源利用率(CPU、内存)。
  • 工具:JMeter、LoadRunner。

性能测试(Performance Testing)

  • 定义:评估系统在特定条件下的响应速度和稳定性。
  • 测试指标:响应时间、错误率、资源使用效率。
  • 与负载测试的区别:性能测试关注系统能力上限,负载测试关注特定负载下的表现。

压力测试(Stress Testing)

  • 定义:测试系统在超出极限负载下的稳健性,如高并发或资源耗尽。
  • 测试指标:系统崩溃阈值、恢复能力(如MTTR)。
  • 与负载测试的区别:模拟极端条件,而非正常场景。

自动化测试:

  • 适用场景:回归测试、重复性任务、性能/负载测试。
  • 框架/工具:Selenium(Web)、Appium(移动端)、TestNG(框架)。

1. 负载测试和压力测试使用的指标不同吗?

负载测试(Load Testing)和压力测试(Stress Testing)确实有不同的关注点,但它们的很多指标是重叠的,例如:

  • 吞吐量(Throughput)
  • 响应时间(Response Time)
  • 错误率(Error Rate)
  • CPU、内存、磁盘、网络带宽等资源利用率(Resource Utilization)

然而,在 具体应用上,它们对指标的关注点不同

测试类型关注的核心指标是否关注吞吐量和响应时间?示例
负载测试吞吐量、响应时间、错误率、资源利用率✅ 是目标:在1000个并发用户下,平均响应时间 < 2秒,吞吐量 ≥ 500 TPS(Transactions Per Second)。
压力测试系统崩溃点、错误率、恢复能力(MTTR)⚠️ 部分关注,但更关注极限负载目标:找到服务器的极限负载,例如 2000个用户时系统崩溃。或者模拟 CPU 100% 占用,观察恢复时间

示例:不同测试对指标的关注

负载测试

场景:网站在 1000 并发用户 访问时,测量以下指标:

  • 吞吐量:每秒多少个请求成功?(如 500 TPS
  • 平均响应时间:服务器返回数据的时间是否可接受?(如 2 秒内
  • 错误率:是否有大量失败请求?(应小于 1%
压力测试

场景:找到服务器的极限:

  • 并发用户增加到 2000 时,响应时间暴增,吞吐量下降到 100 TPS,服务器崩溃。
  • 服务器崩溃后,恢复时间(MTTR) 是多少?是否会出现 资源泄漏,无法自动恢复?

结论

  • 负载测试 主要衡量系统在特定负载下的性能,如吞吐量、响应时间、错误率。
  • 压力测试 关注系统的极限,如崩溃阈值、恢复能力,虽然吞吐量和响应时间仍然重要,但它们更多是辅助手段,帮助分析崩溃点和瓶颈。

2. 这些测试使用的指标及其英文名、计算方法

以下是一些常见的指标、它们的计算方式及含义:

指标名称英文名称计算方法
吞吐量Throughput (TPS/RPS)成功请求数 / 单位时间(如每秒 500 个事务)
响应时间Response Time (RT)请求完成时间 - 请求开始时间(单位:毫秒 ms)
错误率Error Rate(失败请求数 / 总请求数) * 100%
CPU 使用率CPU UtilizationCPU 使用时间 / 总 CPU 时间 * 100%
内存使用率Memory Utilization已用内存 / 总内存 * 100%
磁盘 I/ODisk I/O读/写操作次数 或 读/写速率
网络带宽Network Bandwidth传输数据量 / 单位时间
最大负载Maximum Load系统可承受的最大并发用户数
崩溃阈值Breaking Point达到最大负载时,系统性能急剧下降的点
平均故障修复时间Mean Time to Repair (MTTR)总修复时间 / 失败次数
平均故障间隔时间Mean Time Between Failures (MTBF)系统正常运行时间 / 失败次数

示例计算

示例 1(吞吐量):

  • 1分钟内处理了 6000 个请求
  • 吞吐量 = 6000 / 60 = 100 TPS

示例 2(错误率):

  • 总请求数 10000,失败请求数 50
  • 错误率 = (50 / 10000) * 100% = 0.5%

示例 3(MTTR):

  • 服务器崩溃了 5 次,每次修复时间分别是 10、8、12、9、11 分钟
  • MTTR = (10 + 8 + 12 + 9 + 11) / 5 = 10 分钟

3. 性能测试和负载测试、压力测试的关系?它们的工具、指标、参数是否相同?

是的,性能测试、负载测试和压力测试在工具、指标和参数上有很大的重叠,但关注点不同。

三者的关系
  • 性能测试(Performance Testing) 是一个更广泛的概念,包含了 负载测试、压力测试、稳定性测试等
  • 负载测试压力测试性能测试的子集,专门关注不同的系统表现。
测试类型关注点常用工具关键指标
性能测试评估系统整体性能JMeter、LoadRunner、Gatling响应时间、吞吐量、错误率
负载测试评估系统在正常负载下的表现JMeter、LoadRunner吞吐量、CPU、内存
压力测试评估系统在极限负载下的稳定性JMeter、Chaos Monkey崩溃阈值、MTTR、系统恢复能力
工具是否相同?

是的,它们通常使用相同的工具,例如 JMeter、LoadRunner、Gatling。

  • JMeter:用于 Web 应用、API、数据库测试,适用于所有性能测试类型。
  • LoadRunner:企业级工具,支持更多协议,如 SAP、Oracle 等。
  • Gatling:基于 Scala,适用于开发人员自动化性能测试。

大部分测试指标相同,如:吞吐量,响应时间,错误率。资源利用率,但不同的测试关注的 参数设置 可能不同:

  • 负载测试并发用户数100 ~ 1000(模拟正常负载)Ramp-up 时间10~60秒(平稳增加流量),持续时间:如 30分钟 观察稳定性
  • 压力测试并发用户数:从 100 开始,逐步增长到 系统崩溃CPU/内存限制:手动降低系统资源,测试抗压能力,故障恢复时间(MTTR):测试系统自我修复能力

4. 总结

  1. 负载测试和压力测试使用的指标有部分相同,但关注点不同
    • 负载测试:关注 系统在设定负载下的表现
    • 压力测试:关注 系统崩溃点和恢复能力
  2. 三者的关系
    • 性能测试 是一个大概念,包含 负载测试、压力测试
    • 所有测试通常使用相同的工具(JMeter、LoadRunner)。
    • 测试指标相同,但参数设置不同(负载测试关注稳定,压力测试关注极限)。

1. 服务器崩溃的定义是什么?是不是彻底瘫痪?

服务器崩溃 并不一定意味着服务器彻底瘫痪,而是指 服务器无法正常处理请求,导致服务质量严重下降,甚至完全无法响应。常见的服务器崩溃现象包括:

(1) 服务器性能下降,但仍在运行
  • 吞吐量下降(如从 1000 TPS 降到 100 TPS)
  • 响应时间剧增(如从 500ms 上升到 30s)
  • 错误率大幅上升(如 5% → 50%)
  • 部分请求超时或失败(HTTP 500、502、503)
(2) 服务器完全停止响应
  • 所有请求返回 HTTP 500 / 502 / 503 / 504
  • 吞吐量下降到 0(即所有请求都失败)
  • CPU 或内存使用率达到 100%,系统无法处理新请求
  • 日志中出现大量超时错误(如数据库连接失败、线程池耗尽)

所以,服务器崩溃不一定是硬件损坏,而是系统进入严重异常状态,影响正常运行


2. 服务器的恢复时间(MTTR)指的是什么?

MTTR(Mean Time to Repair,平均修复时间) 用于衡量 服务器从崩溃状态恢复到正常工作的时间,通常是指:

  • 服务器恢复到吞吐量接近正常水平
  • 错误率恢复到正常范围
  • 响应时间恢复到可接受范围
恢复过程示例

假设:

  • 正常吞吐量:1000 TPS
  • 崩溃时吞吐量:100 TPS
  • 系统完全恢复时间:5 分钟

那么,MTTR = 5 分钟,即系统在 5 分钟内恢复到 1000 TPS。

如何衡量恢复?

可以通过 吞吐量 vs 时间曲线 观察:

时间(分钟) | 吞吐量(TPS)
---------------------------
0            | 1000
2            | 800
4            | 300
5            | 100
6            | 500
8            | 1000  (完全恢复)
  • MTTR = 8 - 5 = 3 分钟(服务器从最低点恢复到正常)

3. 错误率是否受并发影响?

是的,并发用户数增加通常会导致错误率上升,但不同系统的表现不同。影响错误率的因素主要包括:

  1. 服务器资源耗尽

    • 线程池、数据库连接池耗尽 → 502 / 503 错误
    • CPU 100% → 无法处理新请求
    • 内存溢出(Out of Memory) → 服务器进程崩溃
  2. 超时问题

    • 由于高负载,响应时间增加,部分请求超时
    • 服务器可能主动拒绝连接(如 Nginx 限制最大连接数)
  3. 数据库崩溃

    • 并发查询太多,数据库锁冲突或死锁
    • 数据库连接池耗尽,导致应用无法查询数据
错误率的变化
  • 低负载(<500 并发):错误率 ≈ 0%
  • 高负载(1000 并发):错误率 ≈ 1%(部分超时)
  • 接近崩溃(2000 并发):错误率 ≈ 10%(数据库连接池满了)
  • 完全崩溃(>3000 并发):错误率 ≈ 100%(所有请求都失败)

相关文章:

  • Apache Struts RCE (CVE-2024-53677)
  • android ViewPager 管理 Fragment的预加载onCreate
  • FunASR:语音识别集成工具箱
  • [数据结构]顺序表详解
  • 使用LlamaIndex查询 MongoDB 数据库,并获取 OSS (对象存储服务) 上的 PDF 文件,最终用Langchain搭建应用
  • C语言之typedef
  • voltage/temperature derate指什么?
  • NCRE全国计算机等级考试二级Java-50道选择题【带解析】
  • RepVGGBlock实现
  • 解决MySQL错误:You can‘t specify target table ‘xxx‘ for update in FROM clause
  • SpringBoot速成(16)项目部署P30
  • 【YOLOv8】损失函数
  • 11.编写前端内容|vscode链接Linux|html|css|js(C++)
  • Spring中事务的传播行为方式
  • DeepSeek掀起推理服务器新风暴,AI应用迎来变革转折点?
  • FreeSwitch的mod_translate模块详细,附带场景案例及代码示例
  • EasyExcel实现excel导入(模版上传)
  • 【pytest】编写自动化测试用例命名规范README
  • 考研操作系统------锁(仅仅作为王道哔站课程讲义作用)
  • 第二章:16.6 回归树
  • 泽连斯基已离开土耳其安卡拉
  • 商务部:中方敦促美方尽快停止232关税措施
  • 回望星河深处,唤醒文物记忆——读《发现武王墩》
  • 经常口干口渴的人,要当心这些病
  • 美国务院批准向土耳其出售导弹及相关部件,价值3.04亿美元
  • 秘鲁总统任命前司法部长阿拉纳为新总理