zoukankan      html  css  js  c++  java
  • 负载测试 & 压力测试

    背景

    在没有性能测试实践的情况下,压力测试和负载测试从字面上来看意思差不多,笔者也经常记不住这两个的区别是什么,因此写一篇文章来让自己加深印象。
    然后由于找到的文章都是把性能测试相提并论(其实我一直觉得性能测试包含压力测试和负载测试),因此这里也提上一笔。

    概念

    性能测试

    收集所有和测试有关的所有性能,测试软件在系统中的运行性能,度量系统与预定义目标的差距。
    关注: how much and how fast

    压力测试

    通过 逐步增加系统负载,确定在什么条件下系统失效,以此获得系统能提供的最大服务级别;

    负载测试

    指数据在超负荷环境中运行,程序是否能够承担。通过逐步增加系统负载,确定在满足性能指标的情况下,系统所能承受的最大负载量。
    关注:how much

    举例:一个人背X斤
    负载测试:200斤情况下,是否能坚持5分钟。
    压力测试:200,300,400...斤情况下,他的表现,什么时候失败,失败之后什么表现,重新扛200是否正常。

    这里提一下其他的性能测试: 强度测试(spike testing,extreme testing ,hammer testing,容量测试,压力测试);

    • 强度测试: 在系统资源特别低的情况下软件系统运行情况,找到系统在那里失效以及如何失效的地方;
    • spike testing: 短时间的极端负载测试
    • extreme testing: 在过量用户下的负载测试
    • hammer testing: 连续执行所有能做的操作
    • 容量测试: 确定系统可处理同时在线的最大用户数,使系统承受超额的数据容量来发现它是否能够处理。通常和数据库有关,关注大容量。

    测试目的

    压力测试

    可以知道在什么极限情况下系统会崩溃,是否具有自我恢复性,更多是为了确定系统稳定性

    负载测试

    获得系统正常工作时所能承受的最大负载,也称为容量测试;

    压力测试

    可分为稳定性测试和破坏性测试。

    稳定性测试

    在选定的压力值下,持续运行24小时以上的测试。考察各项性能指标是否在指定范围内,有无内存泄漏,有无功能性故障等。
    观察log日志等,查看监视系统,服务器等性能的日志文件,找出问题出现的关键时间或检查运行参数。

    破坏性测试

    在稳定性测试中可能会出现一些问题,如系统性能明显降低,但很难暴露出真实的原因。通过破坏性不断加压,往往能快速造成系统的崩溃或让问题明显暴露。

    如何测试?

    工具

    • 应用层 ,profilers 发现低效代码
    • 数据库层,数据库profilers 和 时间探查器(query optimizers)
    • 操作系统层,Unix(top,vmstat,iostat );windows(PerfMon监控CPU,内在,swap,磁盘I/O等硬件资源)
    • 网络层,报文探测器,网络协议分析器,netstat,MRTG,ntop,mii-tool
    • 负载测试开源工具: apache bench,siege,httperf,openSTA,the grinder

    提高WEB应用系统性能的例子

    • 使用web缓存装置,如squid提供的装置
    • 将高访问量的网页静态化避免高访问量对数据库的大量调用
    • 通过负载平衡的方法来水平缩放web服务器的结构
    • 水平缩放数据库群及分为读写服务器和只读服务器,对只读服务器群负载平衡
    • 增加硬件资源
    • 增加网络带宽

    压力测试方法

    • 并发用户/HTTP连接的基线数翻倍
    • 随机关闭重启集线器/路由器端口
    • 数据库断线然后重启
    • 系统运行中,重建RAID阵列
    • 运行消耗资源(CPU,内存,磁盘, 网络)的进程

    参考:
    负载测试、压力测试和性能测试的区别
    性能测试、压力测试和负载测试
    性能测试 vs 负载测试 vs 压力测试
    性能测试VS负载测试VS压力测试 中文翻译

  • 相关阅读:
    C#深入浅出 修饰符(二)
    HDU 5785 Interesting
    HDU 5783 Divide the Sequence
    HDU 5781 ATM Mechine
    UVA 714 Copying Books
    uva 1471 Defense Lines
    UVA 11134 Fabled Rooks
    UVA 11572 Unique Snowflakes
    UVA 11093 Just Finish it up
    UVA 10954 Add All
  • 原文地址:https://www.cnblogs.com/Tester_Dolores/p/13958050.html
Copyright © 2011-2022 走看看