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