本文主要针对服务端,web系统的性能测试。
性能测试
根据不同的测试目的,性能测试具体细分为多种类型
* 基准测试 : 模拟单个用户访问系统的场景,考察系统性能指标,关注系统功能是否正常,为其他压测提供基准参考。
* 负载测试: 模拟系统在正常压力下(预期压力或者系统达到临界)的负载能力,判断是否满足业务需求。
* 压力测试 : 不断提升系统负载知道达到性能拐点,寻找系统最大负载能力,性能瓶颈等。
* 稳定性测试:在一定压力下持续运行,关注系统长期一定负载下是否能稳定服务。
以此获得系统在多少并发用户,请求数的情况下,平均响应时间,成功失败率等数据。
在定位系统瓶颈时,考虑被测系统 cpu,网络,磁盘,缓存和数据库情况,同时也要关注测试机器的情况。
这里介绍一种开源性能压测软件 locust,纯 python 实现,能实现模拟用户操作场景进行加压,支持单进程和分布式多进程,有一个简单 web ui 查看压测过程,而且开源python,方便自己自定义hack。
安装
pip install locustio
locust --help
pip install pyzmq ## 多进程机器部署需要安装
公司网络限制手动装依赖真是丢…..
注意 : 设置系统文件描述符最大限制 ulimit -n xx
,
每一个http