初识性能测试

性能测试基础

  • 性能测试理论知识
    • 功能测试与性能测试的区别
    • 性能指标
    • 性能测试的分类
    • 性能测试工具
    • 性能测试流程

性能测试理论知识

性能测试是通过工具模拟多用户发起请求、获取峰值及各种指标,验证服务器的空间性能和时间性能是否满足我们预期的指标

功能测试与性能测试的区别

功能测试关注点:

功能测试是模拟单个用户进行一系列的功能操作、验证系统功能的完整性。

性能测试关注点:

模拟多个用户同时对服务器发起请求,研究服务器响应的各种性能指标是否符合需求。

性能测试是相对功能测试来说的。他们之间最本质的区别就是对系统有处理能力是否够成压力。如果一个用户的一个操作(比如超大数据量的查询)对系统够成了压力,我也可以视其为性能测试。

性能指标

  • 响应时间:

响应时间是最能反应服务器性能的指标之一,也是用户最关心的业务体验。(3/5/8原则)

  • TPS

服务器每秒处理的事务数,衡量服务器处理能力的最主要的指标
事务:一个或多个业务操作的集合

  • 吞吐量

网络中每秒传输的事务数
1、没有网络瓶颈:tps 数值 = 吞吐量数值
2、如果网络有瓶颈: tps 数值 != 吞吐量数值

  • 资源利用率

服务器资源占是指在负载情况下,系统的资源利用率。资源占用越低,说明系统越优秀。例如,cpu的占用率、内存使用率、查询Cache命令率、磁盘I/O读写速率等。

  • RPS

请求,每秒用户请求率 发起方

  • QPS

每秒查询率, 服务器的查询

  • HPS

每秒用户点击率,用户对Web页面的链接、提交按钮等点击总和

性能测试的分类

  • 性能测试(狭义)

通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求
对系统性能已经有了解的前提,并对需求有明确的目标,并在已经确定的环境下进行的

  • 压力测试

测试系统在一定饱和状态下,例如cpu、内存在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误
让系统处在很大强度的压力之下,看系统是否稳定,哪里会出问题。

  • 负载测试

通过在被测系统上不断加压,直到性能指标达到极限,例如“响应时间”超过预定指标或都某种资源已经达到饱和状态。
对一个系统持续不段的加压,看系统在什么时候已经超出“预期”或系统崩溃。

  • 并发测试

通过模拟用户并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或其者他性能问题。
关注点是多个用户同时(并发)对一个模块或操作进行加压。

…还有其他分类
分类了解即可,一般并不会很区分开来(紧密结合),因为在做性能测试时并不会局限于在某一个分类上,也可能我们的一个性能测试包含多个分类。

性能测试工具

Jmeter、LR、python+Locust(协程)
一般使用Jmeter

性能测试流程

  • 性能测试准备
  • 搭建性能测试环境
  • 性能测试脚本开发
  • 性能测试脚本执行
  • 结果分析与调优
  • 测试报告与结果跟踪

持续优化文章

你可能感兴趣的:(性能测试,压力测试,服务器,测试工具)