zoukankan      html  css  js  c++  java
  • 性能测试学习记录

    第一个总结


    1.什么是性能测试 performance testing
    2.性能测试的核心 core activities
    3.性能测试的必要性 why
    4.性能测试和项目的具体情况 relevance of project context
    5.性能调优

    性能测试在给定负载下测试响应时间、吞吐量、系统可靠性、可扩展性。
    主要目的有:
    确定待测软件是否可上线:
    确定待测软件是否达到某个定好的性能标准
    比较待测软件在各种系统或系统配置下的性能情况
    定位性能问题
    为性能调优服务
    确定吞吐量级别

    核心:
    确定性能瓶颈
    确定性能基线baseline
    支持性能调优
    验证是否达到性能需求或目标
    收集其他性能相关的信息
    估算上线需要的硬件配置

    核心活动:
    1.确定测试环境
    确定测试环境和生产环境上可用于测试的工具和资源。
    包括硬件、软件、网络配置。

    2.确定性能测试目标
    响应时间:从用户的角度
    吞吐量:从业务的角度
    服务器资源使用量:从系统的角度
    有时有例外情况,比如目标是检查不同的系统配置中哪一种配置性能更好

    3.计划和设计测试
    确定要测试的主要场景
    确定需要准备的测试数据

    4.配置测试环境
    准备测试环境、测试工具、确定测试人员、如有必要的话确定测试环境上已安装好服务器资源监控器

    5.实现测试脚本
    录制、编写脚本,实现3中计划和设计的测试

    6.测试执行
    执行测试、监控服务器资源;
    确认测试的执行,确认测试数据、测试结果的手机
    在测试执行时做好服务器资源监控

    7.分析结果、报告、下一轮测试
    汇总并共享测试结果,测试员分析测试结果、联合其他角色分析测试结果、
    如有必要,可以重新定义测试优先级和重新执行一些测试
    当所有结果符合测试目标,所有需要的信息已收集,则完成了在这种环境配置下这些场景的性能测试。




    为什么要做性能测试?

    1.确定待测软件是否可上线:
    验证是否满足需求,包括当前的性能需求和未来的,是否可以通过升级硬件等方式应对未来的需求。
    收集和给出能证明用户有可能对系统不满的数据证明
    指出系统的稳定性、扩展性和响应时间是否有可能引起用户的不满。
    2.确认系统硬件性能足够
    检查当前系统的容量,包括未来的系统设备需求
    比较不同的系统配置,看看哪个性能最好
    确认待测软件的性能足够好
    3.确认系统的软件性能足够
    每一次改动软件前后确定性能需求
    比较系统当前的性能指标和期望的性能指标
    4.提高性能调优效率
    分析系统在不同负载级别下的性能
    确认系统性能瓶颈
    提供需要的数据:如速度、扩展性、稳定性以便确定是否需要性能调优以及何时进行性能调优

    项目的具体情况
    比如说有:
    项目的愿景
    性能测试目标
    性能测试接受指标
    产品开发生命周期
    项目日程计划
    项目资金
    可用的工具和环境
    测试员和测试团队的技能
    发现的性能问题的优先级
    产品性能不好可能造成的商业上的影响

    系统本身、用户期望、商业动机、性能测试的原因
    性能测试价值,项目管理和人员,流程,项目日程


    性能调优:
    参与者:(联合性能调优组)
    • Product vendors
    • Architects
    • Developers
    • Testers
    • Database administrators
    • System administrators
    • Network administrators
    流程:
    • 测试在测试环境上执行,确保测试结果可复现
    • 当测试结果显示性能达不到期望值(或期望待测软件占用更少的系统资源)时,进入性能调优过程。
      调优需要对测试环境或待测软件进行一定的修改或配置,常常需要进行临时性修改或配置来看看性能是否得到提升。
    • 联合性能调优组需要对测试环境具有独立的、全权的控制权以提高调优的效率。
    • 在对测试环境进行修改或配置后,应开始或重新执行性能测试,以便检测这次改动的效果。
    • 整个调优流程通常需要快速而多次地进行测试-修改-测试的流程。如果调优团队在调优阶段是全职调优,那么调优的效率会比较高
    • 当调优结束,测试环境通常需要初始化,同时保留所有调优时认为对提高性能有帮助的修改并去掉所有调优时被认为对性能没有好处的改动,
      然后再重新执行一轮性能测试以证明调优后性能得到了提升。

    性能测试,负载测试,压力测试
    performance testing
    测试系统的速度、稳定性等。
    测响应时间、吞吐量、系统资源占用率等。
    通常要在从低到高多种负载情况下测试。

    也常常指代这三种性能测试的总称。

    load testing
    在预期生产环境的负载情况下进行测试,或者说接近能处理的负载极限。但不会去故意超出极限来使系统出错。
    测试指标同performance testing

    stress testing
    在超出预期生产环境的负载情况下进行测试,或者说超出能处理的负载极限,会故意超出极限来使系统出错。
    也要包括在诸如内存不足、磁盘空间不足、服务器错误等等情况下检查待测系统在何种情况下会出错,如何出错,
    以及找出监控哪些指标可以预测待测系统将会出错。

    白盒层面的性能测试
     at the application level, developers can use profilers to spot inefficiencies in their code (for example poor search algorithms)
     at the database level, developers and DBAs can use database-specific profilers and query optimizers
     at the operating system level, system engineers can use utilities such as top, vmstat, iostat (on Unix-type systems) and PerfMon (on Windows) to monitor hardware resources such as CPU, memory, swap, disk I/O; specialized kernel monitoring software can also be used
     at the network level, network engineers can use packet sniffers such as tcpdump, network protocol analyzers such as ethereal, and various utilities such as netstat, MRTG, ntop, mii-tool
    黑盒层面的性能测试
    opensta、grinder、loadrunner?

    基线测试-baselines
    创建基线:跑一组性能测试,收集性能数据,
    对基线来说,只有在每次只能改一个配置的情况下,基线才有意义。
    如果改了两个配置,无法以基线来判断是哪个改动导致性能上升或下降

    用基线来确定待测软件在不同版本间的性能是提升了还是下降了。

    • 基线的创建可以针对系统、组件、应用,也可以针对应用的不同层次,如数据库、web服务等。
    • 基线可以用于未来版本的比较和性能优化
    • 基线应可重用
    • 基线是一组数据,比如响应时间、cpu占用率、内存使用率、磁盘空间占用率、网络带宽
    • 基线数据可以共享给团队作为性能参考
    • 基线要跟着程序变。比如程序重新架构过了,基线要重测。
    • 要了解系统。

    基线测试-benchmarking
    benchmarking是把系统的性能指标和基线baseline做对比的过程。
    这里的基线可以使自己测出来的,也可以是行业标准之类的。

    以web应用为例,可以对行业标准baseline做一系列的对比得到一个分数。
    再比较你的应用和其他应用针对同一个baseline的得分。



















  • 相关阅读:
    【转】织梦为栏目添加图片的方法
    写在php设计模式前
    memcache 开机启动
    php 列出当前目录
    print echo 的区别
    php 报错等级
    nginx 启动脚本
    centos 编译 安装php
    修改linux iptable规则
    linux yum 安装软件
  • 原文地址:https://www.cnblogs.com/sdet/p/3990802.html
Copyright © 2011-2022 走看看