Loading

性能测试理论简记

需要掌握的知识

通过要做好性能测试,该掌握些什么这篇文章,我觉得我首先要做的是 第一点(性能测试的基本概念,过程,方法论,性能工程)和第二点(商业性能测试工具和开源性能测试工具)吧。

开始性能测试之前必须知道的事情

理发店模型
最佳并发用户数:以理发店模型来讲,每小时3个用户是最佳并发用户数,此时没有资源(理发师)被浪费,也没有用户需要等待;
最大并发用户数:以理发店模型来讲,每小时9个用户是最大并发用户数,此时没有资源被浪费,但是除了前三个用户,后面的6个用户都要等待一定的时长;

  1. 了解用户目的
    情况1: 客户有明确需求
    情况2: 容量测试(了解系统性能),可以假设为求得最大用户数和最佳用户数
    情况3:找出系统性能瓶颈
    情况4:强度测试,验证系统稳定性,典型问题: 内存溢出

  2. 环境
    硬件环境,软件环境,网络环境

  3. 寻找系统的压力点
    如何获得有效的性能需求?
    获取有效的性能需求
    什么是有效的性能需求?

  • 明确的数字
  • 有凭有据,合理,有实际意义
  • 相关人员达成一致
    如何获得?
  • 客户方提出
  • 根据历史数据来分析
  • 参考历史项目的数据
  • 参考其他同行类似项目的数据
  • 参考其他类似行业应用的数据
  • 参考新闻或其他资料的数据

容易混淆的理论

并发用户数 ≠ 每秒请求数
详细解释参考这篇博文

性能测试知多少

虫师的这个系列文章,作为我对性能知识的入门吧!以下记录重点难点。

  1. 性能测试分类
    之前根据一些文章自己整理过简单分类负载测试 & 压力测试,但是发现和虫师这篇文章的分类好像相反。 算了....其实好像没什么关系...

  2. 吞吐量和吞吐率
    吞吐量: 一次性能测试过程中网络上传输的数据量的综合。
    吞吐率: 单位时间内网络上传输的数据量。

  3. 事务和TPS
    事务:用户某一步或几步操作的集合
    TPS: 每秒系统能够处理事务或交易的数量

  4. 如何定位性能瓶颈
    网络、数据库、应用服务器和代码

  5. 响应时间
    普遍标准:2/5/10秒原则

  6. 性能测试工具原理
    通过多线程或多进程模拟用户访问,对服务端施加压力,然后收集性能数据。

  7. 性能测试流程
    需求分析 - 测试计划 - 环境搭建 - 工具选择 - 测试执行

性能测试指标

  1. 通用指标
  • ProcessorTime 服务器CPU占用率,一般 平均达到70%,服务就接近饱和
  • Memory Available Mbyte 可用内存数
  • Physicsdisk Time 物理磁盘读写情况
  1. Web服务器指标
  • avg rps 平均每秒钟响应次数
  • successful rounds 成功的请求
  • failed rounds 失败的请求
  • hits per second 每秒点击次数
  • successful hits 成功的点击次数
  • failed hits 失败的点击次数
  • successful hits per second 每秒成功的点击次数
  • failed hits per second 每秒失败的点击次数
  • attempted connections 尝试连接数
  • 最小的服务器响应时间
  • 最大的服务器响应时间
  1. 数据库服务器指标
  • user 0 connections 用户连接数
  • number of deadlocks 数据库死锁
  • butter cache hit 数据库cache的命中情况

数据库响应时间、连接数,服务器内存、磁盘使用等数值
内存、磁盘使用率
资源、内存、连接数等是否使用饱和,是否有线程等待,数据库响应时间等

调优

内存、磁盘:简单粗暴的做法,直接加服务器吧。。。
数据库:更改配置的连接数,加索引、读写分离、分库、分区、分表、物理视图等手段。。。
连接池:优化连接池配置,增加连接数等,具体请看链接博客的介绍。。。
前端:减少请求连接,数据包尽量放在body中,图片压缩、异步加载、JavaScript脚本放在HTML最后等等手段,具体请看链接博客的介绍。。。

如何开展性能测试

测试用例设计

首先请阅读 性能测试用例,策略和方法

  1. 资源占用率测试
  • 模块装载后内存占用量:检查模块装载后内存占用量(包括虚拟内存)
  • 模块卸载后内存释放量:检查模块卸载后内存释放率(包括虚拟内存)

策略

  1. 基准测试
  2. 并发测试
  3. 疲劳测试

雅虎35条军规 - 前端性能

之前了解前端性能时记录的文章

参考:
在做性能测试之前你需要知道什么
要做好性能测试,该掌握些什么
性能测试知多少
web下的整体测试
一次简单的压力测试实例
性能测试用例

上面的内容,主要还是一些知识点整理和个人的一些思考,权当参考,如有错误或者更好的建议,可以在评论区指正,不胜感激!

posted @ 2021-05-24 17:24  Tester-Dolores  阅读(71)  评论(0编辑  收藏  举报