1 第 1 页
目录
前言 ......................................................................................................................................................................3
1第一章系统性能测试概述 .................................................................................................................................3
1.1 被测系统定义 ..........................................................................................................................................3
1.1.1 功能简介 .......................................................................................................................................4
1.1.2 性能测试指标 ..............................................................................................................................4
1.2 系统结构及流程......................................................................................................................................4
1.2.1 系统总体结构 ..............................................................................................................................4
1.2.2 功能模块描述 ..............................................................................................................................4
1.2.3 业务流程 .......................................................................................................................................5
1.2.4 系统的关键点描述(KP).......................................................................................................5
1.3 性能测试环境 ..........................................................................................................................................5 2 第二章 性能测试 ................................................................................................................................................6 2.1 压力测试 ...................................................................................................................................................6
2.1.1 压力测试概述 ..............................................................................................................................6
2.1.2 测试目的 .......................................................................................................................................7
2.1.3 测试方法及测试用例 .................................................................................................................7
2.1.4 测试指标及期望..........................................................................................................................8
2.1.5 测试数据准备 ..............................................................................................................................9
2.1.6 运行状况记录 ............................................................................................................................99
3第三章 测试过程及结果描述...................................................................................................................... 110
3.1 测试描述 .............................................................................................................错误~未定义书签。
3.2 测试场景 .............................................................................................................错误~未定义书签。
3.3 测试结果 .............................................................................................................错误~未定义书签。
4 第四章 测试报告 ..............................................................................................................................................14
2 第 2 页
前言
在web环境下做一个基本的学生选课系统,它主要分4个功能模块:(1)登入模块(2)注册模块(3)选课模块(4)查询、修改、删除模块
在学生日渐增多,老师日渐忙碌,系统能够实现最基本的选课,可以有利于学生查询课程不知道选了什么课程的困难。系统能稳定在什么样的性能水平,面临学生增加时,系统能否经受住“考验”,这些问题需要通过一个完整的性能测试来给出答案。
本《性能测试规划书》即是基于上述考虑,参考科学的性能测试方法而撰写的,用以指导即将进行的系统的性能测试。
1第一章学生选课系统性能测试概述
1.1 被测系统定义
学生选课系统作为本次测试的被测系统(注:以下所有针对被测系统地描述均为针对学生选课系统进行的),学生选课系统是由php语言开发的应用软件,后台应用了education数据库,该系统包括主要功能有:管理员的增、删、改、查,学生的选课、注册、查询,还有列出已有用户,在这些功能中都存在大量数据查询以及对该学生选课的统计,在本次测试中,将针对这些大数据量的查询、统计功能进行压力测试,检查并评估在模拟环境中,系统对负载的承受能力,在不同的用户连接情况下,系统的吞吐能力和响应能力,以及在预计的数据容量中,系统能够容忍的最大用户数。 1.1.1 功能简介
主要功能简介和功能流程图。
1、登录模块:该模块中,输入登录号、和相应的密码,验证成功后即可登录。并且根 据选择的角色的不同,功能界面也不同。在本系统中,角色分为:2种 学生:stu 老师:tec.
2、 注册模块:实现学生用户的注册。
3、学生登陆界面:学生用户登录后,只可以查看和修改自己的相关信息,能够实现课
3 第 3 页
程信息的查看与选课,及修改和退订课程。
4、教师界面:教师用户登录后,可以查看和修改及删除学生、课程、及选课信息,最后还可以进行成绩的录入。
学生选课系统
登录界面参数设置与库的操作 软件安装
面
学学户列设设 生生置置出的的与学已选注数生有 课册据所 用库选 连课
接程 学管生理查员 询的
信增 息删 改 查
1.1.2 性能测试指标
本次测试是针对学生选课系统在应对密集整转的大压力下而进行的,主要需要获得如下的测试指标。
1、应用系统的负载能力:即系统所能容忍的最大用户数量,也就是在正常的响应时间中,系统能够支持的最多的客户端的数量。
2、应用系统的吞吐率:即应用系统在单位时间内完成的交易量,也就是在单位时间内,应用系统针对不同的负载压力,所能完成的交易数量。
3、系统的响应能力:即在各种负载压力情况下,系统的响应时间,也就是从客户端请求发起,到服务器端应答返回所需要的时间,包括网络传输时间和服务器处理时间。
4、应用系统的可靠性:即在连续工作时间状态下,系统能够正常运行的时间,即在连续工作时间段内没有出错信息。
4 第 4 页
1.2 系统结构及流程
学生选课系统在实际生产中的体系结构跟本次性能测试所采用的体系结构是一样的,交易流程也完全一致的。不过,由于硬件条件的限制,本次性能测试的硬件平台跟实际生产环境略有不同。
1.2.1 系统总体结构
描述本系统的总体结构,包括:硬件组织体系结构、网络组织体系结构、软件组织体系结构和功能模块的组织体系结构。
1.2.2 功能模块
用户名:131307013
口令:123
说明:学生选课系统允许同一个用户在同一台服务器上多次登录。 1( 本次性能测试中各类操作都是由若干功能模块组成的,每个功能都根据其执行特点
分成了若干操作步骤,每个步骤就是一个功能点(即功能模块),本次压力测试主要
涉及的功能模块以及所属操作如下表业务流程
本次性能测试中,选择的各类交易的业务流程如下:
查询的业务流程只是单一步骤的,即:输入查询条件后获取查询结果,因此在本次性能测试中只作为一个事务处理。
1.2.3 关键点描述(KP)
本次性能测试的关键点,就是查看学生选课系统在不同用户数量(并发)压力下的表现,即:支持的并发用户数目和并发用户发送频率,以及在较大压力下,系统的处理能力以及CPU、数据库I/O和内存的使用情况,并找出相应的性能瓶颈。
5 第 5 页
1.3 性能测试环境
本次性能测试环境与真实运行环境硬件和网络环境有所不同,是真实环境的缩小,数据库是真实环境数据库的一个复制(或缩小),本系统采用标准的bS结构,客户端通过浏览器去访问。
其中具体的硬件和网络环境如下:
, 操作系统: Windows 7
, 网络环境: LAN(10M)
, 数据库:education
, 客户端: PC (Windows)
2 第二章 性能测试
从广泛意义上讲性能测试包括:压力测试、稳定性测试、负载能力测试和可扩展性测试等。在不同应用系统的性能测试中,需要根据应用系统的特点和测试目的的不同来选择具体的测试方案,本次学生选课系统的性能测试主要是采用通常的压力测试模式来执行的,即:逐步增加压力,查看应用系统在各种压力状况下的性能表现。 在本次性能测试中,将使用美科利(Mercury)公司的性能测试LoadRunner11对web项目进行了测试。
2.1 压力测试
在性能测试中,压力测试主要是为了获取系统在较大压力状况下的性能表现而设计并实现的,压力测试主要是获取系统的性能瓶颈和系统的最大吞吐率。 2.1.1 压力测试概述
本次测试是针对学生选课系统在应对密集整转的压力下业务处理能力的测试,检验系统的吞吐率。本系统的压力测试主要是针对学生选课功能、学生查询、管理员的增、删、改、查、列出已有用户、注册信息等等。
6 第 6 页
2.1.2 测试目的
压力测试的目的就是检验系统的最大吞吐量,检验现行的业务系统在各种压力交易量下的运行状况,检验系统地运行瓶颈,获取系统的处理能力等等。
本次针对学生选课系统所进行的压力测试的测试目的为:
, 给出学生选课系统当前的性能状况
, 定位学生选课系统性能瓶颈或潜在性能瓶颈
, 总结一套合理的、可操作的、适合公司现实情况的性能测试方案,为后续的性
能测试工作提供基本思路。
2.1.3 测试方法及测试用例
使用美科利公司(Mercury)的性能测试软件LoadRunner,对现行的学生选课系统进行脚本录制、测试回放、逐步加压和跟踪记录。测试过程中,由LoadRunner的管理平台调用各台测试前台,发起各种组合的交易请求,并跟踪记录服务器端的运行情况和返回给客户端的运行结果。
使用的测试方法用例包括:
例如:学生选课系统
业务类型 用例一 用例二 用例三
学生登录
学生注册
学生选课
管理员的管理
综合统计(XXX报表)
针对每个测试用例,都将采用逐步加压和瞬间加压两种客户端连接方式进行,查看服务器端在客户端的连接数量变化过程中对应的处理能力,以更好的定位系统在达到多少并发或压力下我们的系统出现了不稳定。
7 第 7 页
2.1.4 测试指标及期望
在本次性能测试中,各类测试指标包括测试中应该达到的某些性能指标,这些性能
指标均是来自应用系统设计开发时遵循的业务需求,当某个测试的某一类指标已经超出
了业务需求的要求范围,则测试已经达到目的,即可终止压力测试。 2.1.4.1 应用软件级别的测试指标:
, CPU的利用率小于40%
, 内存占用小于80%
, Processor queue length 小于2
, Response time 小于 1s
, 吞吐量throughtput大于90%
, 业务执行的平均响应时间(期望值:<15s)>15s)>
, 不同并发用户数的状况下的记录上述值
2.1.4.2 网络级别的测试指标:
, 吞吐量:单位时间内网络传输数据量
, 冲突率:在以太网上监测到的每秒冲突数 2.1.4.3 操作系统级别的测试指标:
, 进程/线程交换率:进程和线程之间每秒交换次数
, CPU利用率:即CPU占用率(,)
, 系统CPU利用率:系统的CPU占用率(,)
, 用户CPU利用率:用户模式下的CPU占用率(,)
, 磁盘交换率:磁盘交换速率
, 中断速率:CPU每秒处理的中断数
2.1.4.4 数据库级别的测试指标:
, 数据库I/O的流量大小
8 第 8 页
, 数据库锁资源的使用数量
, 数据库的并发连接数:客户端的最大连接数
2.1.5 测试数据准备
2.1.5.1 案例数据:满负荷压力
登录界面的代码:
login()
{
web_submit_data("ckname.php",
"Action=http://localhost/shujukulianjie/ckname.php",
"Method=POST",
"RecContentType=text/html",
"Referer=http://localhost/shujukulianjie/index.php",
"Snapshot=t3.inf",
"Mode=HTML",
ITEMDATA,
"Name=uname", "Value=131307330", ENDITEM,
"Name=upw", "Value=123", ENDITEM,
"Name=js", "Value=stu", ENDITEM,
LAST);
web_submit_data("ckname.php_2",
"Action=http://localhost/shujukulianjie/ckname.php",
"Method=POST",
"RecContentType=text/html",
"Referer=http://localhost/shujukulianjie/index.php",
"Snapshot=t4.inf",
"Mode=HTML",
9 第 9 页
ITEMDATA,
"Name=uname", "Value=131307330", ENDITEM,
"Name=upw", "Value=123", ENDITEM,
"Name=js", "Value=stu", ENDITEM,
LAST);
return 0;
}
2.1.6 运行状况记录
记录可扩展性测试中的测试结果及其系统的运行状况。除了记录测试指标以外,应
该结合测试实时记录系统各个层次的资源和参数。主要包括:
, 硬件环境资源
, , 服务器操作系统参数
, 网络相关参数
, 数据库相关参数:具体数据库参数有所不同,结合各个数据库独有的特点记录
10 第 10 页
3 第三章 测试过程及结果描述
3.1 测试描述
在测试数据准备完备以后,测试将进行。记录每次测试的结果数据,分析测试结果对系统进行全面评估。
3.2 测试场景
测试中,使用逐步加压的模式,测试运行场景安排如下:
1. 每隔2秒增加1个用户连接,最多增加到15个用户,查看并记录运行情况
2. 每隔2秒增加2个用户连接,最多增加到30个用户,查看并记录运行情况
每个场景都包括:用户登录-业务操作-业务完成-退出系统,所有用例都按以上场景进行测试,由于pc性能限制,为了更准确模拟现场环境,将运行的所有脚本部署在8台LoadRunner终端上,主要目的就是检查在不同的压力的情况下,业务系统的性能表现。
3.3 测试结果
执行每个场景时记录以下相应的数据
App服务器主机上的CPU利用率:Windows(Linux)资源
15个人cpu
30个人的cpu
11 第 11 页
15个人的虚拟用户的响应时间
30个人的虚拟用户的响应时间
测试中每秒的点击率如下:
15个人的每秒点击率
30个人的每秒点击率
交易的吞吐率(每秒处理数据量):
12 第 12 页
15个人的吞吐量
30个人的吞吐量
吞吐量-虚拟用户(合并图)
15个人吞吐量-虚拟用户(合并图)
30个人吞吐量-虚拟用户(合并图)
13 第 13 页
4第四章 测试报告
在XXX系统的性能测试结束,根据测试结果,将生成测试报告。 对应的文档名称如下:
, 《性能测试报告》
15个人的选课系统的分析结果
30个人的选课系统的分析结果
14 第 14 页
框架软件性能测试方案
框架性能测试方案
变更记录
目录
前言 ......................................................................................................................................................................3 1第一章系统性能测试概述 .................................................................................................................................3
1.1 被测系统定义 ..........................................................................................................................................3
1.1.1 功能简介 .......................................................................................................................................4 1.1.2 性能测试指标 ..............................................................................................................................4 1.2 系统结构及流程......................................................................................................................................4
1.2.1 系统总体结构 ..............................................................................................................................4 1.2.2 功能模块描述 ..............................................................................................................................4 1.2.3 业务流程 .......................................................................................................................................5 1.2.4 系统的关键点描述(KP).......................................................................................................5 1.3 性能测试环境 ..........................................................................................................................................5 2 第二章 性能测试 ................................................................................................................................................6
2.1 压力测试 ...................................................................................................................................................7
2.1.1 压力测试概述 ..............................................................................................................................7 2.1.2 测试目的 .......................................................................................................................................7 2.1.3 测试方法及测试用例 ...........................................................................错误!未定义书签。 2.1.4 测试指标及期望..........................................................................................................................8 2.1.5 测试数据准备 ..............................................................................................................................9 2.1.6 运行状况记录 ......................................................................................................................... 109
3第三章 测试过程及结果描述...................................................................................................................... 110
3.1 测试描述 .............................................................................................................错误!未定义书签。 3.2 测试场景 .............................................................................................................错误!未定义书签。 3.3 测试结果 .............................................................................................................错误!未定义书签。 4 第四章 测试报告 ..............................................................................................................................................11
前言
本《框架性能测试方案》基于框架的稳定、安全以及性能考虑,参考科学的性能测试方法而撰写的,用以指导即将进行的系统的性能测试。
1第一章 框架系统性能测试概述
1.1 被测系统定义
框架系统作为本次测试的被测系统(注:以下所有针对被测系统地描述均为针对框架系统进行的),框架系统是由java编写的一个MVC架构的应用软件,采用SSH2
框架,后台应用了Oracle10g数据库,该系统包括主要功能有:管理员管理、角色管理、日志管理、模块管理以及字典库管理,在这些功能中都存在大数据量查询以及下载,在本次测试中,将针对这些大数据量的查询、下载功能进行压力测试,检
查并评估在模拟环境中,系统对负载的承受能力,在不同的用户连接情况下,系统的吞吐能力和响应能力,以及在预计的数据容量中,系统能够容忍的最大用户数。
1.1.1 功能简介
略
1.1.2 性能测试指标
本次测试是针对框架系统在应对密集整转的大压力下而进行的,主要需要获得如下的测试指标。
1、应用系统的负载能力:即系统所能容忍的最大用户数量,也就是在正常的响应时间中,系统能够支持的最多的客户端的数量。
2、应用系统的吞吐率:即应用系统在单位时间内完成的交易量,也就是在单位时间内,应用系统针对不同的负载压力,所能完成的交易数量。
3、系统的响应能力:即在各种负载压力情况下,系统的响应时间,也就是从客户端请求发起,到服务器端应答返回所需要的时间,包括网络传输时间和服务器处理时间。
4、应用系统的可靠性:即在连续工作时间状态下,系统能够正常运行的时间,即在连续工作时间段内没有出错信息。
1.2 系统结构及流程
1.2.1 系统总体结构
描述本系统的总体结构,包括:硬件组织体系结构、网络组织体系结构、软件组织体系结构和功能模块的组织体系结构。
1.2.2 功能模块
1. 本次性能测试中各类操作都是由若干功能模块组成的,每个功能都根据其执行特点
分成了若干操作步骤,每个步骤就是一个功能点(即功能模块),本次压力测试主要涉及的功能模块以及所属操作如下表业务流程 本次性能测试中,选择的各类交易的业务流程如下:
查询的业务流程只是单一步骤的,即:输入查询条件后获取查询结果,因此在本次性能测试中只作为一个事务处理。
1.2.3 关键点描述
本次性能测试的关键点,就是查看框架系统在不同用户数量(并发)压力下的表现,即:支持的并发用户数目和并发用户发送频率,以及在较大压力下,系统的处理能力以及CPU、数据库I/O和内存的使用情况,并找出相应的性能瓶颈。
1.3 性能测试环境
具体的硬件和网络环境如下:
? 中间件服务器:Weblogic10 ? 操作系统: Linux Suse
4、应用系统的可靠性:即在连续工作时间状态下,系统能够正常运行的时间,即在连续工作时间段内没有出错信息。
1.2 系统结构及流程
1.2.1 系统总体结构
描述本系统的总体结构,包括:硬件组织体系结构、网络组织体系结构、软件组织体系结构和功能模块的组织体系结构。
1.2.2 功能模块
1. 本次性能测试中各类操作都是由若干功能模块组成的,每个功能都根据其执行特点
分成了若干操作步骤,每个步骤就是一个功能点(即功能模块),本次压力测试主要涉及的功能模块以及所属操作如下表业务流程
本次性能测试中,选择的各类交易的业务流程如下:
查询的业务流程只是单一步骤的,即:输入查询条件后获取查询结果,因此在本次性能测试中只作为一个事务处理。
1.2.3 关键点描述
本次性能测试的关键点,就是查看框架系统在不同用户数量(并发)压力下的表现,即:支持的并发用户数目和并发用户发送频率,以及在较大压力下,系统的处理能力以及CPU、数据库I/O和内存的使用情况,并找出相应的性能瓶颈。
1.3 性能测试环境
具体的硬件和网络环境如下:
? 中间件服务器:Weblogic10
? 操作系统: Linux Suse
? 网络环境: LAN(10M)
? 数据库:Oracle 11g
? 客户端: PC (Windows)
网络拓扑和结构图如下:
中间件服务器
客户机B
2 第二章 性能测试
从广泛意义上讲性能测试包括:压力测试、稳定性测试、负载能力测试和可扩展性测试等。在不同应用系统的性能测试中,需要根据应用系统的特点和测试目的的不同来选择具体的测试方案,本次框架系统的性能测试主要是采用通常的压力测试模式来执行的,即:逐步增加压力,查看应用系统在各种压力状况下的性能表现。
2.1 压力测试
在性能测试中,压力测试主要是为了获取系统在较大压力状况下的性能表现而设计并实现的,压力测试主要是获取系统的性能瓶颈和系统的最大吞吐率。
2.1.1 压力测试概述
本次测试是针对框架系统在应对密集整转的压力下业务处理能力的测试,检验系统的吞吐率。本系统的压力测试主要是针对主要系统登录、业务功能使用以及数据查询下载应用高峰时期,并发用户数较多的时候的处理能力等等。
2.1.2 测试目的
压力测试的目的就是检验系统的最大吞吐量,检验现行的业务系统在各种压力交易量下的运行状况,检验系统地运行瓶颈,获取系统的处理能力等等。
本次针对框架系统所进行的压力测试的测试目的为:
? 给出框架系统当前的性能状况
? 定位框架系统性能瓶颈或潜在性能瓶颈
? 总结一套合理的、可操作的、适合公司现实情况的性能测试方案,为后续的性
能测试工作提供基本思路。
2.1.3 测试指标及期望
在本次性能测试中,各类测试指标包括测试中应该达到的某些性能指标,这些性能指标均是来自应用系统设计开发时遵循的业务需求,当某个测试的某一类指标已经超出了业务需求的要求范围,则测试已经达到目的,即可终止压力测试。
2.1.3.1 应用软件级别的测试指标:
DB服务器:
服务器硬件配置如下:
服务器品牌: DELL R710专业服务器
CPU:双核(4个);
内存:4G;
硬盘空间:C:20G; D:100G
性能要求如下:
CPU的利用率小于10%
内存占用小于30%
处理器队列长度小于5
响应时间小于 3s
吞吐量大于90%
业务执行的平均响应时间(期望值:<>
不同并发用户数的状况下的记录上述值
支付网关服务器:
服务器硬件配置如下:
服务器品牌: DELL R710专业服务器
CPU:双核(2个);
内存:2G;
硬盘空间:C:10G; D:50G
性能要求如下:
CPU的利用率小于10%
内存占用小于30%
处理器队列长度小于5
响应时间(支付交易速度)<>
吞吐量大于90%
业务执行的平均响应时间(期望值:<>
不同并发用户数的状况下的记录上述值
管理后台、商户后台、勾对服务器:
服务器硬件配置如下:
服务器品牌: DELL R710专业服务器
CPU:双核(2个);
内存:2G;
硬盘空间:C:10G; D:50G
性能要求如下:
CPU的利用率小于10%
内存占用小于20%
处理器队列长度小于5
响应时间小于(查询速度) 3s
吞吐量大于90%
业务执行的平均响应时间(期望值:<>
不同并发用户数的状况下的记录上述值
2.1.3.2 操作系统级别的测试指标:
DB服务器:
服务器硬件配置如下:
服务器品牌: DELL R710专业服务器
CPU:双核(4个);
内存:4G;
硬盘空间:C:20G; D:100G
性能要求如下:
系统CPU利用率:系统的CPU占用率(<20%)>20%)><>
用户CPU利用率:用户模式下的CPU占用率(<>
支付网关服务器:
服务器硬件配置如下:
服务器品牌: DELL R710专业服务器
CPU:双核(2个);
内存:2G;
硬盘空间:C:10G; D:50G
性能要求如下:
系统CPU利用率:系统的CPU占用率(<>
系统内存利用率:系统的内存占用率(<>
用户CPU利用率:用户模式下的CPU占用率(<>
管理后台、商户后台、勾对服务器:
服务器硬件配置如下:
服务器品牌: DELL R710专业服务器
CPU:双核(2个);
内存:2G;
硬盘空间:C:10G; D:50G
性能要求如下:
系统CPU利用率:系统的CPU占用率(<>
系统内存利用率:系统的内存占用率(<>
用户CPU利用率:用户模式下的CPU占用率(<>
2.1.4 测试数据准备
2.1.4.1 案例数据:满负荷压力
根据测试系统的硬件条件,选择满负荷的压力,在系统的资源使用基本维持在90%左右的状况下,测试框架系统的处理能力。
数据准备工作包括:
测试数据库需具备与真实环境成一定比例或基本一致的数据
2.1.5 运行状况记录
记录可扩展性测试中的测试结果及其系统的运行状况。除了记录测试指标以外,应该结合测试实时记录系统各个层次的资源和参数。主要包括:
? 硬件环境资源
? 服务器操作系统参数
? 网络相关参数
? 数据库相关参数:具体数据库参数有所不同,结合各个数据库独有的特点记录
3 第三章 测试过程及结果描述
3.1 测试描述
请测试结束后进行补充
3.2 测试场景
请测试结束后进行补充
3.3 测试结果
请测试结束后进行补充
4第四章 测试报告
请测试结束后进行补充
软件性能测试执行方案模板
×××软件性能测试执行方案 一、 测试需求
1、测试目的
描述测试的目的。
2、软件系统性能需求
描述测试需求及相应的需求分析结果。
二、 测试策略
描述制定的测试策略。
三、 测试场景
1、测试场景1
测试场景名称 …… 备注
数据量 …… 总用户数 ……
任务名称 执行用户数
……(执行条件为×××) ……
……(执行条件为×××) ……
………………
相关执行参数 设置要求
用户加压方式 说明用户加压的方式,以及初始化方式。 所有与本测试
场景相关的运循环执行方式 说明执行时的循环执行方式。
行参数、脚本录
制时的参数等集合点 说明是否加入集合点,在何处加入集合点。 皆可在此处给
出。 思考时间 说明脚本中思考时间的处理方式。
迭代间隔时间 说明迭代间隔时间的处理方式。
事务方式 说明一个事务包括哪些内容,如一个Action。
结果检查 说明是否加入结果检查,在何处加入结果检查。 运行日志 说明运行期间工具运行日志的记录方式。
退出方式 说明运行结束时退出的处理方式。
错误处理 说明运行时出现错误,工具如何处理。
脚本参数化 ×××任务脚本的参数应×××;……
………… ………………
监视指标 计数器含义 期望值
CPU 如果每个任务
都有不同的期
望值,应给出所内存
有任务的期望
值。 磁盘
网卡
IIS
SQL Server
………… ……………… ………………
说明 对测试执行或脚本录制过程中的其他问题进行说明。
比如,某些情况下,总用户数不固定,就可对用户的
增加方式等进行说明。
2、测试场景2
……
四、 测试环境
如果需要多种测试环境,需要对每种环境单独说明,并说明每种环境针对的测试场景。测试环境应说明服务器(软硬件配置)、客户端(软硬件配置)、网络结构、测试工具等。如果有跟踪测试,还要说明数据捕获点的位置。
五、 测试准备
对测试前需要准备的工作进行说明,如测试数据的准备,原有环境的数据备份,测试工具的准备、脚本的准备等等。
六、 风险和问题分析
对测试过程中可能遇到的问题和风险进行分析,并给出应对办法。 七、 时间安排与人员配置
说明测试的时间计划,人员配置。
八、 其他
对其他需要说明的问题进行补充说明,如时间的调整,人员的变动等等皆可在此说明。
软件测试之性能测试篇方案
性能测试目前基本是靠工具实现的(而且是国外的,如QALOAD,LOADRUNNER等)。
Load Testing
CPU
Stress Testing
,
,,
?
(OLTP)Web
,20
,
,
,
,,
, ,
?
,
,
PC
,
/
QALoadLoadRunnerBenchmark FactoryWebstress
QALoad
DB2DCOMODBCORACLENETLoadCorbaQARunSAPSQLServerSybaseTelnetTUXEDOUNIFACEWinSockWWWJava Script
WindowsUNIX
Java Script
UNIX
Min
MeanMaxStdDev
Median90
90
“ V1.0”
CSTC
GB/T 17544
“
V1.0”
B/S
200
8
UNIXLinuxOracleApache
100M
200/78.73
2008
UNIXLinuxOracleApache
200HTTP 500connect
Web
TCP
Application Expert
Application Expert
Application Expert
PCLANWAN
Network Vantage
PREDICTOR
PREDICTOR
TuxedoTop
UNIX
60
/ CPU CPU
CPU
CPU CPU
CPU CPU
http://51cmm.csai.cn/SoftTesting/NO266.htm
软件性能测试研究
摘要:随着当夸软件开发技术的发展与成熟,越来越多复杂的软件系统应用于人们生活的各个领域,软件系统运行时的性能表现已经成为衡量软件产品质量的一个重要标准。研究了软件系统性能测试的整体的流程,并结合自动化测试工具LoadRunner,对软件性能测试的相关信息进行了撂讨和分析。
关键词:软件测试;性能测试;LoadRunner
中图分类号:TP306 文献标识码:A 文章编号:1672-3198(2009)12-0296-02
1 软件性能测试
根据测试的目的和内容的不同,性能测试主要包括以下方面:
(1)负载测试:确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
(2)强度测试:确定在系统资源特别低的条件下软件系统运行情况。
(3)容量测试:在用户可接受的响应范围内,确定系统可处理同时在线的最大用户数。
(4)压力测试:通过确定一个系统的瓶颈或者最大使用极限的测试。
(5)疲劳强度测试:以系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作强度性能的过程。
(6)大数据量测试:大数据量测试侧重点在于数据的量上,包括独立的数据量测试和综合数据量测试。独立的数据量测试针对某些系统存储,传输、统计、查询等业务进行大数据量测试,而综合数据量测试一般和压力性能测试、负载性能测试、疲劳性能测试相结合。
2 软件性能测试流程
2.1 测试方案设计
在软件性能测试的初始阶段,首先应对业务模型和系统架构进行调研,收集测试需求。然后生戚性能测试计划。业务调研和系统调研,需要性能测试团队提前了解被测试项目的业务功能和系统架构。其间。开发部门应协助提供被测系统相关的文档和说明,如系统总体介绍、系统规格书、用户使用手册、网络拓扑结构图和系统配置说明、关键服务器及应用部署与配置等文档。通过和业务部门协商明确本次测试针对哪些业务行为,制定此次测试的目标,细化测试的关注点和性能指标要求。通过以上内容制定详细的测试方案,并制定详细测试计划和各阶段目标。
2.2 测试环境的搭建
测试环境的搭建分为软硬测试系统的环境搭建和测试相关的数据准备工作。环境搭建包括被测试系统的硬件环境建立和软件应用系统建立及基础数据环境建立。保障被测试系统的业务可用性和功能的正确性,包括测试系统(如被测试项目的操作系统、中间件、数据库、压力测试控制台、压力测试发起工具等)的环境搭建、软件的安装;测试环境的网络环境建立(如开放防火墙和网关等);最后进行测试环境可用性验证。测试数据准备包括测试应用系统基础数据准备,即需要按性能测试规模要求,准备足够的、一定规模的基础数据,通常采用全量恢复生产数据的方式以达到和生产环境数据一致性的要求。
2.3 测试场景开发
测试场景开发指测试程序(脚本)的开发。测试程序(脚本)的开发是对被测系统的用户业务行为进行模拟、录制、编程、参数化、脚本定制和调式等一系列工作,以使测试程序(脚本)可以真实模拟实际生产中的业务交易行为,并通过对程序中参数的配置实现对并发数、思考时间等属性的准确控制。
2.4 测试执行
测试执行是在测试方案的制定、测试环境准备、测试场景开发工作正确完成的基础上进行的。
2.5 测试报告和分析
性能测试报告和结果分析是在测试执行完成以后,对性能数据进行采集结果收集工作和针对性能测试过程中暴露的问题进行分析的阶段。性能测试报告是对性能测试过程中的监控结果以及报表进行汇总,按照一定的模板整理出的一份结论性文档。开发团队和性能测试团队应依据对性能测试实施过程中监控和记录的数据和表格,分析系统中存在的性能问题和程序缺陷。并有针对性的在报告中阐述问题、分析原因、提出解决或优化方案。
2.6 回归测试
回归测试是开发部门在性能测试报告的基础上针对软件的性能或者效率缺陷进行优化或者修复,为了验证优化的效果而进行的再测试。
3 软件性能测试工具LoadRunner
作为软件质量控制中的重要一环,性能测试已经越来越受到软件开发商和用户的重视,成为软件测试的重中之重。性能测试通常在系统测试阶段执行,常常与强度测试结合起来,一般需要使用测试工具。一个优秀的软件测试工具,不仅可以辅助测试工作,满足科学测试的基本要求;而且可以自动化测试过程,节约大量的时间、成本、人员和资源,提高软件产品的质量。目前市场上主要使用的测试工具有微软公司的WAS(Web Application Stress Tool)、Compuware公司的QALoad、RadView公司的WebRunner、HP(Mercury)公司的LoadRunner。下面以LoadRunner为例。介绍软件测试工具的工作流程。
LoadRunner是一种预测系统行为和性能的负载测试工具。通过模拟上千万用户实施并发负载及实时性能检测来确认和查找问题,能够对整个企业架构进行测试。通过使用LoadRunner,企业能够最大限度的缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner能支持广泛的协议和技术,功能比较强大,可以为特殊环境提供特殊的解决方案。LoadRunner由下面三部分组成:Virtual UserGenerator用来录制脚本、编辑脚本Controller用来布置测试场景、执行测试场景;Analysis用来对测试结果进行分析。
用LoadRunner进行负载测试的流程通常由五个阶段组成:计划、脚本创建、场景定义、场景执行、监视执行和结果分析。
(1)计划负载测试:定义性能测试要求,例如并发用户的数量、典型业务流程和所响应时间;根据软件项目相关需求,定义相关测试的细节,撰写性能测试报告。
(2)创建Vuser脚本:将最终用户活动捕获到自动脚本中LoadRunner的脚本是C语言代码,LoadRunner有自己的一整套函数接口,可以供外部调用。脚本可分INIT、ACTION、END三部分,其中:INIT部分可以理解为初始部分。ACTION可以理解为事务部分,也是测试的主体,END是退出结束。
当录制完一个基本的用户脚本后,在正式使用前我们还需要完善测试脚本,增强脚本的灵活性。一般情况下,我们通过以下几种方法来完善测试脚本。插人事务、插入结合点、插入注解、参数化输入。
(3)定义场景:使用LoadRunner Controller设置测试环境;录制好脚本之后,就可以把脚本加入到场景里面去了,这里首先介绍一下LR的场景类型,LR有2种大的场景类
型。
①Manual Scenario:该项要完全手动的设置场景,这项下面还可以设置为每一个脚本分配要运行的虚拟用户的百分比,可在Controller的Scenario菜单下设置。
②Goal―Oriented Scenario,如果你的测试计划是要达到某个性能指标,比如:每秒多少点击。每秒多少transae,tions,能到达多少VU,某个Transaction在某个范围VU(5D。一1000)内的反应时间等等,那么就可以使用面向目标的场景。
(4)设置场景:
Design:设计测试场景的静态部分,设置模拟用户生成器、模拟用户数量、模拟用户组等。
Run:设计测试的动态部分,主要指添加性能计数器,在脚本运行的过程中可以通过这些计数器反馈的数据。
建立了测试场景后,我们可以对Edit_Schedule进行设置,设置测试开始执行的时问,对于手动设计的测试还可以设定它的持续时间,以及何时起用或禁止调用模拟用户。
(5)运行场景:通过LoadRunner Controller驱动、管理和监控负载测试。
设置完毕后,点击“开始方案”运行场景。在运行过程中,可以监视各个服务器的运行情况(DataBase Server、WebServer等)。监视场景通过添加性能计数器来实现,下列数据需要特别关注:
①Memory:Available Mbytes物理内存的可用数(单位Mbytes)至少要有10%的物理内存值。
⑦Processor:Processor Time CPU使用率。这是查看处理器饱和状况的最佳计数器。显示所有CPU的线程处理时间。如果一个或多个处理器的该数值持续超过90%,则表示此测试的负载对于目前的硬件过于沉重。为多处理器服务器添加该计数器的O到x个实例。
③Processor Queue Length:是指处理列队中的线程数,小于2。处理器瓶颈时会导致该值持续大于2。
④Context Switches/sec;如果切换次数到5000*CPU个数和i0000*CPU个数中,说明它忙于切换线程。
⑤Network Interface:Bytes Total/sec为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较。
(6)分析结果:使用LoadRunner Analysis创建图和报告并评估性能。
LR的报表分析功能也异常强大,有各种各样的报表,甚至可以将单个报表组合,也可以导出到Excel文件和Ht-ml文件。