软件性能测试详解

软件性能测试大概包括以下几个方面:
这里写图片描述

一、性能测试理论基础

  • 性能测试概念:
    指通过自动化测试工具,模拟多种正常,峰值以及异常负载条件来对系统的各项性能指标进行测试。

  • 性能测试的目的:
    评价系统当前性能,判断系统是否满足预期的性能需求。
    寻找软件系统可能存在的性能问题,定位性能瓶颈并解决问题。
    判定软件系统的性能表现,预见系统负载压力承受力,在应用部署之前,评估系统性能。

  • 性能测试包括什么:
    负载测试,压力测试,容量测试。
    1、负载测试(Load Testing):负载测试是一种主要为了测试软件系统是否达到需求文档设计的目标,譬如软件在一定时期内,最大支持多少并发用户数,软件请求出错率等,测试的主要是软件系统的性能。

    2、强度测试(Stress Testing):强度测试主要是为了测试硬件系统是否达到需求文档设计的性能目标,譬如在一定时期内,系统的cpu利用率,内存使用率,磁盘I/O吞吐率,网络吞吐量等,压力测试和负载测试最大的差别在于测试目的不同。

    3、容量测试(Volume Testing):确定系统最大承受量,譬如系统最大用户数,最大存储量,最多处理的数据流量等。

二、性能测试术语与关键指标

  • 术语与关键指标:

    资源指标:
    1、CPU使用率:指用户进程与系统进程消耗的CPU时间百分比,长时间情况下,一般可接受上限不超过85%。
    2、内存利用率:内存利用率=(1-空闲内存/总内存大小)*100%,一般至少有10%可用内存,内存使用率可接受上限为85%。
    3、磁盘I/O: 磁盘主要用于存取数据,因此当说到IO操作的时候,就会存在两种相对应的操作,存数据的时候对应的是写IO操作,取数据的时候对应的是是读IO操作,一般使用% Disk Time(磁盘用于读写操作所占用的时间百分比)度量磁盘读写性能。
    4、网络带宽:一般使用计数器Bytes Total/sec来度量,Bytes Total/sec表示为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较。

    系统指标:
    1、并发用户数:某一物理时刻同时向系统提交请求的用户数。
    2、在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求。
    3、平均响应时间:系统处理事务的响应时间的平均值。事务的响应时间是从客户端提交访问请求到客户端接收到服务器响应所消耗的时间。对于系统快速响应类页面,一般响应时间为3秒左右。一般分为2、5、8s。
    4、吞吐量:每秒钟系统能够处理的请求数、任务数。(吞吐量的指标受到响应时间、服务器软硬件配置、网络状态等多方面因素影响。)
    5、超时错误率:主要指事务由于超时或系统内部其它错误导致失败占总事务的比率。

    一个系统吞吐量经常由响应时间、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,cpu上下文切换,内存等等其他消耗导致系统性能下降。

  • 响应时间–负载对应关系:
    响应时间突然增加,意味着系统的一种或多种资源利用达到极限。
    这里写图片描述

  • 吞吐量–负载对应关系:
    吞吐量逐渐达到饱和,意味着系统的一种或多种资源利用达到极限。
    这里写图片描述

三、性能测试分类

1、预期指标的性能测试
2、独立业务的性能测试:
(1)在同一时刻进行完全一样的操作
(2)是在同一时刻使用完全一样的功能
3、组合业务性能测试
4、疲劳强度性能测试
5、大数据量性能测试
6、网络性能测试
7、服务器(操作系统,web服务器,数据库)性能测试
8、一些特殊的测试:配置,内存泄漏等

四、性能测试模型与流程

  1. 写脚本或者录制脚本
  2. 使用用户自定义参数
  3. 场景设计
  4. 使用控制器来模拟多少用户
  5. 使用监听器,查看测试结果

五、性能测试常用工具

1.JMeter
2. Loadrunner

六、性能监控与分析

详见https://blog.csdn.net/heyongluoyao8/article/details/51413668

七、系统性能定位与调优

  • 性能瓶颈可能出现的地方有:网络(波动、延迟等/硬件资源(CPU/内存/缓存/IO读写)/数据库慢查询/线程死锁/异常等
  • 瓶颈问题定位方法
        网络(波动、延迟等):nmon网络监控,一般来说只需监控事务接入组件服务器的网络数据即可,其他内部组件一般都是属于局域网类型网络。
        硬件资源(CPU/内存/缓存/IO读写):nmon硬件资源监控,需监控所有服务器资源(业务组件服务器/数据库服务器/MQ服务器等),经验上看最有可能出现问题的是业务组件服务器.
        数据库慢查询:数据库慢查询配置,具体查看 http://www.cnblogs.com/echo-something/archive/2012/07/25/2607771.html
        软件问题:先分析日志,查看大概的问题所处业务逻辑位置,再借助工具jstack(java后台)或者pstack(其他后台)记录各线程运行堆栈信息,查看分析线程等待(WAITING)状态原因
  • 瓶颈优化方法
    网络(波动、延迟等)
    运维优化网络环境
    硬件资源(CPU/内存/缓存/IO读写)
    优化软件程序,重构复杂逻辑、递归,优化日志级别等
    增加硬件配置
    分布式部署
    数据库慢查询
    优化sql语句
    重构业务逻辑
    软件问题
    优化程序逻辑
    异步模式

八、性能架构,管理

暂无。

参考资料:https://www.cnblogs.com/puresoul/p/5456855.html
https://www.jianshu.com/p/d42dab4af1be
http://www.51testing.com/html/01/n-3959101.html

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值