性能测试之业务测试模型浅析

随着社会的发展,软件产品应用到社会的各个行业领域中,且大部分支持企业关键的业务应用,如制造业的ERP系统、电信系统、银行的核心业务系统、银行卡等卡业务系统以及基于电子商务的业务系统等等都依赖于软件业务系统的运行,这些关键业务系统的运行状况关系到整个企业的运转命脉,假如哪天系统性能突然下降或者系统崩溃,这将给企业带来巨大的损失,就像证券交易系统时时×××易的而且关系到金钱,系统一旦崩溃说不定该交易所会被愤怒的股民砸了。因此对改善系统服务品质,减少操作失败等风险,提高系统的可用性,缩短系统响应时间,提高客户的满意度,这对软件性能来说非常重要,而这些问题在依赖优秀设计人员设计优良的架构外,还得依赖专业的性能测试人员对其系统进行全方位的测试,进行性能分析,检验系统的性能是否达到预期的性能指标。

每个行业系统软件都有核心的业务核心交易以及部分辅助×××易系统来支撑这个行业的运作,因此作为一名专业的性能测试人员,不仅要对被测试对象的业务背景,系统的实现目标、系统的架构等都要去调研了解,只有这些了解了才能设计出好的测试案例,部署好的测试场景更真实的模拟真实环境进行性能测试。

业务模型调研是测试前非常重要的一个调研环节,做为一个软件性能测试人员,对该系统的业务测试模型调研是非常重要的,性能测试业务模型建立要以实际生产环境系统业务操作模式为标准依据,只有模型符合实际的生产业务操作,性能测试的结果才能真实有效的反映将来上线的生产系统的实际性能情况。根据长期性能测试经验,应用系统系统的性能测试模型分析应当按照下面几个步骤来实施:

全面分析应用系统系统上线后频繁使用的业务交易,如每天业务交易次数最频繁、月底、季度或年末会批量处理哪些业务交易点,这些是实际生产系统所面临的性能压力的来源和类别,如果是已经上线系统,则可以通过分析历史数据来确定各种业务交易数据量在整个系统压力所占比例,例如确定前台应用子系统的业务类别和并发比例,后台批处理业务的数据规模和类别等。最终目的是建立一模拟生产应用系统系统实际运行场景的业务模型。

 如果是一个新的项目而且是长期使用的项目,在对业务模型不是非常了解或者对今后几年该行业的哪些交易不是很明确的情况下,可以在建数据库表是尝试对业务表建时间戳,因为时间戳可以记录每个时间段的业务交易以及交易量,这样是最好最容易分析系统交易量,而且最精准的,但是在实际设计方面中很少人去设计这方面的要求,对每张表增加时间戳,毕竟需要考虑额外的系统性能开销。

了解系统业务背景介绍,该业务系统面向服务对象是哪些?如果是使用中的系统或者需要改造的系统,那目前该系统注册用户数多少?在线用户数多少?各类交易的用户数多少?系统各类用户的操作行为习惯?何时登录何时集中处理哪些类型的业务交易?

例如,银行业的前端业务处理系统,在月底或者月初这几天时间,都要处理很多企业类公司的薪资发放以及家庭水电费代缴等业务处理,这时的并发量非常惊人,而对于ATM前置机这时大部分员工也会通过ATM前置机进行薪资额度查询、存取操作,这样的高并发数据交互是性能测试人员关注点。

ATM这种类型的银行系统在中大型城市中节点多,使用人数也多,而且业务处理频繁,数据交互吞吐量非常大,因此这种业务系统的交易处理速度是金融行业系统重要关注点,这些关系到银行的经济效益和广大民众对该银行业务系统的评价和今后是否使用该业务系统来做存取款操作的选择对象。一般这种业务流程中,业务终端前置机交易应用服务器数据库主机服务器形成了业务交易流程,每个节点在一定工作压力下能够正常运行是整个系统正常运转的基础。也就是说,如果其中任意一个节点在业务压力下发生了拥塞、处理不及时等不正常情况,那整个系统都无法正常运转。
  对于ATM存取款机最频繁使用的交易就是插入银行卡输入账户密码进行账户与密码身份验证,一套系统的登录一样是最简单但是使用数最频繁的,因此在设计测试案例时,类似交易是重点测试点,如果系统登录都有问题,系统内部的交易优化得在怎么好也是徒劳无功。

     因此在对类似系统进行性能测试过程中要有业务人员配合支持一起做好前期的性能测试用例设计分析。这样才能设计好符合实际的测试场景,设计好测试策略,在压力测试时才能测试出符合实际生产环境应用场景的性能数据价值,而且这些测试场景对性能测试结果有决定性的影响,因此测试场景的设计是非常关键的,场景的设计需要和业务应用结合起来。

     一个规范的性能测试流程,业务需求分析是占重要地位,希望做为技术测试人员不要忽略业务的重要性,技术永远是为业务服务的。