需要掌握的知识
通过要做好性能测试,该掌握些什么这篇文章,我觉得我首先要做的是 第一点(性能测试的基本概念,过程,方法论,性能工程)和第二点(商业性能测试工具和开源性能测试工具)吧。
开始性能测试之前必须知道的事情
理发店模型
最佳并发用户数:以理发店模型来讲,每小时3个用户是最佳并发用户数,此时没有资源(理发师)被浪费,也没有用户需要等待;
最大并发用户数:以理发店模型来讲,每小时9个用户是最大并发用户数,此时没有资源被浪费,但是除了前三个用户,后面的6个用户都要等待一定的时长;
-
了解用户目的
情况1: 客户有明确需求
情况2: 容量测试(了解系统性能),可以假设为求得最大用户数和最佳用户数
情况3:找出系统性能瓶颈
情况4:强度测试,验证系统稳定性,典型问题: 内存溢出 -
环境
硬件环境,软件环境,网络环境 -
寻找系统的压力点
如何获得有效的性能需求?
获取有效的性能需求
什么是有效的性能需求?
- 明确的数字
- 有凭有据,合理,有实际意义
- 相关人员达成一致
如何获得? - 客户方提出
- 根据历史数据来分析
- 参考历史项目的数据
- 参考其他同行类似项目的数据
- 参考其他类似行业应用的数据
- 参考新闻或其他资料的数据
容易混淆的理论
并发用户数 ≠ 每秒请求数
详细解释参考这篇博文
性能测试知多少
虫师的这个系列文章,作为我对性能知识的入门吧!以下记录重点难点。
-
性能测试分类
之前根据一些文章自己整理过简单分类负载测试 & 压力测试,但是发现和虫师这篇文章的分类好像相反。 算了....其实好像没什么关系... -
吞吐量和吞吐率
吞吐量: 一次性能测试过程中网络上传输的数据量的综合。
吞吐率: 单位时间内网络上传输的数据量。 -
事务和TPS
事务:用户某一步或几步操作的集合
TPS: 每秒系统能够处理事务或交易的数量 -
如何定位性能瓶颈
网络、数据库、应用服务器和代码 -
响应时间
普遍标准:2/5/10秒原则 -
性能测试工具原理
通过多线程或多进程模拟用户访问,对服务端施加压力,然后收集性能数据。 -
性能测试流程
需求分析 - 测试计划 - 环境搭建 - 工具选择 - 测试执行
性能测试指标
- 通用指标
- ProcessorTime 服务器CPU占用率,一般 平均达到70%,服务就接近饱和
- Memory Available Mbyte 可用内存数
- Physicsdisk Time 物理磁盘读写情况
- Web服务器指标
- avg rps 平均每秒钟响应次数
- successful rounds 成功的请求
- failed rounds 失败的请求
- hits per second 每秒点击次数
- successful hits 成功的点击次数
- failed hits 失败的点击次数
- successful hits per second 每秒成功的点击次数
- failed hits per second 每秒失败的点击次数
- attempted connections 尝试连接数
- 数据库服务器指标
- user 0 connections 用户连接数
- number of deadlocks 数据库死锁
- butter cache hit 数据库cache的命中情况
雅虎35条军规 - 前端性能
参考:
在做性能测试之前你需要知道什么
要做好性能测试,该掌握些什么
性能测试知多少
web下的整体测试