性能测试 – 测试方案设计(一)

主要–性能测试基本能力目标:

1. 设计性能测试的项目计划

2.可执行测试

性能测试 测试方案设计(一)性能测试 测试方案设计(一)

一、什么是性能测试
1、定义:性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

2、负载测试(Load Testing):确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,查看系统各项性能指标的变化情况。
PS:系统最大值

3、压力测试(Stress Testing):是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
PS: 压力测试

4、稳定性测试(Stability Testing):增加系统资源占用、系统长时间的大并发运行或正常流量的系统访问等,验证系统长期稳定工作的能力。

二、性能测试的项目流程

1、选择项目干系人(基本参加的人)

(1.1 客户–> 1.2 产品经理–> 1.3 运营人员–》1.4 公司领导–》1.5项目经理–》1.6 系统架构师–》1.7 开发人员–》1.8 运维工程师(系统和网络)–》1.9 DBA–》2.0 安全人员–》2.1 测试经理–》2.2 测试团队其他成员)

2、文档和信息的收集

2.1 客户需求;

2.2 运营人员需求;

2.3 产品人员需求;

2.4 架构师的系统架构设计;

2.5 开发人员的详细设计;

2.6 数据库的数据字典;

2.7 项目时间的安排(开发、测试、上线)

3、信息收集

3.1 在系统代码开发完成之后和功能测试完成之前

3.2测试组织派专人采用现场或非现场的方式

3.3技术调研重点内容:

3.3.1 被测技术的技术实现

3.3.2 与其他系统接口关系及其技术实现(Mock)

3.3.3 本系统测试数据

3.3.4 与相关系统测试数据的关系

3.4 目的:初步确定测试技术方案与相关的测试数据准备方案

4、准入评审(就是,是否可以进行性能测试)

4.1 在性能测试正式启动之前,需要对两个方面进行评审

4.1.1 被测系统是否符合准入标准

4.1.2 实施性能测试的可行性和必要性

ps:建议填写性能测试单,在性能测试过程中需要进行什么类型的测试

4.2  目的:考察被测系统是否具备性能测试的条件

4.2.1 不符合测试条件的系统会导致测试难以实施,或者测试结果严重失真。

4.2.2 勉强测试会使测试工作失去意义,浪费大量的时间、人力和软硬件资源。

5、性能测试建模(原则:模拟系统所有可能发生的最极端情况)

5.1 建模(现有数据的模型)

数据建模(数据库里面的所有数据)

场景建模(有哪些场景,情况)

环境建模(网络状况)

压测建模 (什么硬件要求,生产环境是什么标准的)

5.2 原则:真实模拟实际系统运行情况

5.3 所有性能测试工作都以此模型为依据

5.4 合理控制项目周期

6、并发量与每秒交易量(TPS)的联系

6.1 性能测试误区

— 并发量越大系统压力越大

6.2 并发量与每秒交易量的联系

并发量用于考察系统的用户支撑能力;

每秒交易量才是衡量大多数系统的真实压力的正确指标;

结论:随着并发量的增加,TPS(每秒事务处理量)并不是线性增长的。

7、性能测试最核心指标(又快又好)

TPS 每秒事务处理量(事件)  and 响应时间 (时间)

8、基线:当前版本性能情况。

三、性能测试方案关键点

1. 测试目的(清晰明确,没有歧义)

2. 测试范围(交易列表,路径图等)

3. 性能指标(要可测量,量化指标最好给出具体数值,无法定量的给出说明)

4. 数据量 (给出具体数值和参考依据,无法定量的给出说明)

5. 测试环境(氛围网络、硬件、软件和拓扑图)

6. 测试工具和监控工具以及相关环境

7. 风险控制(风险描述、严重程度、规避办法、负责人等明确清晰)

8.测试策略(符合项目实际情况,具有可执行性)

9.角色分工(无遗漏,指责描述清楚)

10.时间周期

11.测试执行协作等(符合项目实际情况,没有遗漏,具有可执行性)

四、设定性能测试的目的和目标

1、和性能测试项目的干系人一起确定本次性能测试的具体目的:

1.1 验证改进的性能效果,需要和以前的测试结果进行比对。

1.2 新的业务上线,验证西系统能够满足系统的上线指标。

1.3 验证系统稳定性

1.4 验证系统的架构是否存在瓶颈

2、列出性能测试成功的数据指标:

2.1 吞吐量TPS

2.2 每个事务平均响应时间

2.3 确定数据库的数据量

2.4 系统的稳定运行时间的要求

2.5 是否需要考虑系统支持水平扩展

2.6 考虑系统的最大容量

3、风险评估

3.1 可能影响测试过程的因素

3.2 可能影响测试结果的因素

3.3 规避方法

3.3.1 人员管理,提高自己能力,做到全部;

3.3.2 时间,明确好项目时间;

3.3.3 技术难题,提前做好技术储备;

五、性能测试团队的组建

系统架构师

核心开发人员

运维工程师

DBA

性能测试方案设计人员

性能测试工具和脚本开发工程师

性能测试执行人员

性能环境维护人员

六、测试环境的准备

6.1 性能测试环境的搭建

使用visio软件来设计性能测试环境的架构

性能测试环境需要和功能测试环境分开

性能测试环境组成:web服务器、缓存服务器、数据库服务器、负载均衡服务器等

6.2 测试环境系统的建模

分析系统真实运行的网络拓扑环境

明确公司可对性能测试进行投入的软硬件资源

最好的性能环境就是待发布的生产环境;次好的性能环境就是1:1复制的生产环境

对于软硬件资源不足情况下,同比例缩小系统每一层结构中的机器数量,注意,系统的每一层必须要有机器

6.3 测试环境的测试数据

数据库中该有多少测试数据才是合理的呢?

(1)需要考虑、中长期系统运营的数据出现的可能性;

(2)和性能干系人讨论,讨论得出数据

(3)需要考虑数据库配置文件缓存参数的设置情况

(4)明确Cache预load的数据说明

PS:性能报告问题关注重点:该性能是否能满足实际运行时的需要,现有设备是否是制约系统性能表现的最大因素

       

留言

本站文章如未特殊注明,均为原创,转载请注明出处: 未必平凡  本文链接地址: https://vv2014.com/1438.html