软件性能测试与调优指南 下载本文

3.2. 测试软件

(描述需要测试的应用软件)

3.3. 测试人员

(描述测试人员)

3.4. 测试目标

(描述本次测试任务的目标)

3.5. 测试日程

表六:测试日程示例

测试阶段 测试任务 工作量估计 (人日) 第一阶段 方案设计、案例设计 方案设计、案例设计review …… 2 2 黄锡波 焦求智 2005-08-16 2005-08-22 2005-08-17 2005-08-23 人员分配 开始时间 截止时间

4 设计场景

4.1. 设计性能测试的测试案例

通常有下列测试案例:在线用户数、并发请求、峰值响应、压力持续。

4.2. 性能测试案例设计模板

提示:详见附录8 性能测试案例模板

软件性能测试与调优指南 Page 9 of 36

4.3. 设计场景示例

下面是设计场景的示例 空载

应用系统起来后,不登录任何用户,不做任何业务,记录系统稳定下来时的Memory、CPU、DISKIO,作为性能测试基点。 基线在线用户

仅登录一个用户。记录测试过程中Memory、CPU、DISKIO的变化。重复测试30次测试一个用户登录的平均响应时间。

最大在线用户数

每隔10秒登录10、30、60个用户,直到系统可以接受的最大用户数(2000个)为止。记录测试过程中Memory、CPU、DISKIO的变化。重复测试30次,测试每个用户平均登录响应时间。 基线查询

一般是在足够的数据库容量中,仅有一个用户查询满足各条件的,一次返回200条记录的结果集,并分页显示,每页50条记录。记录过程中Memory、CPU、DISKIO的变化。重复测试30次,测试用户查询平均响应时间。 并发查询

一般是在足够的数据库容量中,分别以10、50、100、300个用户并发查询满足各条件的,一次返回200条记录的结果集,并分页显示,每页50条记录。记录过程中Memory、CPU、DISKIO的变化。重复测试30次,测试每个用户查询平均响应时间。 基线录入

一般是在足够的数据库容量中,仅有一个用户录入数据插入到数据库中。记录过程中Memory、CPU、DISKIO的变化。重复测试30次,测试用户录入平均响应时间。 并发录入

一般是在足够的数据库容量中,分别以10、50、100、300个用户并发录入数据插入到数据库中。记录过程中Memory、CPU、DISKIO的变化。重复测试30次,测试每个用户录入平均响应时间。

循环查询

一般是在足够的数据库容量中,分别以10、50、100、300个用户循环查询满足各条件的,一次返回200条记录的结果集,并分页显示,每页50条记录。记录过程中Memory、CPU、DISKIO的变化。重复测试30次,测试每个用户查询平均响应时间。 混合场景

一般是在足够的数据库容量中,部分用户并发查询、部分用户并发录入、部分用户循环查询。并逐渐增加查询、录入的用户数直到系统可以接受的最大用户数为止。记录过程中Memory、CPU、DISKIO的变化。重复测试30次,测试每个用户查询平均响应时间、录入平均响应时间。 长时间测试(疲劳强度测试):混合场景

一般是在足够的数据库容量中,部分用户并发查询、部分用户并发录入、部分用户循环查询。并逐渐增加查询、录入的用户数直到系统可以接受的最大用户数为止。记录过程中Memory、CPU、DISKIO的变化。不停重复测试,运行时间3天,测试每个用户查询平均响应时间、录入平均响应时间。

软件性能测试与调优指南 Page 10 of 36

5 根据场景编写程序、编写脚本、修改应用系统等

5.1. 程序编写

通常情况下,需要进行以下的测试程序编写: 模拟登录用户向应用系统发生业务请求; 批量测试数据生成程序;

Memory、CPU、DISKIO监控程序(一般用于HP-UX、Solaris、AIX、Linux等操作系统); 测试日志分析程序;

测试结果数据、图像生成程序。

5.2. 脚本编写

通常情况下,需要进行以下的测试脚本编写:

采用Jmeter模拟前端,用户向应用系统发生业务请求;

或者,采用LoadRunner录制用户与应用系统之间发生交互过程的脚本。

5.3. 应用程序修改

通常情况下,需要进行以下的应用程序修改: 权限控制修改; 时间标志; 响应标志。

6 执行性能测试

6.1. 准备性能测试环境

硬件、系统软件、网络、存储、测试程序、测试工具

一个充分准备好的测试环境有三个要点:一个稳定、可重复的测试环境,能够保证测试结果的

软件性能测试与调优指南 Page 11 of 36

正确;保证达到测试执行的技术需求;保证得到正确的、可重复的以及易理解的测试结果。

测试数据

在初始的测试环境中需要输入一些适当的测试数据,目的是识别数据状态并且验证用于测试的测试案例,在正式的测试开始以前对测试案例进行调试,将正式测试开始时的错误降到最低。在测试进行到关键过程环节时,非常有必要进行数据状态的备份。制造初始数据意味着将合适的数据存储下来,需要的时候恢复它,初始数据提供了一个基线用来评估测试执行的结果。 系统配置

测试环境中各种系统软件、测试工具、测试软件的配置,对测试的结果可能都有重大影响,因此,必须认真进行系统配置的管理,并测试前后,以及修改前后,进行相应的备份。

通常需要仔细检查系统的配置有:

操作系统配置:硬件的配置(CPU、内存、硬盘等)、核心参数、TCP/IP参数以及补丁的情况等。这里对操作系统的配置,除了更新最新的补丁程序以保证应用程序正常运行之外,

就是调整TCP/IP参数、文件描述符,对于个别操作系统还有其它特别的参数调整。

JVM的配置:-Xms、-Xmx、-verbose:gc、-XX:MaxPermSize、-Xmn等参数的配置。

Server配置:线程数、连接参数、执行队列参数等。 JDBC配置:连接池配置。 WEB配置、JMS配置、EJB配置。

数据库配置:核心参数、SGA、进程数和游标数等。 提示:系统配置的详细资料可参阅文档《J2EE应用调优指南》。

6.2. 执行性能测试

6.2.1 执行性能测试

在性能测试的执行过程中,主要需要关注的是应用系统的各项响应指标和系统资源的各项指标。

应用系统

系统响应记录

瓶颈分析

系统资源

利用记录:CPU、内存、磁盘I/O、通讯 瓶颈记录

配置调整、资源调整、数据库优化、程序标记

软件性能测试与调优指南 Page 12 of 36