编测编学性能测试方案模板

Posted 编测编学0基础软件测试训练营

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编测编学性能测试方案模板相关的知识,希望对你有一定的参考价值。




XXXXX系统性能测试计划和方案



XXXXX科技


测试部


2020年9月


文档版本变更记录:


版本号

拟制/修改日期

拟制/修改人

修改记录

批准人

V1.0

2020年10月29日

刀锋

新建













目录


引言        3

1.1 编写目的        3

1.2 项目各方基本信息        3

1.3 参考资料        4

1.4项目架构图        4

1.5 适用范围        5

1.5 限制与约束        6

1.6 术语表        7

2. 测试概述        13

2.1 测试目标        13

2.1.1 业务操作目标        13

2.1.2 服务器资源目标        14

2.2 测试类型及方法        14

2.3 性能测试架构        15

2.3 测试周期        15

3. 测试设计        16

3.1 测试进入准则与范围        16

3.2 性能测试场景        16

3.3 预期指标        21

3.4 测试环境        22

3.4.1 系统环境标准配置        22

3.4.2 测试客户端配置        22

3.5 测试工具        23

3.6 资源与进度安排        23

4. 风险分析与应对        23


引言

1.1 编写目的

提供XXXXX系统的性能测试计划,目的是充分依据《XXXXX性能测试指标收集》,提供完整的高可用、高性能解决方案,为之后建设高性能、高并发的集中式部署平台提供指导。


1.2 项目各方基本信息

项目各方名称

性能测试主要负责工作内容

客户方

按照需求规格说明书要求提供测试环境所需要的软件环境、硬件环境等。为现场性能测试提供其他必要的环境。

开发方

按照公司计划进度完成系统测试的验收后,根据性能测试结果,要求开发人员能够及时修改性能测试出现的问题,提供解决方案和解决方式。

测试方

根据客户方软件使用习惯,性能测试指标收集,综合考虑,输出性能测试计划和方案。


1.3 参考资料


XXXXX性能测试指标收集》

《XXXXX需求规格说明书》


1.4项目架构图


1.5适用范围

用户


开发人员


项目经理


测试人员


1.5 限制与约束

测试限制条件主要存在于需求方面


需求方面

目前的需求文档更多的是来自于功能方面的需求,而用户使用场景,包括用户基数,用户业务操作频率,用户业务操作类型,目前是无法获知的。


人员方面

目前项目组都是基础的测试人员,性能测试主要集中在一个人的身上。


1.6 术语表


Jmeter简介

Apache JMeterApache组织开发的基于Java的压力测试工具。


用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。

它可以用于测试静态和动态资源。


例如:


静态文件

包括一些配置文件,静态图片,excel(如XXXXX的模板文件.xls


Java 小服务程序


Java 对象


数据库


FTP 服务器


等等。


JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。


另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。

为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

Apache jmeter 可以用于对静态的和动态的资源(文件,ServletPerl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。


它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。


JMeter的作用:


1.能够对HTTPFTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC)。

2.完全的可移植性和100%java

3.完全Swing 和轻量组件支持(预编译JAR使用 javax.swing.*)包。

4.完全多线程框架允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样。

5.精心的GUI设计允许快速操作和更精确的计时。

6.缓存和离线分析/回放测试结果。


JMeter的高可扩展性:


1.可链接的取样器允许无限制的测试能力。

2.各种负载统计表和可链接的计时器可供选择。

3.数据分析和可视化插件提供了很好的可扩展性以及个性化。

4.具有提供动态输入到测试的功能(包括javascript)。

5.支持脚本编程的取样器(在1.9.2及以上版本支持BeanShell)。

在设计阶段,JMeter能够充当HTTP PROXY(代理)来记录IE/NETSCAPEHTTP请求,也可以记录apacheWebServerlog文件来重现HTTP流量。当这些HTTP客户端请求被记录以后,测试运行时可以方便的设置重复次数和并发度(线程数)来产生巨大的流量。JMeter还提供可视化组件以及报表工具把量服务器在不同压力下的性能展现出来。

相比其他HTTP测试工具,JMeter最主要的特点在于扩展性强。JMeter能够自动扫描其lib/ext子目录下.jar文件中的插件,并且将其装载到内存,让用户通过不同的菜单调用。


JMeter对象:


Term

Definition

线程组

线程组是任何测试计划的起点,所有的逻辑控制器和采样器都必须放在线程组之下。

HPPT Cookie Manager

测试元件,所有的Web测试都应该添加Cookie管理器,否则JMeter就会忽略Cookie,确保所有的HTTP请求使用相同的Cookie。

监听器

监听器提供了对JMeter在测试期间收集到的信息的访问方法。可以将测试数据导入到文件之中,以供后续分析。

断言

用户可以使用断言来检查从服务器获得的响应内容,通过断言可以测试服务器返回的响应与测试人员的期望是否相符。

控制器

Jmeter有两类控制器:采样器和逻辑控制器。二者结合起来驱动了测试进程。

采样器

采样器告诉JMeter发送一个请求到指定服务器,并等待服务器的请求,采样器按照其在测试树中的顺序去执行,还可以用逻辑控制器来改变采样器运行的重复次数。

逻辑控制器

逻辑控制器可以帮助用户控制JMeter的测试逻辑,特别是何时发送请求。


JMeter图信息:


Term

Definition

Lable

定义HTTP请求名称

Sample

表示这次测试中一共发出了多少个请求

Average

平均响应时间

Max

访问页面最大响应时间

Min

访问页面最小响应时间

Median

中位数,也就是50%用户的响应时长

90%Line

99%用户的响应时长

Error%

本次测试中出现错误的请求的数量/请求的总数

Throughput

默认情况下表示每秒完成的请求数(Request per Second)

KB/Sec

每秒从服务器端接收到的数据量

响应时间

执行事务所花费的时间


2. 测试概述

2.1 测试目标
2.1.1 业务操作目标

序号

性能指标

指标分解

测试建议

需求要求

备注

1

并发用户数


500个



2

吞吐量


待定



3

服务器资源消耗

CPU占用率(%)

<80%(20%冗余)



4

磁盘I/O(%)

<80%(20%冗余)



5

网络I/O(%)

<80%(20%冗余)



6

内存(%)

<80%(20%冗余)



7

登录页面初次加载时长


≤2s



8

登录时长


≤30ms



9

页面模块切换时间


≤1s



10

查询结果呈现时间


≤2s



11

删除数据时间


≤2s



12

点击次数与响应时间

成功的点击次数(平均事务响应时间)

≤1s



13

失败的点击次数(事务错误率)

<2%



14

每秒点击次数

根据并发用户数和响应时间来定



15

XXX业务数据500万数据

系统响应时间

≤5s



16

XXX业务数据200万数据



17

XXX业务数据200万数据



18

XXX业务数据200万数据




2.1.2 服务器资源目标

性能项

资源

评价

CPU占有率

70&

80%

90%+

很差

磁盘I/O

<30%

<40%

<50%+

很差

网络

<30%宽带

运行队列

<2*CPU数量

内存

没有页交换

每个CPU每秒10个页交换

更多的页交换

很差


2.2 测试类型及方法

测试类型

目标

测试方法描述

性能测试

针对性能需求以满足系统在压力状态下的正常适用.

使用Jmeter工具去模拟用户对XXXXX系统操作。


2.3 性能测试架构
2.4 测试周期

编号

测试开始日期

测试结束日期

测试方法

负责人

前置条件

1

-

-

功能测试

xxxx

系统开发完成

2

2020-10-29

2020-10-30

性能测试计划、性能测试方案初稿

刀锋

功能测试

3

2020-11-02

2020-11-06

性能测试场景设计与实现

刀锋

性能计划、性能测试方案


2020-11-09

2020-12-05

性能测试执行

刀锋

性能测试场景设计与实现


2020-12-07

2020-12-10

性能测试结果分析与报告编写

刀锋


3. 测试设计


3.1 测试进入准则与范围

功能测试稳定,没有大的逻辑和架构更改


3.2 
性能测试场景


验证维度:并发用户数

场景1500用户在系统中只有少量数据情况下,每秒登录10个用户


场景2500用户在系统中只有少量数据情况下,每秒登录100个用户

场景3500用户在系统中只有少量数据情况下,一次性并发500个用户

场景4500用户在系统中已存在XXX业务数据500万,XXX业务数据200万,XXX业务数据200万数据,XXX业务数据200万数据情况下,每秒登录10个用户

场景5500用户在系统中已存在XXX业务数据500万,XXX业务数据200万,XXX业务数据200万数据,XXX业务数据200万数据情况下,每秒登录100个用户

场景6:500用户在系统中已存在XXX业务数据500万,XXX业务数据200万,XXX业务数据200万数据,XXX业务数据200万数据情况下,一次性并发500个用户


验证维度:


单个业务


单一新增


场景7:XXX业务数据100个用户同时进行XXX业务数据录入,共循环1000次

场景8:XXX业务数据100个用户同时进行XXX业务数据录入,共循环10000次

场景9:XXX业务数据500个用户同时进行XXX业务数据录入,共循环1000次

场景10:XXX业务数据500个用户同时进行XXX业务数据录入,共循环10000次

场景11:XXX业务数据100个用户同时进行XXX业务数据录入,共循环1000次

场景12:XXX业务数据100个用户同时进行XXX业务数据录入,共循环10000次

场景13:XXX业务数据500个用户同时进行XXX业务数据录入,共循环1000次

场景14:XXX业务数据500个用户同时进行XXX业务数据录入,共循环10000次

场景15:XXX业务数据100个用户同时进行XXX业务数据录入,共循环1000次

场景16:XXX业务数据100个用户同时进行XXX业务数据录入,共循环10000次

场景17:XXX业务数据500个用户同时进行XXX业务数据录入,共循环1000次

场景18:XXX业务数据500个用户同时进行XXX业务数据录入,共循环10000次

场景19:XXX业务数据100个用户同时进行XXX业务数据录入,共循环1000次

场景20:XXX业务数据100个用户同时进行XXX业务数据录入,共循环10000次

场景21:XXX业务数据500个用户同时进行XXX业务数据录入,共循环1000次

场景22:XXX业务数据500个用户同时进行XXX业务数据录入,共循环10000次



混合场景新增


场景23:100个用户其中25个进行XXX业务数据录入,25个进行XXX业务数据录入,25个进行XXX业务数据录入,25个进行XXX业务数据录入

场景24:100个用户其中70个进行XXX业务数据录入,10个进行XXX业务数据录入,10个进行XXX业务数据录入,10个进行XXX业务数据录入



查询业务


单一查询


场景25:XXX业务数据100个用户同时进行XXX业务数据查询,共循环1000次

场景26:XXX业务数据100个用户同时进行XXX业务数据查询,共循环10000次

场景27:XXX业务数据500个用户同时进行XXX业务数据查询,共循环1000次

场景28:XXX业务数据500个用户同时进行XXX业务数据查询,共循环10000次

场景29:XXX业务数据100个用户同时进行XXX业务数据查询,共循环1000次

场景30:XXX业务数据100个用户同时进行XXX业务数据查询,共循环10000次

场景31:XXX业务数据500个用户同时进行XXX业务数据查询,共循环1000次

场景32:XXX业务数据500个用户同时进行XXX业务数据查询,共循环10000次

场景33:XXX业务数据100个用户同时进行XXX业务数据查询,共循环1000次

场景34:XXX业务数据100个用户同时进行XXX业务数据查询,共循环10000次

场景35:XXX业务数据500个用户同时进行XXX业务数据查询,共循环1000次

场景36:XXX业务数据500个用户同时进行XXX业务数据查询,共循环10000次

场景37:XXX业务数据100个用户同时进行XXX业务数据查询,共循环1000次

场景38:XXX业务数据100个用户同时进行XXX业务数据查询,共循环10000次

场景39:XXX业务数据500个用户同时进行XXX业务数据查询,共循环1000次

场景40:XXX业务数据500个用户同时进行XXX业务数据查询,共循环10000次



混合场景查询


场景41:100个用户其中25个进行XXX业务数据查询,25个进行XXX业务数据查询,25个进行XXX业务数据查询,25个进行XXX业务数据查询

场景42:100个用户其中70个进行XXX业务数据查询,10个进行XXX业务数据查询,10个进行XXX业务数据查询,10个进行XXX业务数据查询




修改业务--单一修改


场景43:XXX业务数据100个用户同时进行XXX业务数据修改,共循环1000次

场景44:XXX业务数据100个用户同时进行XXX业务数据修改,共循环10000次

场景45:XXX业务数据500个用户同时进行XXX业务数据修改,共循环1000次

场景46:XXX业务数据500个用户同时进行XXX业务数据修改,共循环10000次

场景47:XXX业务数据100个用户同时进行XXX业务数据修改,共循环1000次

场景48:XXX业务数据100个用户同时进行XXX业务数据修改,共循环10000次

场景49:XXX业务数据500个用户同时进行XXX业务数据修改,共循环1000次

场景50:XXX业务数据500个用户同时进行XXX业务数据修改,共循环10000次

场景51:XXX业务数据100个用户同时进行XXX业务数据修改,共循环1000次

场景52:XXX业务数据100个用户同时进行XXX业务数据修改,共循环10000次

场景53:XXX业务数据500个用户同时进行XXX业务数据修改,共循环1000次

场景54:XXX业务数据500个用户同时进行XXX业务数据修改,共循环10000次

场景55:XXX业务数据100个用户同时进行XXX业务数据修改,共循环1000次

场景56:XXX业务数据100个用户同时进行XXX业务数据修改,共循环10000次

场景57:XXX业务数据500个用户同时进行XXX业务数据修改,共循环1000次

场景58:XXX业务数据500个用户同时进行XXX业务数据修改,共循环10000次



混合场景修改


场景59:100个用户其中25个进行XXX业务数据修改,25个进行XXX业务数据修改,25个进行XXX业务数据修改,25个进行XXX业务数据修改

场景60:100个用户其中70个进行XXX业务数据修改,10个进行XXX业务数据修改,10个进行XXX业务数据修改,10个进行XXX业务数据修改

场景59:500个用户其中125个进行XXX业务数据修改,125个进行XXX业务数据修改,125个进行XXX业务数据修改,125个进行XXX业务数据修改

场景60:500个用户其中350个进行XXX业务数据修改,50个进行XXX业务数据修改,50个进行XXX业务数据修改,50个进行XXX业务数据修改



删除业务--单一删除


场景61:XXX业务数据100个用户同时进行XXX业务数据删除,共循环1000次

场景62:XXX业务数据100个用户同时进行XXX业务数据删除,共循环10000次

场景63:XXX业务数据500个用户同时进行XXX业务数据删除,共循环1000次

场景64:XXX业务数据500个用户同时进行XXX业务数据删除,共循环10000次

场景65:XXX业务数据100个用户同时进行XXX业务数据删除,共循环1000次

场景66:XXX业务数据100个用户同时进行XXX业务数据删除,共循环10000次

场景67:XXX业务数据500个用户同时进行XXX业务数据删除,共循环1000次

场景68:XXX业务数据500个用户同时进行XXX业务数据删除,共循环10000次

场景69:XXX业务数据100个用户同时进行XXX业务数据删除,共循环1000次

场景70:XXX业务数据100个用户同时进行XXX业务数据删除,共循环10000次

场景71:XXX业务数据500个用户同时进行XXX业务数据删除,共循环1000次

场景72:XXX业务数据500个用户同时进行XXX业务数据删除,共循环10000次

场景73:XXX业务数据100个用户同时进行XXX业务数据删除,共循环1000次

场景74:XXX业务数据100个用户同时进行XXX业务数据删除,共循环10000次

场景75:XXX业务数据500个用户同时进行XXX业务数据删除,共循环1000次

场景76:XXX业务数据500个用户同时进行XXX业务数据删除,共循环10000次



混合场景删除


场景77:100个用户其中25个进行XXX业务数据删除,25个进行XXX业务数据删除,25个进行XXX业务数据删除,25个进行XXX业务数据删除

场景78:100个用户其中70个进行XXX业务数据删除,10个进行XXX业务数据删除,10个进行XXX业务数据删除,10个进行XXX业务数据删除

场景77:500个用户其中125个进行XXX业务数据删除,125个进行XXX业务数据删除,125个进行XXX业务数据删除,25个进行XXX业务数据删除

场景78:500个用户其中350个进行XXX业务数据删除,50个进行XXX业务数据删除,50个进行XXX业务数据删除,50个进行XXX业务数据删除




新增,修改,删除,查询混合业务场景


场景79:100个用户其中25个进行XXX业务数据的操作,10个人新增,5个查询,5个修改,5个删除;25个进行XXX业务数据的操作,10个人新增,5个查询,5个修改,5个删除;25个进行XXX业务数据的操作,10个人新增,5个查询,5个修改,5个删除;25个进行结构的操作,10个人新增,5个查询,5个修改,5个删除

场景80:500个用户其中125个进行XXX业务数据的操作,50个人新增,25个查询,25个修改,25个删除;125个进行XXX业务数据的操作,50个人新增,25个查询,25个修改,25个删除;125个进行XXX业务数据的操作,50个人新增,25个查询,25个修改,25个删除;125个进行结构的操作,50个人新增,25个查询,25个修改,25个删除


3.3 预期指标

性能项

资源

CPU占有率

<70%

磁盘I/O

<30%

网络

<30%宽带

运行队列

<2*CPU数量

内存

没有页交换


3.4 测试环境

3.4.1 系统环境标准配置

主机用途

机型/OS

数量

CPU

内存

IP

应用软件服务器

Windows Server 2008 R2

1

Intel(R) Xeon(R) Sliver 4216 CPU @ 2.10GHz(8处理器)

32GB

.....


3.4.2 测试客户端配置

主机用途

机型/OS

数量

CPU

内存

浏览器版本

IP

用于性能测试的机器

Windows Server 2016 Standard

1

Intel(R) Core(TM) i7-8700U CPU @ 3.20GHz 3.190 GHz

16G

Google Chrome 版本75

......


3.5 测试工具

工具

版本

用途

备注

Jmeter

Apache JMeter3.1

性能测试



3.6 资源与进度安排

人力安排:

角色

数量

职责

XX、XX、XX-功能测试工程师

3

功能测试、协助性能测试

刀锋-测试工程师

1

性能测试


4. 风险分析与应对

风险

优先级

应对措施

需求变更

通过内部及时进行沟通,并做好版本管理、变更管理

人员变动

需要有熟悉需求的相关人员做补充

环境变动

预先留有后备测试环境,保证环境的稳定




如果你对编测编学本期干货产生了兴趣

就请

微信:mmr0603

QQ大群:925205234


以及

以上是关于编测编学性能测试方案模板的主要内容,如果未能解决你的问题,请参考以下文章

编测编学零基础学python_01_认识变量

性能测试方案(计划)模板

性能测试场景

性能测试 案例+报告 模板

性能测试报告模板 V1.0

性能测试计划模板