• 0
  • 1
分享
  • 浅谈银行开放平台应用系统性能测试
  • 恬恬圈 2019-09-17 13:36:35 字数 2366 阅读 2611 收藏 1

随着银行主机应用的陆续下移,开放平台应用的数量和规模均呈上升趋势,应用系统性能的高低不仅影响着系统上线后的稳定运行,更关系着银行的声誉。性能测试作为应用系统上线前性能把控的最后一道关口,其重要性不言而喻。本文针对性能测试过程中的存在的问题,梳理并研究开放平台应用系统性能测试方法和技术,明确了性能测试过程重要环节的工作策略,目的在于指导性能测试工作开展,进而提升性能测试质量。


1、现状分析

近年来,各商业银行均组建了专业的测试团队承担性能测试工作,工作规范度日益加强,但由于银行开放平台应用系统具有规模大、交易量大、数据量大、技术架构和软件多样化、关联系统复杂等特点,性能测试工作仍存在一些问题。一是测试范围缺乏合理的筛选机制,导致重要交易可能未纳入测试范围;二是通过准则的制定依赖于开发人员和测试人员的项目经验,与实际情况可能存在较大差异;三是测试环境配置以完成测试任务为目标,与生产环境差距较大,无法有效模拟生产系统运行情况;四是场景设计风格各异,直接影响了测试质量;五是性能调优经验未能有效的传承,导致重复问题解决耗费时间较多。基于以上情况,规范性能测试过程,传承历史测试经验,对性能测试工作上的开展尤为重要。


2、实施策略

2.1 筛选测试交易范围

筛选测试交易范围应结合测试目标和项目范围,明确系统和关联系统的交易列表,分析用户量或交易量分布情况、交易复杂度、数据量,再根据交易特性评分表(如表1所示)对交易进行评分和排序,最终结合测试周期、工作量投入情况以及业务增长趋势等确定性能测试范围。

表1 交易特性评分表

1.png

其中,生产环境有应用监控的系统应获取生产环境交易的用户量、交易量及数据量,新系统或生产环境没有应用监控的系统应预估交易的用户量、交易量及数据量;交易复杂程度的可根据交易的表操作和外部调用计算,计算公式为交易复杂度=交易的表操作*0.1+外部调用*2。


2.2 制定测试通过准则

2.2.1 联机交易

联机交易的性能测试通过准则应包括但不限于并发用户数或TPS、响应时间、成功率、资源利用率。其中,经营管理类应用系统等交易量较小的系统,宜以并发用户数作为通过准则;网银、掌银、线上支付等交易量较大的系统,宜以TPS作为通过准则。在制订各项指标时,应采集交易系统日均交易量、峰值交易量、响应时间等生产监控指标,并结合业务预期进行评估,制订各项指标通过标准。

① 并发用户数估算可按实时在线用户数的10-20%估算,或通过公式C=nL/T、计算(C是平均的并发用户数;n是login session的数量;L是login session的平均长度;T值考察的时间段长度;是并发用户数峰值)。

② TPS宜采用二八原则(指80%的日均交易量在20%的时间段内完成)或峰值交易量计算的最大值。

③ 普通联机交易基准响应时间推荐在500ms以内,接口类交易基准响应时间推荐在50ms以内;并发响应时间可参照非功能需求的相关指标制定,接口类联机交易推荐在500ms以内,非接口类普通联机交易推荐在1s以内,非接口类复杂联机交易推荐在3s以内。

④ 成功率应在99.6%以上。

⑤ 资源利用率参照生产环境上资源利用率的监控策略制定,例如:CPU利用率不超过80%,不存在内存溢出等。

测试环境不能完全匹配生产环境资源配置时,并发用户数或TPS、响应时间等指标应根据测试与生产环境的比例关系进行调整。


2.2.2 批量程序

批量程序的性能测试通过准则应包括但不限于批量节点号/节点名称/批量程序名称的处理数据量/生成数据量、并发子节点数、批量程序执行时长、成功率和资源利用率。

执行时长应符合批量程序要求的时间窗口,成功率应为100%,资源使用率参照生产环境上资源利用率的监控策略制定。


2.3 环境配置

环境配置涉及部署架构、软硬件配置和测试数据三个方面,各方面的具体配置要求如表2所示。

表2 环境配置要表

2.png


2.4 场景设计

测试场景应结合应用系统特点、测试目标、测试类型以及生产系统运行情况进行分析并设置,测试类型主要分为压力测试、负载测试、对比测试、容量测试、配置测试和高可用测试。

联机交易测试场景一般应包括基准测试、单交易负载测试和单交易/混合交易疲劳测试场景,涉及系统架构调整、基础软件升级、系统配置参数调整等情况应进行对比测试,对比测试场景应包括单交易/混合交易疲劳测试场景。其中,单交易负载测试/混合交易负载测试可按需增加阶梯负载测试;待测交易为单个交易时,疲劳测试场景可执行单交易疲劳测试场景;混合交易疲劳测试可加入背景交易模拟系统的实际运行情况,混合交易配比应根据各交易的交易量和响应时间来确定。常用测试场景描述如表3所示:

3.png

表3 常用测试场景表

批量程序测试场景应根据并发节点数设置基准测试和并发测试,铺底数据量与生产环境差距较大时推荐进行对比测试。


2.5 性能调优

性能调优推荐按照“硬件-网络-系统配置参数-应用程序-系统架构”依次进行分析、调优,各调优项的关注点如表4所示。

表4 性能调优关注点

4.png


3、结束语

本文围绕开放平台性能测试执行过程中的五个重要环节,给出了具体的实施策略和技术要求。进一步研究方向包括:一是梳理应用系统类型,按照应用系统类型和交易类型细化性能测试方法;二是建立性能指标监控平台,集中监控操作系统、中间件、数据库性能指标及应用性能指标,提高性能指标获取和性能调优的自动化水平;三是探索云测试技术,利用云端的测试服务来进行更高效的测试;四是研究挡板工具和交易日志回放技术,提升性能测试的专业化水平。


版权声明:本文出自《51测试天地》第五十四期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 我们使用一个电商项目进行演示,在调用登录接口完成登录之后,通过查看购物车接口获取该用户购物车中的信息。也就是说如果需要查看到购物车中的信息,则我们先要是登陆状态,这样的情况下,就需要有Cookie信息的存在了。提示:要获取购物车接口中的信息,需要使用登录后的Cookie保持登录状态。1、在HTTP信息头管理器组件中添加Cookie信息实现步骤:前提我们手动登陆电商网站,地址:http://www.testingedu.com.cn:8000/index.php/Home/user/login.html。然后通过工具获取到登陆后的Cookie数据。把Cookie数据存储到HTTP信息头管理器组件...
            9 9 4628
            分享
          •   从去年决定跳出舒适区,应聘大厂,截止到目前已经将近一年,值此之际,总结下自己近一年在大厂的经历。  希望通过我的感触,能够帮助你们进一步了解大厂的测试工作。  维护上下游合作关系  在大厂,人际关系非常重要,为什么要把它放在第一位,是因为在大厂里做测试的时候,所涉及的系统错综复杂,种类繁多,经常要进行上下游的联调测试。  我刚开始的时候,测试联调找不到相关的责任人,使得自己在测试工作中浪费了大量的时间和精力,所以进入大厂之后,一定先要:  首先,梳理自己负责系统的上下游联系人,将其联系方式整理起来,方便后续查询联络,可以参考下面表格进行简单汇总即可。  其次,维护好自己与前辈的关系,保持自...
            12 12 1793
            分享
          • 一.测试用例的基本要素1.什么是测试用例这个在前面其实已经说过了,具体可以看软件测试的基本概念 这篇博客,这里就简单介绍一下:测试用例是向被测试系统发起的一组集合,包括测试环境,测试步骤,测试数据,预期结果!2.为什么软件测试人员要写测试用例?这里有如下几个原因:测试用例是测试执行的依据;测试用例可以复用,在进行回归测试的时候就不用再重新编写了;测试用例可以衡量需求的覆盖率;后人可以借鉴;手工测试用例是自动化测试的依据二.测试用例的设计方法1.基于需求设计测试用例需求是测试人员进行测试的依据,测试人员分析需求,验证需求的合理性和正确性,无二义性,从需求当中提取出测试项,根据测试项进行进一步的细...
            0 0 1838
            分享
          • 一、简介 一般程序中A类的m1方法调用B类的m2方法,而B类的m2方法又调用了C类的m3方法以此类推等等,而其中的某个方法的一些数据又需要调用其它服务或者查询数据库,一般单元测试只针对某个功能进行测试,但是如上面的情况在做单元测试时受程序结构、环境等条件限制就会变得非常复杂。mock可以模拟对象返回方式来解决与该单元功能不相关的依赖关系,即模拟B类的m2方法返回结果来进行A类的m1方法单元测试,排除受到B类C类等其它不相关因素的影响。二、使用mock做单元测试的优点1、效率高就是跑Java代码,不需要启用Spring及连接数据库。2、TDD(测试驱动开发)即先编写单元测试用例,根据单...
            0 0 2415
            分享
          •   前言  新手在做写代码的时候容易卡壳,尤其当接触的函数以及其他知识比较多的时候,经常会看完需求之后不知道自己该用什么方法来实现它,实现的逻辑可能你有,但怎么该用什么函数给忘了,这其实就是知识的储备不够,你记不住哪个函数有什么作用,自然一头雾水。  这几天我专门整理了Python常用的一些函数,从最基础的输入输出函数到正则等12个板块的,总共100多个常用函数,方便小伙伴们进行快速地记忆,每天快速过一遍,用的时候再加深一下,慢慢地你就会摆脱写代码卡壳的状况。  虽说自学编程的时候我们强调更多的东西是理解和实际去敲代码,但有些东西你是要必须牢记的,否则你写代码将寸步难行。老手当然已经烂记于心,...
            0 0 1010
            分享
      • 51testing软件测试圈微信