ITPub博客

首页 > 移动开发 > 移动测试 > 【编测编学】性能测试方案模板

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

原创 移动测试 作者:bcbxhome 时间:2020-11-03 17:06:23 0 删除 编辑


点击上方加关注,软件测试不迷路



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


XXXXX科技

测试部

2020年9月

文档版本变更记录:

版本号
拟制/修改日期
拟制/修改人
修改记录
批准人
V1.0
2020年10月29日
刀锋
新建












目录


1 
引言


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

1.2 项目各方基本信息

项目各方名称
性能测试主要负责工作内容
客户方
按照需求规格说明书要求提供测试环境所需要的软件环境、硬件环境等。为现场性能测试提供其他必要的环境。
开发方
按照公司计划进度完成系统测试的验收后,根据性能测试结果,要求开发人员能够及时修改性能测试出现的问题,提供解决方案和解决方式。
测试方
根据客户方软件使用习惯,性能测试指标收集,综合考虑,输出性能测试计划和方案。

1.3 参考资料

《XXXXX性能测试指标收集》
《XXXXX需求规格说明书》

1.4 项目架构图

1. 5 适用范围
用户

开发人员

项目经理

测试人员


1.5 限制与约束
测试限制条件主要存在于需求方面

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

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

1.6 术语表

Jmeter简介:
Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具。

用于对软件做压力测试,它最初被设计用于Web 应用测试,但后来扩展到其他测试领域。
它可以用于测试静态和动态资源。

例如:

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


Java   对象

数据库

FTP   服务器

等等。

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

另外,JMeter 能够对应用程序做功能 / 回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。
为了最大限度的灵活性,JMeter 允许使用正则表达式创建断言。
Apache jmeter   可以用于对静态的和动态的资源(文件, Servlet , Perl 脚本, java   对象,数据库和查询, FTP服务器等等)的性能进行测试。

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

JMeter的作用:

1. 能够对 HTTP 和 FTP 服务器进行压力和 性能测试 ,也可以对任何数据库进行同样的测试(通过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/NETSCAPE 的 HTTP请求 ,也可以记录apache 等 WebServer 的 log 文件来重现 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 
性能测试场景

验证维度:并发用户数
场景1 :500用户在系统中只有少量数据情况下,每秒登录10个用户

场景2 :500用户在系统中只有少量数据情况下,每秒登录100个用户
场景3 :500用户在系统中只有少量数据情况下,一次性并发500个用户
场景4 :500用户在系统中已存在XXX业务数据500万,XXX业务数据200万,XXX业务数据200万数据,XXX业务数据200万数据情况下,每秒登录10个用户
场景5 :500用户在系统中已存在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

电话:17791330189

QQ大群:925205234


(文档模板需私信获得)


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69985967/viewspace-2731937/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
行业在岗10年+大牛集合地,线下坐标西安,多年致力于企业新人的培养,擅长职业规划,零基础转行学测试方向咨询师。

注册时间:2020-10-24

  • 博文量
    34
  • 访问量
    23974