分类: 项目管理
2009-09-28 12:24:09
磁针石:xurongzhong#gmail.com
近10年来,应用逐渐从“胖客户端”转为基于web的模式,涌现出来了大量的测试工具。
另外一个变化:Service Oriented Architecture (SOA)的涌现,性能不仅仅关注终端用户事务,还包括商务处理。这就给工具带来了复杂性。
加密也压缩等技术也影响自动化测试开展。其他的问题有流媒体支持。
自动化性能测试工具通常的组成:脚本模块、测试管理模块、负载生成器、分析器。
性能测试工具的评价:工具支持的功能(比如HTTPS协议),授权,Proof of Concept (POC),脚本能力,是压力测试工具还是方案、外部还是内部。
还可以考虑第3方测试。
性能测试环境最好实际环境一致,但是由于如下原因,往往无法达到这点。
服务器的数量和规格:如果数量上难以达到,规格上要尽量达到;
网络的带宽和连通性:
应用的层次:
应用数据库的容量:
所以典型的性能测试环境一般是实际环境的子集。
使用虚拟化的要注意:总线和网络的区别;虚拟网卡和实际网卡的区别。
如果可能,尽可能多使用一些客户端。注意客户端的负载均衡和使用ip欺骗技术、用户会话限制。
能否创建中间件级别的脚本,如果不可以,能否从表示层通过功能测试工具提供负载;或者能否利用你的工具可以捕捉的瘦客户端,比如ICA或者RDP。
是否需要处理低带宽的客户端。还要考虑网络潜在因素。可以使用网络仿真工具。
注意收集如下资料:
服务器数量(物理和虚拟的)、负载均衡策略、硬件列表、软件列表(不包含被测软件)、应用组件列表、外部链接。
还要考虑第3方软件使用的约束,比如针对防火墙的。
性能目标又称为:Service
Level Agreement (SLA)。
性能测试要尽早达成一致。涉及Chief information officer (CIO),Chief technology officer (CTO),Chief financial officer (CFO),部门领导以及开发、测试、基础架构人员、最终用户。
关注重点:可用性或运行时间;并发性、可扩展性、吞吐量;响应时间;还可以添加网络和服务器的利用率。
可用性是一个衡量指标,不仅仅是能ping通服务器就可以,需要验证大容量下的可用性。
并发性一般基于小时衡量,注意是活动用户。新软件的并发用户可以用80%原则推断,要考虑到使用高峰。
针对无连接的应用,一般用吞吐量衡量。一般以每分钟或者每秒来衡量。也可以基于用户模式衡量,熟练用户制造的压力会大点。
一般要在并发和吞吐量上多准备10%。
首先拿单个用户的做基准测试。
要考虑广域网的因素:数据量、数据吞吐量、数据误码率。
服务器资源的衡量:CPU、内存利用率;磁盘I/O、磁盘空间。
比如单个存储过程或者事务的时间。存在问题的地方可能有:占用大量数据的表示方法、低效的SQL、低效的网络利用、未检测的应用错误。
开发的代码修改可能影响到测试脚本
要确定用户经常使用的重要的、大数量的活动。步骤如下:
1, 定义和文档化每个执行步骤:每个步骤有合适的输入输出。
2, 确定所有数据和期待的响应
3, 确定事务包含的用户类型
4, 事务的连通性
5, 主动或者被动事务
脚本录制后需要验证单用户和多用户的重放。
准备数据的工具有:MS Excel、FileAid Client/Server。
3种重要的数据:输入数据、目标数据、运行时数据。
典型的数据有:用户证书、搜素条件、关联文档。
数据测试的难点:数据量和回滚。
一些测试类型:基准测试、负载测试、压力测试、Soak or stability test、冒烟测试、隔离测试。
要注意考虑思考时间,会影响事务执行比例;步长会影响事务吞吐量。
负载注入方式:大爆炸、Ramp-up,Ramp-up (with step),Ramp up (with step), Ramp down (with step),Delayed start。
一般的性能测试步骤:每个事务的基准测试、每个事物的负载测试、单个事务的隔离测试、事务组的负载测试(可能发生数据库锁竞争)、事务组隔离测试、事务组浸透测试、事务组压力测试、非性能测试(比如负载均衡)。
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).
准备测试环境、注入环境、事务的确定和脚本化、确定和创建测试数据、测试环境的监控、准备和测试执行、问题处理