基于开放平台的软件性能测试方法
- 格式:pdf
- 大小:1.58 MB
- 文档页数:3
3.输出
按照测试单位规定的模板输出相应的《性能测试方 案》。
三、性能测试计划
制定基于开放式平台应用的压力测试计划应采取的 基本策略:①需要结合应用程序在一个基本成型的状态 下进行;②性能测试计划的时间点需要考虑是否对主机 有依赖;③性能测试的数据是否对主机环境的数据造成 破坏;④性能测试的次数需要考虑做一次还是两次等。 从项目管理方法的角度来看,基于开放式平台的应 用性能测试方案可以用表2进行描述。
FCC
80
中国金融电脑
2009·3
输入 1������� .平台环境因素 2��������� .投产时间约束条件 3����� .历史信息 4��������� .平台生产性能现状
4.平台生产性能现状
此外, 平台性能测试计划还应该考虑平台的数据是否 独立或依赖于主机或其他应用平台, 假如存在依赖关系需 要考虑相关应用系统的测试计划,从而进行整合。
技术应用
软件测试
基于开放平台的软件性能测试方法
中国工商银行股份有限公司数据中心(北京) 林勇
杜泽晖
霍嘉
金融软件性能(压力)测试工作流程和方法可遵 循软件测试流程的一般规律,但是也有其特殊性,主要 体现在两个方面:一是工作任务的内容不同,比如性能 测试需求的收集主要是确定业务交易模型及系统性能指 标;二是工作流程的任务分解有一些特殊内容,比如性 能测试工作中可以分解出测试场景开发这样一些特定任 务。对一个测试单位来讲,建立统一标准的测试方法可 以推广好的工作思路、工作方法及工作经验,有利于提 高各测试部门的工作质量与工作效率。
环境和测试环境的统计,目前生产环境高峰期联机交易 峰值为2500笔/秒,测试环境联机交易峰值为550笔/秒, 假定生产环境某交易在高峰期的交易为300笔/秒,那么 该交易在测试环境进行压力测试时要达到类似生产环境 的压力需要的并发数(即LR用户数) 为550× (300/2500) =66。 对上述计算过程进行抽象即能得到测试环境单体交 易并发数与生产环境的一元映射关系为 单体交易测试环境并发数(LR用户数)=测试环境 所有联机交易峰值×(单体交易生产环境峰值/生产环境 所有联机交易峰值)
表1 基于开放式平台的应用性能测试方案
输入 1������� .平台环境因素 2������� .交易历史状态 3����� .配置信息 4��������� .业务特征分析报告 5������� .压力测试脚本 6������������� .版本压力测试数据抽取工具 7������� .非功能性需求 8������� .《总体方案》 9.交易行为特征
工具和技术 1���������� .压力测试方案讨论会 2������� .压力测试模型 3������� .线形统计模型 4����� .专家判断 5��� .映射
输出 1��������� .项目性能测试方案
FINANCIAL COMPUTER OF CHINA 2009·3
79技术应用软源自测试能测试后,得出单台(套)的当前计算机性能在各种资源消 耗下的性能表现,比如CPU在消耗50%的情况下,可以 支撑1200个交易并发的情况下交易响应时间在合理范围 之内,而且交易成功率达到95%;CPU在消耗70%的情况 下,可以支撑1500个交易并发的情况下交易响应时间在 合理范围之内,而且交易成功率达到95%。这些数据是生 产团队根据生产合理的容量配置和交易处理能力进行性 能和容量管理的基础数据,项目组应当对一个综合版本 当前的计算机性能表现的实际数据负责。 此外,假如测试环境下某一应用版本不涉及基础环 境软件(如系统和中间件等)的升级和调整时,注意在 应用性能测试期间应该和生产环境能保持一致,以避免 由于环境问题带来的适应测试结果偏差。 从项目管理方法的角度来看,基于开放式平台的应 用性能测试方案可以用表1进行描述。
表2 基于开放式平台的应用性能测试方案
工具和技术 1����������� .性能测试计划讨论会议 输出 1������������ .批准的平台性能测试计划
2.工具和技术
(1)压力测试方案讨论会议指测试经理或负责性能测试 的项目经理召集相关人员就性能测试方案的讨论会议。 (2)压力测试模型指测试经理或负责性能测试的项目 经理已经完成的该应用系统性能的模型。 (3)压力测试线形模型是一种简单的统计生产交易 行为和特征数学方法,比如将交易量、高峰期的并发 用户吞吐量(TPS,Transactions Per Second)、高峰期的交易响应时间等各种因 素按照预定天数进行统计然后进行线形模型 求均值的数学方法,这种简单的数学方法往 往能解决大量复杂的性能模型问题。 (4)专家判断是指任何和项目相关的技 术、业务领域的经验,专家判断并不是专家 的工作或作出判断的角色一定是专家。 (5)映射(Mapping)。为了解决已经确定的进行压力测 试的交易在测试环境LR(LoadRunner)用户数问题,采用 映射方法,即测试环境进行压力测试的交易配比及LR用 户数的确定原则:假设压力测试项目组根据目前对生产
测试环境准备 测试执行 测试环境准备标准 测试执行标准 测试计划 测试计划标准 测试方案设计 测试设计标准
测试报告 流程
测试报告标准 标准
一、性能测试概述
结合业界一般理论和实际工作情况,我们将性能测 试工作流程分解为测试方案制定(测试需求、适应性测 试设计)、测试环境准备、测试场景开发、测试执行、 测试报告等流程。对于性能测试工作中的每一流程,都 可以进一步明确工作方法和实施步骤,设计标准的工作 工具(模板或表单),实现标准化操作。 需要特别指出的是,上述流程中的流程分解及其对 应标准的设计,都可以进一步细分,上述各流程既可以 分步骤地执行,也可以适当并行,比如性能测试方案制 定完成之后,就可以同时进行测试环境准备及测试场景 的开发工作。这也是工作规范的要求之一。 为此,本文提出基于开放平台(B/S结构)的性能 测试工作规范如图1所示。
1.输入
(1)输入中的平台环境因素描述了测试环境的资源因 素和配置因素以及架构因素,这些都是和生产环境存在 一致性的因素。 (2)交易历史状态描述了该平台的交易特征, 比如响应 时间、 用户的期望感受以及以前典型的性能特征因素。 (3)配置信息描述的是和生产环境一致的配置设备, 还是单台 (套) , 配置设备存在很大差距或基本相等。若存 在差距的情况下,还包括量化后的差距比例,数据量的 差距或其他中间件环节因素。
78
中国金融电脑
2009·3
技术应用
软件测试
性能验证,还是问题诊断,或是性能调优。 (2)明确系统测试模型。 主要是确定采用B/S模式, 还 是C/S模式, 或是特殊模式 (比如网关和第三方模拟) 。 (3)明确业务需求。典型的业务需求分析,包括联机 交易和批量处理,尤其是对业务流程的梳理。 (4)明确项目组。根据目标系统的特点,确定参与测 试工作的应用技术负责人员、业务负责人员、开发团队 支持人员或外部支持资源等。 (5)明确测试工具。主要包括是否需要专门安装或开 发工具(比如安装Oracle Statspack或TOP等)。 (6)明确性能指标要求。主要包括测试目标(比如并 发用户数、响应时间等)及性能分析方法(比如操作系 统监控、数据库表分析等手段)。 (7)明确性能测试数据的分布和抽取策略。例如,集 中式平台应用的数据库具有全行范围的特征或制定了数 据库的分区表原则,则应当考虑压力测试的数据抽取时 尽量分散的原则。 基于目标系统性能测试需求表,项目组根据项目的 实际情况在软件开发团队版本交付前1个月完成压力测 试方案,一般各测试单位都制定了相应的《性能测试方 案》模板,测试项目组可以参照模板进行设计和撰写。 和主机综合压力测试一致的工作方法是,开放式 平台的测试项目经理或成员应该完成该应用在生产上的 交易特征分析现状、配置现状、资源现状、账户现状、 用户对象现状、交易量现状及高峰期交易特征等情况调 查,项目经理或项目组成员只有在了解了 这些信息之后才能够制定压力测试的目标 和场景设计。 应当阐明的是,由于在测试环境的平 台配置不可能完全按照生产的配置进行, 因此,测试环境的单元因素尽量和生产环 境保持一致,比如生产环境有50台(套)个 人网银服务器对外服务,项目组应保持单 台(套)的机器配置和生产一致,以便在测 试环境下对该单元因素的机器配置进行性
(4)业务特征分析报告描述了业务部门推出或当前该 系统的交易特征以及业务发展的趋势。 (5)压力测试脚本是基于BP描述的脚本,包括了软件 实体和数据实体。 (6)版本压力测试数据抽取工具描述的是为了开发 或调试脚本应该采取的技术手段或工具,通常情况下是 SQL语句或作业。 (7)非功能性需求描述了该应用系统的非功能性需求 (NFR),比如交易并发、用户及交易量等基本的非功 能性需求量化特征。 (8)《总体方案》描述了开发团队是如何架构或组建 开发该应用系统的各个组建并描述了各个模块或组建的 基本功能和特性。 (9)交易行为特征描述基于该典型的应用系统不一般 的交易行为,比如在典型的时间或在典型的情况下需要 达到的并发或响应时间或其他交易占用资源的行为。
图1 性能测试工作规范
二、性能测试方案
负责制定性能测试方案的工程师应该了解和掌握的 一个前提是该项目或系统(或版本)要基本稳定,具体 到一个大型的版本(项目集)测试中,最好是安排到目 前的综合版本测试的第二阶段开展,但也不能安排得太 晚,否则将失去问题修正和缺陷修复的机会。因此,性 能测试需求可以在版本测试的前期展开,并由科技管理 部门组织研发、测试、生产等部门确定对软件非功能性 需求进行评审的时间点。 压力测试方案的主要工作内容包括: (1)明确压力测试的应用领域。主要是确定项目属于