zoukankan      html  css  js  c++  java
  • 性能测试理论简记

    需要掌握的知识

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

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

    理发店模型
    最佳并发用户数:以理发店模型来讲,每小时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下的整体测试
    一次简单的压力测试实例
    性能测试用例

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

  • 相关阅读:
    inflate
    【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
    安卓延时执行代码
    Listview控件
    安卓的progress
    android studio的弹出层
    解决mysql的日志文件过大的问题
    linux查文件大小
    乔坟往事-姑妄言之
    乔坟往事-村里人家
  • 原文地址:https://www.cnblogs.com/Tester_Dolores/p/14805325.html
Copyright © 2011-2022 走看看