性能测试

1. 性能测试

1.1性能测试概念和分类

  • 概念
    功能测试:一个人测试基本功能是否正常
    性能测试:一个或n个人在基本功能实现的前提下考察服务端应用程序的各项性能指标,以及服务薇硬件资源的使用情况
  • 基本功能实现为前提
  • 有一定并发量
  • 观察性能指标
    特点:
  • 正确实现功能是前提
  • 有一定的并发用户
  • 考察服务器在一定压力下的性能指标
    目的:验证软件系统是否能达到预期的性能指标,同时发现软件系统的存在的性能瓶颈,从而实现优化系统的目的
    分类:
    基准测试(Standard Testing):基本功能测试
    负载测试(Load Testing):是否符合预期
    假如服务薇设计为5000人同时访问,测试5000人范围内同时访问,是否同时满足要求
    压力测试(Stress Testing):是否超预期
    本来设置5000人反问,超过5000人来访问测试,测试其压力情况
    疲劳强度测试:稳定性,服务器运行一个月是否正常

1.2 性能监控指标

分为两大类:业务性能指标和系统资源性能指标

业务性能指标

  • 并发数:单位时间内同时发送服务器的相同业务请求数,需限定具体的业务类型
  • 事务吞吐率(TRS/RPS):单位时间内服务器处理的事务数,以QPS为单位,该指标值越大越好。一般情况下,用户业务操作过程中可能细分为若干个事务,单位时间处理的事务数越多越好,说明服务器的处理能力越强
    • QPS:全名Queries Per Second,意思是每秒查询率。
    • TPS:是Transactions Per Second,每秒处理的事务数目
  • 响应时间
  • 吞吐量
  • 吞吐率:衡量方式:字节数/单位时间
  • 事务成功率:
  • 并发用户数
  • 在线用户数

系统资源性能指标

  • 服务器:CPU利用率,内存利用率
  • 数据库:数据库读写吞吐量
  • 网络:网络吞吐量
  • 缓存(redis):缓存吞吐量
  • 测试设备(压力发生器):CPU利用率

1.3 性能测试工具

性能测试工具

性能测试工具的基本组成

性能测试工具的基本组成

2. jmeter简介

2.1 jmeter介绍

JMeter是apache的软件,开源的,纯java编写的,带有图形化界面,测试web应用程序
功能:

  1. web自动化测试
  2. 接口测试
  3. 性能测试
  4. 压力测试
  5. 通过jdbc进行数据库测试
  6. java测试
    Jmeter的优缺点
  • 优点:
    • 开源工具,拓展性强,GUI设计,可移植性,多线程,支持脚本。
  • 缺点:
    • 不支持IP欺骗
    • 无法验证js程序,需要和selsium结合使用

2.2 环境搭建

  • 安装jdk
  • 解压jmeter压缩包,进入bin目录,双击即可运行这个软件

3 jmeter使用流程

3.1 元件和组件

  1. 打开软件默认有一个测试计划(必须),类似于pycharm的工程
  2. 需要用户,线程中的线程组
  3. 用户需要发请求,取样器的HTTP请求
  4. 发完请求,需要有结果,监听器中选择需要的组件

3.2 基本使用流程