Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19911762
  • 博文数量: 679
  • 博客积分: 10495
  • 博客等级: 上将
  • 技术积分: 9308
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-18 10:51
文章分类

全部博文(679)

文章存档

2012年(5)

2011年(38)

2010年(86)

2009年(145)

2008年(170)

2007年(165)

2006年(89)

分类: 项目管理

2009-09-28 12:24:09

有效性能测试的基础


2009-09-28

磁针石:xurongzhong#gmail.com

博客:oychw.cublog.cn


§2.1 选择合适的性能测试工具

       10年来,应用逐渐从“胖客户端”转为基于web的模式,涌现出来了大量的测试工具。

       另外一个变化:Service Oriented Architecture (SOA)的涌现,性能不仅仅关注终端用户事务,还包括商务处理。这就给工具带来了复杂性。

       加密也压缩等技术也影响自动化测试开展。其他的问题有流媒体支持。

       自动化性能测试工具通常的组成:脚本模块、测试管理模块、负载生成器、分析器。

       性能测试工具的评价:工具支持的功能(比如HTTPS协议),授权,Proof of Concept (POC),脚本能力,是压力测试工具还是方案、外部还是内部。

       还可以考虑第3方测试。

 

§2.2 设计合适的性能测试环境

       性能测试环境最好实际环境一致,但是由于如下原因,往往无法达到这点。

              服务器的数量和规格:如果数量上难以达到,规格上要尽量达到;

              网络的带宽和连通性:

              应用的层次:

              应用数据库的容量:

       所以典型的性能测试环境一般是实际环境的子集。

       使用虚拟化的要注意:总线和网络的区别;虚拟网卡和实际网卡的区别。

       如果可能,尽可能多使用一些客户端。注意客户端的负载均衡和使用ip欺骗技术、用户会话限制。

       能否创建中间件级别的脚本,如果不可以,能否从表示层通过功能测试工具提供负载;或者能否利用你的工具可以捕捉的瘦客户端,比如ICA或者RDP

       是否需要处理低带宽的客户端。还要考虑网络潜在因素。可以使用网络仿真工具。

       注意收集如下资料:

              服务器数量(物理和虚拟的)、负载均衡策略、硬件列表、软件列表(不包含被测软件)、应用组件列表、外部链接。

       还要考虑第3方软件使用的约束,比如针对防火墙的。

§2.3 设定合适现实的性能目标

       性能目标又称为:Service Level Agreement (SLA)

      性能测试要尽早达成一致。涉及Chief information officer (CIO),Chief technology officer (CTO),Chief financial officer (CFO),部门领导以及开发、测试、基础架构人员、最终用户。

       关注重点:可用性或运行时间;并发性、可扩展性、吞吐量;响应时间;还可以添加网络和服务器的利用率。

       可用性是一个衡量指标,不仅仅是能ping通服务器就可以,需要验证大容量下的可用性。

       并发性一般基于小时衡量,注意是活动用户。新软件的并发用户可以用80%原则推断,要考虑到使用高峰。

       针对无连接的应用,一般用吞吐量衡量。一般以每分钟或者每秒来衡量。也可以基于用户模式衡量,熟练用户制造的压力会大点。

       一般要在并发和吞吐量上多准备10%

       首先拿单个用户的做基准测试。

       要考虑广域网的因素:数据量、数据吞吐量、数据误码率。

       服务器资源的衡量:CPU、内存利用率;磁盘I/O、磁盘空间。

 

§2.4  确定应用足够稳定,可以开展性能测试

       比如单个存储过程或者事务的时间。存在问题的地方可能有:占用大量数据的表示方法、低效的SQL、低效的网络利用、未检测的应用错误。

 

§2.5  代码冻结

       开发的代码修改可能影响到测试脚本

 

§2.6 确定和代码化重要交易事务

       要确定用户经常使用的重要的、大数量的活动。步骤如下:

1,  定义和文档化每个执行步骤:每个步骤有合适的输入输出。

2,  确定所有数据和期待的响应

3,  确定事务包含的用户类型

4,  事务的连通性

5,  主动或者被动事务

脚本录制后需要验证单用户和多用户的重放。

 

§2.7  提供高质量充分的测试数据

       准备数据的工具有:MS ExcelFileAid Client/Server

       3种重要的数据:输入数据、目标数据、运行时数据。

       典型的数据有:用户证书、搜素条件、关联文档。

       数据测试的难点:数据量和回滚。

 

§2.8  确保精确的性能测试设计

       一些测试类型:基准测试、负载测试、压力测试、Soak or stability test、冒烟测试、隔离测试。

       要注意考虑思考时间,会影响事务执行比例;步长会影响事务吞吐量。

       负载注入方式:大爆炸、Ramp-upRamp-up (with step)Ramp up (with step), Ramp down (with step)Delayed start

       一般的性能测试步骤:每个事务的基准测试、每个事物的负载测试、单个事务的隔离测试、事务组的负载测试(可能发生数据库锁竞争)、事务组隔离测试、事务组浸透测试、事务组压力测试、非性能测试(比如负载均衡)。

 

§2.9  服务器和网络Key Performance Indicators (KPIs)

Windows系统常用指标:处理器使用百分比、前10个进程、可用内存、内存换页、处理器队列长度、上下文切换、物理内存(平均磁盘队列长度)、物理内存(% Disk Time)、网络接口(包接收错误)、网络接口(包发送错误)。

       Web和应用服务器层:

IIS (Microsoft Internet Information Server)

Oracle application server (OC4J)

Oracle WebLogic (JRockit)

IBM WebSphere

JBOSS

       数据库服务器层:

           Microsoft SQL Server

Oracle

IBM DB2

MySQL

Sybase

Informix

       大型机主要关注:memory and CPU utilization per job and Logical Partition (LPAR).

§2.10           为有效性能测试准备足够的时间

准备测试环境、注入环境、事务的确定和脚本化、确定和创建测试数据、测试环境的监控、准备和测试执行、问题处理

阅读(3148) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~