软件性能测试过程详解与案例剖析学习笔记

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章性能测试基本概念

1.1软件性能

从用户的角度,软件性能就是软件对用户操作的响应时间。

从管理员的角度,软件性能首先表现在响应时间上。还包括资源利用率、可扩展性、系统容量(并发等)和系统稳定性等。为了保证系统的稳定运行和持续的良好性能。

对于开发人员而言,最想知道“如何通过调整设计和代码实现,或是如何通过调整系统设置等方法提高软件的性能表现”和“如何发现并解决软件设计和开发过程中产生的由于过多用户访问引起的缺陷”,也就是性能瓶颈和大量用户访问时的缺陷。关注的是系统架构、数据库设计、代码和设计。

所以在性能测试时,既要关注响应时间,还要关注软件可扩展性、并发能力等指标,还要为性能问题定位。

1.2术语

1、响应时间

系统响应时间为应用系统从发出请求开始到客户端接收到响应所消耗的时间。

合理的响应时间取决于实际用户的需求。

2、并发用户数

有两种理解,一种是同一时间段访问系统的用户数量,一种是服务器所能承受的压力(同时发出请求的客户)。在性能测试中我们更关注前者,业务并发用户数。

公式c=nL/T,计算平均并发用户数,还可用c=n/10还做简单的估计。n为每天访问系统的用户数。

还可以通过分析服务器的日志来了解用户的使用状态。

3、吞吐量

单位时间内系统处理的客户请求的数量,请求数/秒,页面数/秒,访问数/天,业务数/小时,字节数/天。可用于衡量是否达到了预期设计目标,协助分析性能瓶颈。

4、性能计数器

描述服务器或操作系统性能的一些数据指标。例如,内存数、进程时间。用于监控和分析。常与资源利用率进行横向对比,例如cpu占用率68%。

5、思考时间(休眠时间)

用户在进行操作时,每个请求之间的间隔时间。

1.3方法

1、SEI负载测试计划过程

关注于负载测试计划的方法,目标是产生清晰、易理解、可验证的负载测试计划。关注目标、用户、用例、生产环境、测试环境和测试场景。

2、RBI方法

rapid bootleneck identify,用于快速识别系统性能瓶颈的方法。

3、性能下降曲线分析法

描述性能随用户数量增长而出现下降趋势的曲线。

4、LoadRunner的性能测试过程

包括计划测试、测试设计、创建VU(virtual user)脚本、创建测试场景、运行测试场景、分析结果。

5、Segue提供的性能测试过程

先确定性能基线,然后设定可接受的性能目标,用不同的并发用户数等重复测试。适合性能调优和性能优化,通过不断的try-check 过程,逐渐找到可能导致性能瓶颈的地方并对其优化。

6、PTGM模型

performance testing general model。分为测试前期准备、测试工具引入、测试计划、测试设计与开发、测试执行和管理以及测试分析。

第2章性能测试的应用领域

2.1 性能测试的方法

1、性能测试(performance testing)

模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能的要求。

2、负载测试(load testing)

通过在系统上不断增加压力,直到性能指标超过预定或某种资源的使用达到饱和。找到系统的处理极限。

3、压力测试(stress testing)

测试系统在一定饱和状态下,系统能够处理的会话能力,以及系统是否会出现错误。常用于测试系统的稳定性。

4、配置测试(configuration testing)

通过对被测软件的软/硬件环境的调整,了解各种不同环境对系统性能的影响的程度,从而找到系统各项资源的最优分配原则。

5、并发测试(concurrency testing)

模拟用户的并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题。

关注内存是否有太多临时对象、超过设计生命周期的对象、数据库死锁、经常出现长事务、是否出现线程/进程同步失败、资源争用导致死锁、未处理异常导致死锁。

6、可靠性测试(reliability testing)

通过给系统加载一定的业务压力的情况下,让应用系统持续运行一段时间,测试系统在这种条件下能否稳定运行。

7、实效恢复测试(failover testing)

针对冗余备份和负载均衡的系统。检验如果系统局部发生故障,用户是否能够继续使用系统,如果这种情况发生,用户将受多大程度影响。

2.2 应用领域分析

1、能力验证

performance testing,reliability testing,stress testing,failover testing

2、能力规划

load testing,configuration testing,stress testing

3、性能调优

configurationg testing,load testing,stress testing,failover testing

4、缺陷发现

concurrency testing,stress testing,failover testing

第3章性能计数器及性能分析方法

用来衡量被测系统当前的状况和进行性能测试结果分析。可在操作系统级、应用服务器级和数据库级别上查看和记录性能计数器的数值。

3.1 操作系统计数器及分析

1、Windows

Memory:available mbytes,pages/sec,pages read/sec,page faults/sec,cache bytes

Process:%processor time,page faults/sec,work set,private bytes

Processor:%processor time,%user time,%privileged time,%dpc time

Physical Disk:%disk time,average disk queue length,average disk read/write queue length,disk

reads(writes)/sec,average disk sec/read,average disk sec/transfer

Network Interface:bytes total/sec

System:%total processor time,file data operation/sec,processor queue length

2、unix

3、内存分析方法

用于分析系统有无遇到内存瓶颈,是否需要通过增加内存等手段提高系统性能表现。

首先查看memory/available mbytes;注意pages/sec,pages read/sec,page faults/sec(反映进行磁盘交换的频率);根据physical disk分析。

4、处理器分析方法

先看system\%Total processor time,然后看每个cpu的指标,最后分析。

5、磁盘I/O分析方法

计算每个磁盘的I/O数;然后与processor\privileged time合并分析;最后根据disk sec/transfer分析。

6、进程分析方法

察看%processor time,反映进程消耗的处理其时间;然后查看每个进程产生的页面失效,对于产生最多页面失效的进程要重点分析;了解进程的process/private bytes,看是否存在内存泄露。

7、网络分析方法

network interface\bytes total/sec 为发送和接收字节的速率,与当前带宽进行比较。

3.2 应用服务器计数器

1、IIS

2、J2EE应用服务器计数器

weblogic:

JVM:heap size;heap free

JDBC connection pool:waiting for connection current count;connection total count;max capacity;active connections current count

execute queue:execute thread current idle count;pending request oldest time;serviced request oldest time;serviced request total count;pending request current count;

3、数据库计数器

第4章性能测试工具原理

4.1 性能测试工具模型

性能测试工具只能帮助您实施性能测试,并不能帮助您完成性能测试的需求;

性能测试工具能够根据您的要求以各种方式提供报表,这些报表是分析的基础。

性能测试工具一般包括虚拟用户脚本产生器;压力产生器;用户代理;压力调度和控制系统;压力结果分析工具。

4.2 性能测试脚本录制时的协议类型

对于j2ee,建议选择http/https协议。

4.3 性能测试工具的选择与评估

工具支持被测系统运行的平台吗?

支持被测系统使用的协议吗?

相关文档
最新文档