性能测试理论知识
性能测试是通过工具模拟多用户发起请求、获取峰值及各种指标,验证服务器的空间性能和时间性能是否满足我们预期的指标
功能测试与性能测试的区别
功能测试关注点:
功能测试是模拟单个用户进行一系列的功能操作、验证系统功能的完整性。
性能测试关注点:
模拟多个用户同时对服务器发起请求,研究服务器响应的各种性能指标是否符合需求。
性能测试是相对功能测试来说的。他们之间最本质的区别就是对系统有处理能力是否够成压力。如果一个用户的一个操作(比如超大数据量的查询)对系统够成了压力,我也可以视其为性能测试。
性能指标
响应时间是最能反应服务器性能的指标之一,也是用户最关心的业务体验。(3/5/8原则)
服务器每秒处理的事务数,衡量服务器处理能力的最主要的指标 事务:一个或多个业务操作的集合
网络中每秒传输的事务数 1、没有网络瓶颈:tps 数值 = 吞吐量数值 2、如果网络有瓶颈: tps 数值 != 吞吐量数值
服务器资源占是指在负载情况下,系统的资源利用率。资源占用越低,说明系统越优秀。例如,cpu的占用率、内存使用率、查询Cache命令率、磁盘I/O读写速率等。
请求,每秒用户请求率 发起方
每秒查询率, 服务器的查询
每秒用户点击率,用户对Web页面的链接、提交按钮等点击总和
性能测试的分类
通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求 对系统性能已经有了解的前提,并对需求有明确的目标,并在已经确定的环境下进行的
测试系统在一定饱和状态下,例如cpu、内存在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误 让系统处在很大强度的压力之下,看系统是否稳定,哪里会出问题。
通过在被测系统上不断加压,直到性能指标达到极限,例如“响应时间”超过预定指标或都某种资源已经达到饱和状态。 对一个系统持续不段的加压,看系统在什么时候已经超出“预期”或系统崩溃。
通过模拟用户并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或其者他性能问题。 关注点是多个用户同时(并发)对一个模块或操作进行加压。
…还有其他分类 分类了解即可,一般并不会很区分开来(紧密结合),因为在做性能测试时并不会局限于在某一个分类上,也可能我们的一个性能测试包含多个分类。
性能测试工具
Jmeter、LR、python+Locust(协程) 一般使用Jmeter
性能测试流程
- 性能测试准备
- 搭建性能测试环境
- 性能测试脚本开发
- 性能测试脚本执行
- 结果分析与调优
- 测试报告与结果跟踪
持续优化文章
|