文章目录

  • 7 性能测试
  • 7.1 性能测试基础
  • 7.1.1 性能测试的分类
  • 7.1.2 性能计数器
  • 7.2 性能测试流程
  • 7.3 LoadRunner应用
  • 7.4 Rational Performance Tester应用
  • 7.5 性能测试结果分析
  • 7.5.1 性能分析原则
  • 7.5.2 常见瓶颈症状


7 性能测试

7.1 性能测试基础

性能测试的目的是验证软件系统是否能够达到用户要求的性能指标,同时发现软件系统

中存在的性能瓶颈,最后起到优化系统的目的。

性能测试

  • 评估系统的能力
  • 识别系统中的瓶颈
  • 系统调优
  • 验证稳定性与可靠性

7.1.1 性能测试的分类

  • 负载测试
  • 压力测试
  • 强度测试
  • 容量测试

7.1.2 性能计数器

性能计数器是描述服务器或操作系统性能的一些数据指标。

影响一个系统性能的因素主要有:

  • 软件因素,包括系统软件、第三方软件等;
  • 硬件因素,如内存、磁盘、CPU、网卡等;网络因素,如网络吞吐量、带宽、网络传输速率等。

常用的Windows性能计数器如下所示

  • 内存(Memory)

内存性能计数器主要检查应用程序是否存在内存泄漏。

  • 处理器(Processor)

监视“处理器”和“系统”对象计数器可以提供关于处理器使用的有价值的信息,

帮助测试人员决定是否存在瓶颈。

  • 物理磁盘(Physical Disk)
  • 判断磁盘瓶颈的方法是通过以下公式来计算:

【实用软件测试教程】7-性能测试_性能计数器

  • 如果计算出的每磁盘的I/O 数大于磁盘的处理能力, 那么磁盘存在瓶颈。否

则,磁盘不存在瓶颈。

7.2 性能测试流程

性能测试主要是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统

的各项性能指标进行测试。

性能测试原理的实现主要包含三点

  • 用户行为模拟
  • 性能指标监控
  • 性能调优

7.3 LoadRunner应用

一种预测系统行为和性能的工业标准级负载测试工具。

实验

  • 脚本的录制与开发
  • 场景设计与运行
  • 测试结果分析

7.4 Rational Performance Tester应用

一款性能测试工具,适用于基于 Web 的应用程序的性能和可靠性测试。

实验

  • RPT基本使用
  • 测试验证点的设置
  • 数据池的使用

7.5 性能测试结果分析

性能测试完成后,需要对结果进行分析,以定位瓶颈。应用LoadRunner、RPT等工具进行性能测试,测试运行完毕后,产生的各性能指标曲线是进行性能分析的重要依据。可以通过对性能指标随时间的变化综合分析,帮助测试人员定位性能瓶颈,并采取措施对系统进行性能优化。

7.5.1 性能分析原则

  • 具体问题具体分析

不同的应用系统,测试目的不同,测试过程中性能关注点也会不同。

  • 查找瓶颈时按以下顺序:

服务器硬件瓶颈 > 网络瓶颈(对局域网,可以不考虑) > 服务器操作系统瓶颈(参数配置) > 中间件瓶颈(参数配置,数据库,web服务器等) > 应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)。

7.5.2 常见瓶颈症状

内存资源成为系统性能的瓶颈的症状

  • 很高的换页率(high pageout rate)
  • 进程进入不活动状态(process deactivation activity)
  • 自由内存的数量很小,但活动的虚拟内存却很大
  • 交换区所有磁盘的活动次数可高
  • 很高的全局系统CPU利用率
  • 很长的运行进程队列,但CPU的空闲时间却很多
  • 内存不够出错
  • CPU用于vhand和swapper两种守护进程的时间(CPU time to vhand and swapper)

CPU资源成为系统性能的瓶颈的征兆

  • 很慢的响应时间(slow response time)
  • CPU空闲时间为零(zero percent idle CPU)
  • 过高的用户占用CPU时间(high percent user CPU)
  • 过高的系统占用CPU时间(high percent system CPU)
  • 长时间的有很长的运行进程队列(large run queue size sustained over time)
  • 被优先级封锁的进程(processes blocked on priority)

I/O资源成为系统性能的瓶颈的征兆:

  • 过高的磁盘利用率(high disk utilization)
  • 太长的磁盘等待队列(large disk queue length)
  • 等待磁盘I/O的时间所占的百分率太高(large percentage of time waiting for disk
    I/O)
  • 太高的物理I/O速率(large physical I/O rate(not sufficient in itself)
  • 过低的缓存命中率(low buffer cache hit ratio(not sufficient in itself))
  • 太长的运行进程队列,但CPU却空闲(large run queue with idle CPU