• 12
  • 12
分享
  • 浅谈性能测试策略制定——软件测试圈
  • 曼倩诙谐 2021-03-16 10:02:50 字数 1810 阅读 2045 收藏 12

  近年来,随着各行各业客活量的不断发展,软件运行故障多表现为性能问题。因此,软件性能越来越受到测试人员关注,而性能测试是发现和识别系统瓶颈的重要环节。

  但在实际性能测试过程中,测试人员经常遇到交易并发分散、无法确定交易数量的问题。本文主要针对上述问题,介绍测试策略制定方法,以满足不同交易类型的指标测算。

  确定性能测试指标

  在性能测试执行前需要对性能需求进行分析,明确测试指标。通常从以下几个维度进行分析:

1-1.png

  各性能指标如下,在性能测试过程中,如发现测试结果有下述任一指标不满足目标时,需分析查找原因,确定问题并分析调优。

  系统处理能力满足交易量预估。对可以确定交易量的交易,此项为衡量性能的主要指标。

  交易响应时间。目标系统平均完成用户请求的总时长,此指标通常根据系统交易复杂度以及具体的业务需求确定。

  系统资源消耗合理。比如系统CPU资源利用率小于80%,系统MEM资源利用率小于等于80%等,受测试环境硬件所限,可根据实际情况综合衡量。

  交易差错率<0.5%。

  TPS呈线性增长稳定,无较大起伏。

  制定性能测试策略

  针对系统性能测试指标,可根据交易量和交易用户是否确定来制定相应的性能测试策略,主要介绍以下两种方法。

  1、交易量及交易用户数确定

  前提:指所测交易有以往的交易数据,可从系统日志统计中查到相关交易的业务量数据,确定所测交易的日均、日峰交易量以及交易用户数。

  方法1:按并发用户数量设计测试策略

  以银行智能自助设备业务处理系统为例:一笔客户业务交易共产生10个待审核任务需提交后台业务处理审核中心,这10个任务需要2个不同级别的柜员进行审核,其中二级柜员需要处理6笔,三级柜员需要处理4笔,以某省客户交易日均5万笔为业务量基准,二级柜员日均需完成30万笔审核业务量,三级柜员需完成20万笔审核业务量。

  测试策略制定过程如下:

  确定TPS。审核日均交易时间为6小时,即21600秒,则二级柜员日均TPS为13.89笔/秒,同理三级柜员为9.26笔/秒。

  确定并发数。根据业务量统计,二级柜员完成一笔审核任务平均耗时20秒,三级柜员单笔任务平均耗时10秒。

  如果要完成日审核任务,则需配备二级柜员=300000/(21600/20)=278人,三级柜员需配备=200000/(21600/10)=93人。在发起性能交易时,可按照不同级别柜员添加不同交易,各交易设置不同的间隔时间(Pacing),保证不同级别柜员交易时间分别为20秒,10秒。由于性能测试资源与实际生产资源有差异性,测试时的并发用户数按278:93的比例发起即可。

  此策略有一个弊端,由于交易间隔时间不一致,可能会使时间点上服务器承受的并发压力比和设置的并发比不相同,可能会造成间隔时间小的交易处理能力已达上限,但其他交易还能继续增加并发的情况,未能测试到系统的最大处理能力。如果改变用户并发比例,那对并发用户比例的计算也就没意义,此策略不能延续。

  方法2:以系统处理能力设计测试策略

  此策略偏向于服务器端的表现,根据TPS测试系统性能是否满足处理要求。

  比如上述业务,一笔客户业务交易共产生10个待审核任务,二级柜员需要处理6笔,三级柜员需要处理4笔,从服务器端看同时处理完10笔任务才能完成一笔客户业务要求,所以并发可以控制在6:4比例压测服务端。假设所有交易响应时间都在1秒以下,则交易间隔时间可设置为1秒,控制交易发起服务器的并发性。

  2、交易量和交易用户不确定

  前提:对于新开发的交易,不能确定日均和日峰交易量,交易规律也不明确,交易用户数有一个预估值,但不确定。

  方法1:按交易优先级设计测试策略

  对于没有明确交易量和交易人数的场景,可按交易优先级大致分配交易并发比例。优先级高的设置并发相对较大,优先级低的交易并发相对较小。

  将所有交易设置好间隔时间并且保证交易并发比例正确,在场景中可按此比例逐渐提高并发人数,监控服务器资源。

  方法2:按系统处理能力设计测试策略

  对于没有明确交易量,没有明确交易优先级的交易,可以仅测试当前环境下系统的最大处理能力,按比例梯度增加用户并发数量,查看并发用户增加的TPS递增情况。

  以上是几种常用的性能测试策略制定方法,实际制定测试策略时,需根据交易类型、应用需求具体分析。


作者:李元库   

来源:51Testing软件测试网原创

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   在如今开源的时代,我们就不要再闭门造车了,热烈的拥抱开源吧!本文针对性能测试、Web UI 测试、API 测试、数据库测试、接口测试、单元测试等方面,为大家整理了github或码云上优秀的自动化测试开源项目,希望能给大家带来一点帮助。  一、性能自动化测试  1、项目名称:基于Jmeter实现的在线压测平台和在线管理Jmeter脚本系统。  项目简介:  本项目基于renren-fast Java开发平台开发,内核基于Jmeter-Api和Jmeter脚本实现在线性能压测。  具有如下特点:  ·友好的代码结构及注释,便于阅读及二次开发  · 实现前后端分离,...
            0 0 2061
            分享
          • 如何做前端单元测试对于现在的前端工程,一个标准完整的项目,通常情况单元测试是非常必要的。但很多时候我们只是完成了项目而忽略了项目测试。我认为其中一个很大的原因是很多人对单元测试认知不够,因此我写了这边文章,一方面期望通过这篇文章让你对单元测试有一个初步认识。另一个方面希望通过代码示例,让你掌握写单元测试实践能力。前端为什么需要单元测试?必要性:JavaScript 缺少类型检查,编译期间无法定位到错误,单元测试可以帮助你测试多种异常情况。正确性:测试可以验证代码的正确性,在上线前做到心里有底。自动化:通过 console 虽然可以打印出内部信息,但是这是一次性的事...
            8 9 1459
            分享
          •   长久以来测试都有一个困扰的问题,就是如果面试去了一家公司,发现项目组或整个部门就自己一个测试,该怎么办呢?很多大厂的娃可能会觉得这很夸张,我可以负责任的说,这是司空见惯的事,我之前就去过两家这样的公司,整个部门就我一个测试,所以我同时兼职两个项目的测试工程师,是不是天方夜谭?那么很多人遇到我这种情况肯定会不知所措,觉得一个人对接开发,对接产品,也没什么流程,不知道该做什么,更没有公司前辈的经验可借鉴,这种情况该怎么办?今天就花点时间来讨论一下。  为什么会有这样的现象?  首先我们来分析一下,为什么现在这么多公司都只有一个测试人员呢?我总结了两点主要原因:  第一:很多公司都是初创型的小微...
            0 0 1354
            分享
          • 1.Android APP 内存不足时, 系统如何结束进程获得内存?系统优先结束被挂起(暂停)的进程,释放内存。2.APP 测试常见的严重问题有哪些? 分别引起的原因有哪些?常见的有 crash、ANR(应用无响应、卡死),一般由设备碎片化、网络波动大、内存泄 漏、代码编写错误。3.请简单介绍你曾使用过的一款 APP 自动化测试工具 ?开放性问题,带点主观意见 1.对比其他熟悉的自动化工具的优缺点 2.自动化的简要方案(简要的同时关键内容请具体)。(提示: appnium 等)4.Android 测试与 web 测试有什么区别?相同点:设计测试用例均依据等价类、边界值等方法,测试原理相同;大多...
            13 14 3202
            分享
          • 开发语言知识背景对被测试对象使用的语言有一定的了解,这样有助于测试工作的开展,同时,与开发人员之间的沟通协作也将更顺畅计算机语言都具有一定的共通性,只要你深刻了解了一门语言,其他语言也不是难事。所以,即使被测试对象使用的语言与你之前学过的了解的不相符亦无太多关系数据库的熟悉使用能够自行编写大部分的SQL语句来辅助测试(SELECT,DELETE,UPDATE),对于存储过程可也多了解,在无程序辅助的情况下,它是制作数据的最好帮手主要在日常测试工作中,提取数据库中的数据验以证测试结果的有效性、制作测试数据、批量修改测试数据等被测试对象业务的熟悉度所谓知已知彼,百战不殆对于被测试对象业务流程的了解...
            1 1 1227
            分享
      • 51testing软件测试圈微信