常见的性能指标
- 相应时间:反应一个系统的处理效率。(工具的解析执行–DNS解析–连接的建立时间–请求的发送–服务器的处理时间–响应接收)
- 吞吐量:反应的是一个系统的处理能力。
TPS/QPS:每秒的事务数/每秒的请求数
Thoughput:统计的是数据流量,单位是byte。统计方式可以是网络流量or磁盘流量。 - 资源利用率:事实上,资源利用率作为性能指标的意义远远小于其作为分析、定位性能瓶颈的数据意义。
一般来说,我们监控的资源是指:系统资源、服务器资源、数据库资源等。
- 系统资源:cup、内存、磁盘IO、网络带宽
- 服务器资源:CPU、内存、连接数、GC等
- 数据库资源:CPU、内存、缓存命中率、热点块、慢查询、执行计划等等。
ps:通常来说,响应时间和吞吐量指标都是由性能测试工具自身来提供。而资源利用率则可以通过专业的第三方工具来实现监控。
负载用户的分类:
性能测试的实现方式:通过性能测试工具在协议级别去模拟实现大量的虚拟用户去访问被测试服务器。虚拟用户数取决于负载用户的数量。负载用户一般可以分为以下几类:
- 系统最大用户数:理论上系统希望支持的最大用户数。【用户不一定是真实的人,可能是人,可能是设备,可能是接口的调用者】
- 在线用户数:长时间使用系统的人数。【在线用户是小于等于系统最大用户数。不同的行业,比例也有很大差异】
- 并发用户数:
并发分为两种:
①严格意义的并发:对于服务器而言,服务器同时处理的请求的数量就是并发。
对于性能测试来说,是指同时发送给服务器的请求的数量。
②广义并发:在线即并发
因为从某种意义上来说,用户在线即使没有发送请求(没有操作)、也是会消耗服务器资源的,比如连接数。
性能测试的分类
按测试目的可以分为以下几类:
- 负载测试:得到系统的最大处理能力、最佳性能表现和最大有效负载用户数
注意事项:
➢负载用户的起点和变动。(参考同行业软件或者需求说明书)
➢每一轮负载测试的环境的一致性。(重启服务、重启系统) - 压力测试:测试系统的稳定性
实现方式:使系统长时间在高压力的情况下进行测试,一般:724小时。* - 容量测试:测试系统在特定容量条件下的性能表现,或者通过测试去评估在特定容量条件下的性能表现。
➢一般来说,系统容量是指以下方面:数据库、磁盘、网络带宽、连接数、缓冲池大小等。
➢通常来说,数据库容量使我们在做性能测试的时候需要重点关注的。
➢要从以下几个角度考虑测试环境和线上环境数据库的一致性:
数据库的大小 单位是byte(GB\TB)
数据库的级别 单位是条数。是指数据库中的记录的条数。
数据特征 - 基准测试:获取基准的性能指标。通常是指响应时间和资源利用率。
基准分为两种情况:
➢同一轮次:通常来说建议取一个用户进行测试
➢不同轮次:以上一轮次为基准进行测试 - 配置测试:一般来说是为了获取系统的最低配置和推荐配置。
某些情况下,也会用于线上配置、线上环境性能的评估。 - 并发测试:测试系统是否存在资源争用、事务冲突、锁的升级等问题。
性能测试工程师的自我修炼
- 了解操作系统
- 了解计算机网络相关的知识
- 至少熟练掌握一种性能测试工具
- 至少熟练掌握一种服务器
- 至少熟练掌握一种数据库
- 至少熟练掌握一种编程语言