性能测试基本理论知识
一、软件项目中性能测试的概念
性能测试是指通过特定方式,对被测系统按照一定策略施加压力,获取系统响应时间、TPS(TransactionPerSecond)、吞吐量、资源利用率等性能指标,以期保证生产系统的性能能够满足用户需求的过程
特定方式是指模拟多用户且不能用手工的模拟方式,常用工具用jmeter、loadrunner、locust等
二、性能测试一般包含3个方面
1、 应用在客户端性能的测试:网站前端(js解析数据性能、前端图片资源加载性能等)、手机app本身的性能(占用cpu、卡顿、发热、流量等)、c/s程序的client端(占用cpu等)
2、应用在网络上性能的测试:网络设备或网络带宽不够
3、应用在服务器端性能的测试:模拟大批量请求对服务器产生压力
三、性能测试目的
- 客户有明确要求
- 考察目前系统性能(容量测试),需要对系统做出分析,找出系统的压力点
- 找出系统性能瓶颈,需要分析可能对系统造成瓶颈的逻辑业务,然后才能进行性能测试
- 了解系统在长时间的压力下性能状况(强度测试)
四、负载测试
在一定软硬件环境下,通过不断加大负载(不同虚拟用户量)来确定在满足性能指标情况下能够承受的最大用户数。简单说,可以帮我们对系统进行定容定量,找出系统性能的拐点,给予生产环境规划建议。这里的性能指标包括TPS(每秒事务数)、RT(事务平均响应时间)、CPUUsing(CPU利用率)、MemUsing(内存使用情况)等软硬件指标。从操作层面来说,负载测试也是一种性能测试手段
五、压力、强度测试
压力、强度测试(EnduranceTesting)指在一定软硬件环境下,通过高负载的手段来使服务器资源(强调服务器资源,硬件资源)处于极限状态,测试系统在极限状态下长时间运行是否稳定,确定是否稳定的指标包括TPS、RT、CPUUsing、MemUsing等