• 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 随着智能手机的普及,移动app测试越来越重要。现在很多互联网都把注意精力放在了移动端,移动app尽量提供完美的用户体验。但是诸如崩溃,冻结问题,加载时间慢,不直观的导航以及侵犯隐私之类的严重错误可能会触发用户立即卸载应用程序。现在,移动应用程序已成为我们日常微时刻不可或缺的一部分,人们平均每天花费3-4个小时。移动应用在职业和个人生活中对每个人都起着关键作用。因此,手机移动端测试在构建移动应用程序以提供流畅的用户体验和功能方面扮演着重要角色。移动应用测试金字塔软件测试的人都知道Mike Cohn的测试自动化金字塔。典型的金字塔由三层组成。顶部是自动化集成测试层的中间,是一个自动化的端到端测试层...
            1 0 1875
            分享
          • 我们写用例的时候一般是先写测试点,然后再写测试用例,也可以这么理解,测试点就是精简版的测试用例。编写用例四个基本方法:等价类、边界值、正交法、场景法。我认为对于一般的企业测试来说,这四个方法足够了。编写测试用例的策略:先点后面,先局部再整体,最忌讳的是点和面混在一起,局部和整体不明。在测试点设计的时候,需要思考如下几点:1、测试操作的难度;测试操作包括环境、配置、执行等因素,在测试设计时,尽量减小操作的难度。2、重要性及优先级;测试点一定要区分重要性及优先级,以便在实际项目测试中进行选择。重要性部门建议突出内部测试、外部验收、线上问题等标签,便于管理和分类更新。3、自动化可实现性;测试点一定要...
            0 0 3048
            分享
          •   哈喽,大家好,咱们今天的话题就从小灰的故事说起。小灰呢,他是一个兢兢业业的测试工程师,他的团队共有六位并肩作战的测试战友,再加上一位自带光环的测试组长。这组长可不得了,仿佛拥有隐身术,做起具体工作来踪迹难寻,但他却擅长于拿着团队努力换来的成果跑到大老板那里刷存在感,说得好像一切都是他亲自操刀完成的一样。这种情景在职场里屡见不鲜,让许多像小灰这样埋头苦干的“老实人”时常感到功劳被抢,工作热情也随之受损。  在职场这片广袤的森林里,"抢功劳"的上司无疑是一只狡猾的狐狸,但咱们也不能武断地将其贬低。在谈论“抢功劳的上司”之前,咱们得先来捋一捋,到底什么是管理者的职责。简单来讲...
            0 0 400
            分享
          • owasp top10漏洞SQL注入失效的身份认证和会话管理跨站脚本攻击 XSS直接引用不安全的对象安全配置错误敏感信息泄露缺少功能级的访问控制跨站请求伪造 CSRF使用含有已知漏洞的组件未验证的重定向和转发xss如何盗取cookie?通过存储型XSS漏洞嵌入脚本代码,用户访问的时候直接用js脚本将cookie发送给攻击者的服务器渗透测试的流程是什么(分为黑盒测试和白盒测试)信息收集判断域名ip(是否CDN)站长之家whois信息,子域名,DNS记录查找真实ip识别网站指纹找到CMS对应漏洞整站分析(主机和端口扫描):服务器系统、中间件、脚本类型、数据库类型旁站(同一ip不同的网站)和C端(x...
            13 13 3962
            分享
          • IT之家 10 月 9 日消息,腾讯科技 (深圳) 有限公司近日申请注册多个狗头形象图形商标以及“微信创意表情”商标,国际分类含广告销售、教育娱乐、通讯服务等,当前商标状态均为注册申请中。▲ 腾讯申请注册的狗头形象图形商标▲ 腾讯申请注册的“微信创意表情”商标近年来,微信、微博、QQ 等平台相继推出狗头、二哈表情包,成功在国内带火狗头表情包。IT之家了解到,狗头表情包来源于日本的一只名为 Kabosu 的柴犬,2010 年它的主人在网络上发布了一张它的照片,因为狗狗表情太过魔性很快在全球走红。不止腾讯,微博和字节跳动也申请过狗头商标。▲ 腾讯此前完成注册的“狗头”商标2021 年,腾讯科技(深...
            0 0 756
            分享
      • 51testing软件测试圈微信