{性能测试测试计划}

{性能测试项目}

一、【性能测试的测试流程】

1.1【分析需求】

根据客户的需求(产品规格说明书等),来熟悉被测系统的业务,进而划分 功能模块,找出性能测试功能点。

性能测试功能点并非所有功能点,重点关注以下几点:

A)业务中最核心的功能点

B)用户使用最多的功能点

C)与数据库密切相关的功能点(比如对业务的增、删、改、查)

了解被测系统的技术架构(前后段的框架、开发语言),选择合适协议。

1.2【搭建测试环境】

本质:选择合适的测试工具,使用合法的数据对已安装好的被测系统展开测试

A) 选择测试工具:

在测试机中安装Loadrunner11.0,

负载机安装负载生成器Load generator并启动代理程序Agent。

B)准备合法数据:初始的业务数据(比如:登录用户的信息,商品信息等)

C)安装被测系统:被测系统能正常运行(应用和数据库服务器要分开部署)

{具体事项要参照性能测试计划}

1.3【编写性能测试计划】

该计划是由产品、开发、测试等多方共同参与评审完成,并作为性能测试的 指导性文件,主要包含的内容大致有:

1)软件概述

2)测试资源:测试工具、测试环境软硬配置要求

3)测试范围、模块、功能点 -- 不是所有功能都要测性能

4)项目进度安排、人员分工安排

5)测试策略:基准测试、并发测试、综合场景测试、疲劳强度测试、递增测试...

6)测试用例、测试数据、场景设计:一般一个场景设计为一个用例

7)提交物:各种文档、脚本、场景文件、结果报告、性能测试报告...

8)应急预案:出现常见问题的解决方法

1.4【使用第一大组件录制、调试、增强脚本】

根据性能测试计划中的测试用例来录制、调试生成脚本,并增强脚本。

增强脚本的技术:

插入事务、检查点、集合点、参数化、关联、运行时设置等

1.5【使用第二大组件设置、监控、运行场景】

根据性能测试计划中的场景策略设置场景、监控资源、运行场景以及收 集测试结果

1.6【使用第三大组件收集、分析测试结果,并指出性能瓶颈,提供优化建议】

1.7【编写性能测试报告】

二、【项目名称:稿件管理系统】

2.1:搭建测试环境

安装被测系统:

A)解压后双击liferay.exe文件,选择安装目录;

B)安装完成后,关闭响应的服务:apache的服务:httpd、

Tomcat、java、IIS、oracle、mysql

C)启动程序中所有服务:mysql和tomcat,且服务不能关闭。

D)打开被测系统:http://localhost/web/guest/home

E)测试数据:登录用户信息(用户名:test01~test50,密码:1111)

真实项目部署:

客户端(测试机)-- Web服务器 -- DB服务器

image.png

2.2:熟悉被测系统,列出性能测试点:

参考产品需求规格说明书、用户手册、开发设计文档等等

熟悉业务,划分模板,列出性能测试点,并非所有功能点

1)登录模板

a. 用户登录 user_login

b. 用户退出

2)稿件管理模板

a. 稿件查询 search_manuscript

两种查询方式:

1) 不带条件的查询,查询到所有的稿件,分页显示

按照稿件最后一次修改时间降序排序

分页查询的好处:

a. 让用户只关注局部有用数据,获得更好的体验;

b. 如果一次查出所有记录,大大影响系统性能;

服务器内存、网络等消耗巨大

2) 带条件查询:编号  标题   版本   内容

单个条件查询,或者多个条件查询

多条件之间为与关系,要么查不到,要么查到一条

思路1:需要对业务数据进行参数化

模拟各种条件的查询,更真实,让数据查询范围更均衡。

思路2:系统中不同功能点之间有联系,比如增加稿件后

重新查询稿件显示的内容和之前不同。

--系统中的信息在不断变化,对测试是否有影响。

b. 稿件增加

单个添加,稿件信息需输入标题和正文内容

操作:点击保存并返回或者保存,稿件状态为不批准;

点击批准,稿件状态为批准。

c. 稿件显示

分页显示,每页最多显示20条信息。

d. 稿件状态

批准、不批准、到期

e. 稿件删除

单个删除

部分删除

全部删除

3)文档上传下载模块

a. 文档上传

上传到文件夹,

上传的文件类型:.txt  .jpg  .doc

上传文件的大小:不超过1M

b. 文档查询

c. 文档删除

增加稿件:add_manuscript

提供稿件标题、内容,增加稿件,系统自动提供id

因为:id一般与业务无关  是由系统自动产生的

为了区别不同稿件记录

增加的最新稿件一般排在最前面,旧的稿件往后偏移

显示稿件:show_manuscript

1) 根据具体条件查询指定稿件,再显示

2) 没有条件直接查询最新稿件,再显示

更灵活,有一定的不确定性,注意交叉业务,关注不同功能点之间的相互影响。比如其它用户增加了稿件,当前用户查询到新的信息。

3、文档上传下载模块:

查询文档:search_document

根据文档名称(无需后缀),进行查询

分为两种情况:查到、查不到 都是正常的结果

上传文档:upload_document

建议新建一个文件夹,比如dir1,要求目录名用英文,避免录制后脚本中中文编码问题;

目前业务中新建的文件夹,会分配一个唯一id,删除后重建id会不同,对脚本有影响。

建议在C:\LR_Project\file目录下,新建等待上传的文档

好比是客户端需要的测试数据:要求文件大小几十KB

day01.txt   day02.txt   d1.doc   d2.doc  p1.jpg

业务要求:

原文件名可以重复使用;

重命名不能重复;

启发:必须要参数化,数据不能重复

参数化要想好策略?UEA组合

说明部分没有要求,目前 原文件名-新文件名

image.png

2.3、设计性能测试计划

{参照模板:性能测试计划模板}

重要组成部分:

1)项目的业务流程

2)测试资源的软硬件配置

3)测试数据

4)性能测试指标

5)测试策略

6)测试用例设计

7)场景的设置及策略

【测试环境】

需要多部门配合完成,包括系统架构师、系统管理员、数据库管理员、 项目经理、测试经理、开发工程师、实施工程师...

1)测试机环境 (模拟客户端)

<1>若干台PC测试机的硬件配置 --联机测试,与负载用户数有关

<2>测试机的操作系统:Windows/Linux...,浏览器ie

<3>选择合适的测试工具:LoadRunner11   需要破解认证lisence

<4>网络环境:测试机在同一网段中,局域网中测试

2)被测系统环境 (模拟服务器)

<1>若干台服务器主机的硬件配置   分布式部署

应用服务器、数据库服务器等分开部署 便于监控

便于让负载更均衡,发现那台服务器更容易出现性能瓶颈。

<2>服务器主机的操作系统:winsever2003、Linux/Unix

<3>中间件产品:提供公共服务的产品软件

a. 应用服务器软件:apache、Tomcat、Weblogic、WebSphere等

比如在Tomcat中,部署Web App,将app源程序包放到 Tomcat\webapps目录下,就能提供的web服务:提供一个访问资 源的路径在客户端使用

b. 数据库管理系统DBMS:  Mysql、Oracle、DB2

<4> 在Tomcat中,部署Web应用、以及相关配置

<5> 数据库中准备大量业务初始数据

比如当前项目中,可以登录的用户数、稿件信息大约有5000 多条,作为后续测试时使用的测试数据;

<6> 网络环境:和测试机同一网段,一般在局域网搭建,便于管理

当前测试环境:一机测试

测试机和服务器都部署在同一台电脑中,同时模拟三层架构.

Liferay中部署好了Tomcat6、JDK1.6、Mysql5和初始数据.

真实测试环境:分开部署.

【测试数据准备】

一般用于做参数化测试时使用,首选参数类型:file,文件名:*.dat

方式1:使用多个文件存储数据,

方式2:共享同一个文件中的数据,需注意数据格式:

多个参数(列)之间数据的分隔符(默认是英文的逗号)

比如:2个参数

Username,password

Test01,1234        (正确)

Test02,1234,5566   (错误,会被认为3个参数)

Test03,1234#5566   (正确)

数据库中的第五个数据最前面要空格一下(数据库的规定)

数据1:登录用户数据 (用户名和密码)  ->user.dat

数据2:显示稿件 ->show_manuscript.dat

数据3:添加稿件(title,content)   ->add_manuscript.dat

数据4:上传文档()   ->upload_document.dat

数据5:查询文档() ->search_document.dat

数据6:查询稿件()  ->search_manuscript.dat

【性能测试指标】

平均响应时间≤ 5秒

最大在线用户数50人

最大并发用户数: 20人

吞吐量:  17280byte

每秒事务数TPS1:  0.34/秒 ,TPS2:  0.46/秒

事务成功率≥ 99%

系统可以连续稳定运行12小时。

系统资源使用率

CPU使用率 ≤ 80%

内存使用率 ≤ 80%

I/O使用率 ≤80%

【测试策略】

基准测试:单用户,单测试点的测试

目的:是获取单用户执行时的系统各项性能指标,为多用户并发 和综合场景的性能测试分析提供参考依据.

并发测试:多用户在线、并发、递增测试

目的:是在一定用户压力下获取系统性能指标,进而分析、确定 系统存在的性能瓶颈,为系统的优化和调整提供依据.

综合场景测试:多用户、多脚本、执行一段时间

目的:最大限度地模拟系统的真实场景,来预知系统投入使用后 的真实性能水平。从而对系统做出相应的优化及调整.

疲劳强度测试:压力更大的综合场景测试

目的:使用最大并发用户数,执行更长的时间来最大限度地模拟 真实环境,考察系统的性能.

【测试用例设计】

根据功能模块中的性能测试点,分别对系统的处理能力和系统资源 使用率进行监控考察:

测试点:覆盖基准测试、并发测试、综合场景测试、疲劳强度测试

登录、显示稿件、查询稿件、添加稿件、上传文档、查询文档

系统处理能力:用户数、响应时间

系统资源使用率:cpu、内存、磁盘、网络

【设置场景】

将测试用例录制成脚本后设置其对应的用户数,用户的行为,

运行时设置,参数策略、并发策略、系统监控以及必要时联机测试

IP欺骗等.

2.4、脚本录制及增强

分别对以上6个测试点按照测试用例去录制脚本:

登录脚本-》user_login

查询稿件脚本-》search_manuscript

显示稿件脚本-》show_manuscript

添加稿件脚本-》add_manuscript

上传文档脚本-》upload_document

查询文档脚本-》search_document

录制:

协议:Web[HTTP/HTML]

Url:http://localhost/web/guest/home

Option:启动页面标题检查点,编码:utf-8

插入关注的事务,适当添加检查点,设置参数化、集合点等等

2.5、设计场景及策略并运行

2.6、收集数据生成图表报告,分析数据,指出性能瓶颈,提出优化建议

2.7、编写性能测试报告