PGTM通用性能测试模型
PTGM通用性能测试模型
一、 测试前期准备阶段
目标:
1. 保证系统稳定性;
2. 建立合适的测试团队。
活动:
1. 系统基础功能验证
类似于BVT测试,确保被测系统已具备进行性能测试的条件。
a. 性能测试属于验收测试一部分:性能测试安排在功能验收测试之后。
b. 性能测试不属于验收测试:测试之前至少进行一次系统的功能覆盖测试。
2. 组建测试团队
根据项目情况确定角色、职责、技能,组建团队。
3. 测试工具需求确认
确定测试工具应该具有的功能点,可从以下几方面进行分析。
a. 操作系统:测试工具能否运行在本操作系统上?是否支持本操作系统的监控?
b. 应用服务器环境:是否支持对本应用服务器的监控?
c. 数据库环境:是否支持本数据库的监控?
d. 应用使用的协议:被测系统使用了哪些协议?哪些协议需要在性能测试中通过工具进行录制和产生负载?是否支持进行录制和产生负载的协议?
e. 网络环境:是否支持防火墙?是否支持负载均衡?
f. 测试管理支持: 是否提供方便的测试结果分析和管理?
4. 性能预备测试(可选)
测试之前通过简单的探索性测试或其他方法对系统性能表现进行初步了解。
二、 测试工具引入阶段
目标:选择合适的工具、为测试工具的使用确定范围以及在测试过程中规定和规范测试工具的使用。
活动:
1. 选择工具
圈定几种可用工具,对照前面第3节的问题列表进行功能符合度评估,选择符合度最高的工具。 如果都不符合,则可以考虑自行构建。
2. 工具应用的技能培训
培训对象:主要为测试开发、测试执行和测试分析角色。
培训要求:先确定各种角色的详细技能标准,并给出培训是否达到预定目标的评判准则。
培训形式: 内部培训、经销商培训、外包服务商等。
3. 确定工具的应用过程
确定性能测试工具在测试中的具体应用范围、工具使用过程中的问题解决方法。哪些工作用工具完成?工具在使用过程中的问题由谁来解决?工具脚本如何管理?
三、 测试计划阶段
目标:生成指导整个测试执行的计划。
活动:
1. 性能测试领域分析
性能测试领域包括能力验证、规划能力、性能调优、发现缺陷四个领域。
能力验证:明确系统在固定条件下的性能能力;
规划能力: 了解系统性能能力的可扩展性、系统在非特定环境下的性能能力;
性能调优: 通过测试(发现问题)-调优(调整)-测试(验证调优效果)提高系统性能能力;
发现缺陷:通过性能测试手段发现应用缺陷。
表1: 不同领域的性能测试目标和性能目标
应用领域 |
性能测试目标 |
性能目标 |
能力验证 |
验证系统在固定条件下的性能能力 |
重点关注关键业务响应时间、吞吐量。 |
能力规划 |
验证系统的性能扩展能力,找出系统能力关键点,给出改善其性能扩展能力的建议。 |
业务的性能瓶颈。 |
性能调优 |
提高系统的性能表现 |
重点关注关键业务的响应时间、吞吐量。 |
发现缺陷 |
发现系统中的缺陷 |
无 |
表2: 性能测试应用领域与测试方法的关联
能力验证 |
规划能力 |
性能调优 |
缺陷发现 |
性能基准比较 |
|
性能测试 |
★ |
||||
负载测试 |
★ |
★ |
|||
压力测试 |
★ |
★ |
★ |
★ |
★ |
配置测试 |
★ |
★ |
|||
并发测试 |
★ |
★ |
|||
可靠性测试 |
★ |
||||
失效恢复测试 |
★ |
★ |
★ |
2. 用户活动剖析与业务建模
目的在于寻找用户的关键性能关注点。
a. 用户活动剖析有两种方式:
1). 系统日志分析, 通过应用系统日志了解用户的活动协,分析出用户最关注、最常用的业务功能以及达到业务功能的操作路径。
2). 用户调查分析,不具备日志分析条件时采用的一种估算方法,通过用户调查问题、同类型系统对比的方法获取用户最关注、最常用的业务功能等内容。
b. 业务建模,对系统的行为及其实现 方式和方法建模,一般采用流程图描绘出各进行之间的交互关系与数据流向
3. 确定性能目标
从需求和设计中分析出性能测试需求,结合用户活动剖析与业务建模的结果,最终确定性能测试的目标。
4. 制定测试时间计划
根据性能测试活动,为每个活动阶段给出可能的时间估计,最终形成时间上的计划。具体方法可以参考项目时间管理。
四、 测试设计与开发阶段
活动:
1. 测试环境设计
测试环境设计包括软硬件环境、数据库环境设计、和环境的维护方法,其中数据库环境设计最关键也最容易被忽视。
2. 测试场景设计
测试场景一般是实际业务运行的剖面,包括业务、业务比例、测试指标的目标以及需要在测试过程中进行监控的性能计数器。
比如:
场景名称 |
场景业务及用户比例分配 |
测试指标 |
性能计数器 |
用户登录 |
登录业务,100%用户 总用户数200人 |
响应时间 (<5秒) |
服务器CPU使用率 服务器内存使用率 |
标准日常工作 |
入账业务,40%用户 查询业务,30%用户 统计业务,30%用户 总用户数200人 |
响应时间 (入账<6秒 查询<5秒 统计<10秒) |
服务器CPU使用率 服务器内存使用率 |
…… |
场景体现的是用户实际运行环境中具有代表性的业务使用情况。用户场景一般由用户在某一个时间段内的所有业务使用状况组成。
3. 测试用例设计
测试用例设计是对测试场景的进一步细化,包括场景中涉及业务的操作序列描述、场景赵本山要环境部署等。
如一个复杂业务的测试方案包括如下步骤:
a. 时间同步方法
b. 设备和用户模拟方法
c. 执行方法
d. 数据记录方法
e. 测试持续时间
4. 辅助工具与脚本开发
脚本和辅助工具的开发是测试执行之前的最后步骤,测试脚本是对测试操作的体现,一个脚本一般就是一个业务的操作过程描述。
五、 测试执行与管理
目的:测试执行与管理过程用于建立 合适的测试环境,部署测试脚本和测试场景,执行测试并记录测试结果。
活动:
1. 建立测试环境
搭建需要的测试环境,在设计完成用例之后就开始该活动。建立测试环境一般包括硬件、软件系统环境的搭建、数据库环境的建立,应用系统的部署,系统设置参数的调整以及数据环境准备几个方面的工作内容。
测试环境维护是另一个比较困难的问题,数据量巨大,涉及测试辅助工具和程序等,可以在测试前使用检查表检查测试环境的可用性。
2. 部署测试脚本和测试场景
可通过测试工具本身提供的功能来实现测试脚本和场景的部署。保证场景与设计的一致性,保证需要监控的计数器都已经部署好相应的监控手段。
3. 执行测试和记录结果
测试执行和测试结果的记录都可以由测试工具完成。
六、 测试分析
目的:对测试结果进行分析,根据测试的目的和目标给出测试结论。
要求:测试分析人员对软件性能、软件架构和各性能指标具有相当程度的了解。
PGTM通用性能测试模型的更多相关文章
- 「视频直播技术详解」系列之七:直播云 SDK 性能测试模型
关于直播的技术文章不少,成体系的不多.我们将用七篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面.深入地了解视频直播技术,更好地技术选型. 本系列文章大纲如下: ...
- StarSpace是用于高效学习实体向量的通用神经模型
StarSpace是用于高效学习实体向量的通用神经模型,用于解决各种各样的问题: 学习单词,句子或文档级嵌入. 文本分类或任何其他标签任务. 信息检索:实体/文件或对象集合的排序,例如 排名网络文件. ...
- 通用性能测试过程模型GAME(A)
1.3.1 Goal(定义目标) 制定一个明确而详细的测试目标是性能测试开始的第一步,也是性能测试成功的关键. 本步骤的开始时间:需求获取阶段 本步骤的输入:性能需求意向 本步骤的输出:明确的性能测 ...
- APTM敏捷性能测试模型
随着应用系统的日趋复杂,仅在系统测试和验收测试阶段执行性能测试已经不能满足迟早发现和解决系统性能瓶颈的要求,Connie Smith博士和Lloyd Winlliams博士在他们提出 的软件性能工程( ...
- 性能测试学习之二 ——性能测试模型(PV计算模型)
PV计算模型 现有的PV计算公式是: 每台服务器每秒平均PV量 =( (总PV*80%)/(24*60*60*40%))/服务器数量 =2*(总PV)/* (24*60*60) /服务器数量 通过定积 ...
- Jmeter 设置HTTP RPS性能测试模型
其实也挺简单的,主要是刚接触jmeter,记录一下. 1. 首先需要安装jmeter...真是废话... 2. 需要安装JMeterPlugins-ExtrasLibs-1.3.0.zip: JMet ...
- 性能测试学习之三—— PV->TPS转换模型&TPS波动模型
PV->TPS转换模型 由上一篇“性能测试学习之二 ——性能测试模型(PV计算模型)“ 得知 TPS = ( (80%*总PV)/(24*60*60*(T/24)))/服务器数量 转换需要注意: ...
- LoadRunner性能测试巧匠训练营
<LoadRunner性能测试巧匠训练营>基本信息作者: 赵强 邹伟伟 任健勇 丛书名: 实战出版社:机械工业出版社ISBN:9787111487005上架时间:2015-1-7出版日期: ...
- .NET应用架构设计—面向对象分析与设计四色原型模式(彩色建模、领域无关模型)(概念版)
阅读目录: 1.背景介绍 2.问自己,UML对你来说有意义吗?它帮助过你对系统进行分析.建模吗? 3.一直以来其实我们被一个缝隙隔开了,使我们对OOAD遥不可及 4.四色原型模式填补这个历史缝隙,让我 ...
随机推荐
- java中正则表达式要进行转义的字符。
/** * 转义正则特殊字符 ($()*+.[]?\^{},|) * * @param keyword * @return */public static String escapeExprSpeci ...
- Java -----transient 和static
越来越喜欢深究java基础了,讲讲 transient 和static 对序列化的影响.废话少说,直接上代码就可以了 package serializable; import java.io.Ser ...
- 【IntelliJ IDEA】idea导入项目只显示项目中的文件,不显示项目结构
导入项目之后,只显示项目文件,不显示项目结构 解决方法 1.点击file->project structure..->Modules 点击右上角+加号 ->import Module ...
- android wifi state and wifi ap state
/** * Wi-Fi is currently being disabled. The state will change to {@link #WIFI_STATE_DISABLED} if * ...
- PHP中的$_SERVER['PATH_INFO']
PHP中的全局变量$_SERVER['PATH_INFO']是一个很有用的参数,众多的CMS系统在美化自己的URL的时候,都用到了这个参数. 对于下面这个网址: http://www.test.com ...
- upstart man
man upstart nit(8) init(8) NAME init - Upstart process management daemon SYNOPSIS init [OPTION]... D ...
- HMM MEMM CRF 差别 联系
声明:本文主要是基于网上的材料做了文字编辑,原创部分甚少.參考资料见最后. 隐马尔可夫模型(Hidden Markov Model.HMM),最大熵马尔可夫模型(Maximum Entropy Mar ...
- 两个经典的文件IO程序示例
前言 本文分析两个经典的C++文件IO程序,提炼出其中文件IO的基本套路,留待日后查阅. 程序功能 程序一打印用户指定的所有文本文件,程序二向用户指定的所有文本文件中写入数据. 程序一代码及其注释 # ...
- 【转】Android IDA 动态调试最完善攻略,跨过各种坑
前提条件和运行环境一定要写清楚,不然会有很多坑,坑死人. (1)IDA 是最新的7.0版本 (2) JDB 使用Java安装目录下的 (3)系统是win10 使用命令窗口时有很大的差别 (4)手机是 ...
- Mvc创建并注册防盗链
创建CustomHandler.JpgHandler public class JpgHandler : IHttpHandler { public void ProcessRequest(HttpC ...