性能测试
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应用程序
功能:
- web自动化测试
- 接口测试
- 性能测试
- 压力测试
- 通过jdbc进行数据库测试
- java测试
Jmeter的优缺点
- 优点:
- 开源工具,拓展性强,GUI设计,可移植性,多线程,支持脚本。
- 缺点:
- 不支持IP欺骗
- 无法验证js程序,需要和selsium结合使用
2.2 环境搭建
- 安装jdk
- 解压jmeter压缩包,进入bin目录,双击即可运行这个软件
3 jmeter使用流程
3.1 元件和组件
- 打开软件默认有一个测试计划(必须),类似于pycharm的工程
- 需要用户,线程中的线程组
- 用户需要发请求,取样器的HTTP请求
- 发完请求,需要有结果,监听器中选择需要的组件