• 0
  • 0
分享

  性能压测是一种评估系统运行效率和稳定性的方法,通过模拟真实的使用场景和负载条件,对系统进行压力测试和负载测试,并对测试结果进行分析,以评估系统的性能,其中性能压测结果分析是性能压测的重要环节。以往的性能压测,测试执行和分析是分开的,分析的结果具有滞后性,且依赖于测试人员经验,存在分析标准不统一的问题。为解决上述问题,笔者探索了一个基于指标趋势和阈值规则的自动化异常分析方法,并将方法嵌入性能压测执行过程,实现实时、自动的捕获测试异常,帮助测试人员分析和评估系统在特定条件下的表现。

  一、优化压测执行过程

  性能压测执行过程一般由系统自动完成,无需人工参与,主要包含发压、数据聚合、结果汇总三个环节。笔者探索在性能压测执行过程中增加分析节点,接收实时的测试结果数据流,根据分析方法对其进行分析,捕获异常点,汇总展示给用户。

18-1.jpg

图1:增加分析节点的性能压测执行过程

  二、流数据&流处理

  性能压测结果数据是标准的流数据,测试结果是随着时间的推移而产生的数据元素序列。流处理是对流数据的处理,与批处理不同,流数据会在产生后立即被逐一处理,其具有以下特点:

  无界数据:流数据是一种不断增长的、无限的数据集,不能作为一个整体来操作。

  无界的数据处理:由于适用于无界数据,流处理本身也是无界的。与批处理相比,工作负载可以均匀地分布在不同的时间。

  低延迟、近实时:流处理可以在数据产生后就进行处理,以极低的延迟获得结果。

  三、分析指标

  本文方法针对性能压测结果中关注类指标和统计类指标进行分析。其中关注类指标包括响应时间、吞吐错误率、资源利用率等,统计类指标包括分位数、标准差等。

18-2.jpg

图2:分析指标

  四、分析方法

  1.基于趋势的分析

  异常毛刺通常指的是在性能压测期间出现的TPS、响应时间或其他资源使用率的短暂、剧烈波动,如图3。

18-3.png

图3:性能压测过程的异常毛刺点

  异常毛刺点有两个特点,一是处于异常趋势中,一个是有剧烈波动,例如TPS的陡降,响应时间的陡升。趋势分析则通过分析压测过程中指标的趋势走向,识别异常趋势中波动剧烈的毛刺点,从而实现异常毛刺点识别。所以,如何识别趋势和计算波动是整个趋势分析中最关键的技术。本文方法利用时态窗口实现了对指标的趋势识别,同时利用状态保存机制,根据上下文信息计算波动幅度,实现异常毛刺点识别。

  2.基于阈值规则的分析

  性能压测过程中,项目组会根据业务预估交易运行预期,制定相应通过准则。本文方法支持用户根据通过准则自定义阈值规则,规则在测试开始时生效,测试结束停止,期间可以实时捕获没有达到通过准则的数据。

  五、搭建规则管道

  在流处理中,规则代表了一项计算工作,它定义了输入源,计算逻辑和结果,比如一条分析规则,它以性能测试结果为数据源,分析方法为计算逻辑,捕获的异常点作为输出。规则与规则可以进行串联,形成一个规则管道,完成一系列操作。基于规则管道可以实现分析节点的自动化运行。以响应时间异常点分析为例子,规则1实现了将所有测试结果根据测试id和接口名称进行分流,规则2对分流数据响应时间指标进行分析,标记异常点,规则3实现了异常点入库,将3个规则串联就可以实现一个完整的自动分析过程。

18-4.jpg

图4:响应时间分析的规则管道

  六、实践

  基于上述,笔者在性能压测执行环节通过规则管道搭建了一个分析节点,节点可基于阈值和指标趋势自动的、实时的对性能测试结果进行分析,无需人工参与,分析结果如图5所示。

18-5.png

图5:测试分析结果

  七、总结

  本文探索了一个基于指标趋势和阈值规则的自动化异常感知分析方法,该方法利用时态窗口和状态保存机制实现了对性能压测过程中异常毛刺点捕获,同时方法可以根据用户自定义的阈值规则自动捕获没有达到通过准则的数据。并通过搭建规则管道,将分析融入性能压测执行过程中,实现了自动化分析,提高了分析效率。


作者:田也    

来源:http://www.51testing.com/?action-viewnews-itemid-7801301

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   在过去几年中,随着敏捷实践的应用不断增加,质量保证与开发人员之间的关系也在不断发展。这两个角色之间的区分变得越来越模糊,这就这两种角色演变的一个很好的例子。  传统上,质量检查工程师的角色与职位,测试和验证代码质量更加一致。质量保证人员可以采用瀑布式方法进行工作,可以将无法部署的代码打回给开发人员,或者对代码进行了测试和验证通过,版本会发布到生产中。测试和验证不是开发人员关注的流程,交接仅仅是一种规范。  敏捷为开发人员和质量保证专业人员带来了新的思维定势,并承担了许多新的责任,这不仅有利于软件的交付,而且使我们的工作更加出色。  这是成为QA专业人士进入敏捷组织时的期望。  Dev-QA...
            0 0 1653
            分享
          • 三年前的AlphaGo是人工智能发展史上的里程碑事件,当时人工智能首次击败了围棋高手,令很世界为之一震,从那时起人类就逐步进入了人工智能时代。而如今, 我们正迈向人工智能的“新时代”,在这个年代里面,无论是国际巨头,还是国内的BAT,都把人工智能列为了最核心的战略。今天,无论走到哪里,哪个会议都在讨论人工智能,人工智能时代已远远超过之前我们提到的大数据和移动互联网时代。在这个时代面前,不仅仅是几大知名的IT巨头,多个领域上千家的创业公司正风起云涌,越来越多的实用性产品早已应需而生, 例如我们熟悉的智能家居,智能炒菜,智能管家等,每一个都能直接改变传统的物质世界。怎么办?行业大佬们尚且如此,作为...
            1 2 1751
            分享
          • 在我们实际开发的过程中,有些场景需要从微信小程序跳转到H5页面,使用web-view组件就可以了;实现的方式也很简单,具体实现方式如下:1、小程序如果要正式发布的话,需要配置业务域名并上传验证文件。域名需要备案好的一级域名。配置HTTPS 证书。进入到小程序后台 https://developers.weixin.qq.com 设置-开发设置 -业务域名载校验文件,并将文件放置在域名根目录下。配置好了以上几步就可以进行正常的跳转了相关配置项,在开发选项中都可以配置,这个根据你项目开发的实际需要配置即可;2、要注意的是,我们在开发的过程中,要在开发者工具中,设置不校验合法域名...
            0 0 1474
            分享
          •   Pairwise(后称:配对测试)可以看作是正交测试用例设计的拓展,其目的是为了缩减测试用例集大小,以较小的测试用例集覆盖较全的测试点,降低测试损耗。  一、配对测试理论基础  配对测试用例设计基于以下两个假设:1、每一个测试点/维度都是正交的,即相互间没有交集;2、根据数学统计分析,73%的缺陷是由单因子或两个  因子相互作用产生的(其中单因子是35%,两个因子是38%)。因此,配对测试用例设计对于覆盖两因子交互产生的用例集性价比较高(这也在某些方面成为配对测试的一种局限)。  可能说到这里,还是对于测试维度、因子,有些似明非明、迷惑不解,我们用一个图来简单说下这两个是什么,它们之间什么...
            12 12 1135
            分享
          • 手机相机的测试内容 ,从立项到后期维护期间的测试内容需要多方讨论和打磨,根据项目实际情况安排评测和测试阶段。比如:画质客观评价体系,各个专项测试的方法和评测标准;安排正岗和外包人员工作内容分配,LOG分析培训;功能,性能,稳定性,画质调试测试如何执行并不断优化相机测试用例;需求梳理维护,需求变更的跟进。最重要的,是参与制定手机相机相关测试范围和标准,提供测试意见,和研发深度合作,回顾和拓展用例。后期维护,手机相机用户反馈报告的收集等。测试人员需要有相机硬件和软件的测试经验,才能执行用例,即便是外包同学。尤其外场拍片,没有经验或者经验很少,很容易拍出废片,宝贵的时间和项目的进度不能耽误。本文只叙...
            1 3 3471
            分享
      • 51testing软件测试圈微信