• 0
  • 0
分享

  网上一搜性能测试,就会出现很多诸如性能测试、负载测试、压力测试、强度测试等一堆专有名词的解释。

  但实际上我们不需要区分这么多。

  那什么是性能测试?

  性能测试针对系统的性能指标,建立性能测试模型,制定性能测试方案,制定监控策略,在场景条件之下执行性能场景,分析判断性能瓶颈并调优,最终得出性能结果来评估系统的性能指标是否满足既定值。

  这个定义,其实也就是一个完整的性能测试流程了。

  为什么要弄清楚?因为这些概念要抹平沟通的误解,让不同层级,不同角色的人,可以在同样的知识背景下沟通,也可以让做事情的人有清晰的逻辑思路。

  一、性能测试需要有指标

  指标这个东东通常在很多公司并没有明确的定义。可能老板随口一句“把系统压挂”,下面人就得开始张罗了。但是这个“把系统压挂”其实就是一种指标。

  通常来说,有三种指标:时间指标、容量指标和资源利用率指标,具体这里先不展开。

  二、性能测试需要有模型

  模型,可以理解为场景。

  比如说,要对一个返回广告的接口进行性能测试。那么用户进入首页之后,可能有50%的人会点击banner位广告,30%的人会点击中部位的广告,最后20%的人会点击侧边框广告。

  那么,你基于这样的一个模型,在施加压力的时候就需要控制好比例。这些业务数据,通常来说是有渠道可以获得的。

  三、性能测试要有方案

  需要确定性能测试方案,以便指导后续的工作。

  通常来说,内容如下:

  ·测试环境

  · 测试数据

  · 测试模型

  · 性能指标

  · 压力策略

  · 准入准出

  · 进度风险

  其中每一项内容的细化程度,要具体参考项目需要。

  四、性能测试中要有监控

  关于监控:

  · 分层、分段

  · 全局监控、定向监控

  具体这里先不展开。

  五、性能测试要有预定的条件

  在测试场景执行之前,通常要确定如下的条件:

  · 软、硬件环境

  · 测试数据

  · 测试执行策略

  · 压力补偿

  六、性能测试中要有场景

  场景:在既定的环境(包括动态扩展等策略)、既定的数据(包括场景执行中的数据变化)、既定的执行策略、既定的监控之下,执行性能脚本,同时观察系统各层级的性能状态参数变化,并实时判断分析场景是否符合预期。

  性能场景也要有分类,通常逃不出如下四大类:

  1.基准性能场景

  这里要做的是单交易的容量,为混合容量做准备。

  2.容量性能场景

  是最核心的性能执行部分。根据业务复杂度的不同,这部分的场景会设计出很多个。

  3.稳定性性能场景

  最核心的元素是时间,而时间的设置应该来自于运维周期,而不是来自于老板、产品和架构等这些人的“拍脑袋”。

  4.异常性能场景

  要做异常性能场景,前提就是要有压力。在压力流量之下,模拟异常。

  那需要哪些异常?这也是要明确定义出来的。比如有宕主机、宕应用、宕网卡、宕容器、宕缓存、宕队列、宕流量控制、宕熔断等等。

  总之,实际的场景中需要模拟什么异常,不是拍脑袋决定的,而是根据系统的业务架构和部署架构分析来的,不是看到有什么都宕一下。

  另外,关于场景下对应的测试用例,不仅要描述测试脚本和测试数据,而且要描述需要哪些实时的判断和动态的分析,否则会影响性能结果。

  七、性能测试中要有分析调优

  相信有很多跟我一样的测试工程师,在进行性能测试的时候,其实也仅仅做的是性能验证,很少有进行分析调优,因为很难(o(╥﹏╥)o)。

  但是,分析调优才是一个更能体现性能测试价值的重要元素。

  八、性能测试肯定要有结果报告

  结果报告是性能测试活动的价值内容体现,自然要展示领导关心的内容,比如调优前后的TPS、响应时间以及资源对比。相比较而言,用了多少人,花了多少时间可以往后放一放。

  九、总结

  一图流。

10.png


作者:把苹果咬哭    

来源:http://www.51testing.com/html/70/n-4997370.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   摘要:当前国内企业的数字化转型正如火如荼的进行着,而随着各类软件应用在性能、功能、安全性等重要维度的要求越来越高,业界也对软件测试行业提出了新的挑战。  以兼容测试为例,传统的兼容测试因整体的测试管理较为陈旧,导致了测试流程规范性弱、测试工作效率低、人力成本高等种种问题,从而阻碍了测试需求单位的数字化转型步伐,还会因软件应用质量的问题给企业带来软件体验不佳、用户数量下降、行业排名下滑等严重后果。  Testin云测试专注于软件测试行业十数年,拥有丰富的测试行业经验,在业界率先把最新的AI技术广泛运用于兼容测试,为广大客户打造出数字化时代的一站式兼容测试服务,引领智能测试时代的技术风向。  ...
            0 0 1357
            分享
          •   Locust是一款Python技术栈的开源的性能测试工具。Locust直译为蝗虫,寓意着它能产生蝗虫般成千上万的并发用户。  Locust并不小众,从它Github的Star数量就可见一斑:  链接:github.com/locustio/lo…  截止文章写作时,一共15951Star。  Locust生态良好,它已在多家外企(包括世界500强)投入使用:  如此看来,Locust是非常值得学习和掌握的一款工具。  Python的魔力在于化繁为简,基于Python的Locust也能给仍然困惑于性能测试的我们带来启发。  Locust特点  · 以纯Python方式编写用户脚本,提供极大自...
            0 0 1067
            分享
          • 概念Hamcrest是用于编写匹配器对象的框架。他提供了一套匹配符Matcher,这些匹配符更接近自然语言,可读性高,更加灵活。Hamcrest还有很好的可扩展性,能够创建自定义的匹配器。支持语言Hamcest支持多种语言,在Hamcest 官网便可以看到:http://hamcrest.org/JavaPythonRubyObjective-CPHPErlangSwift示例from hamcrest import * import unittest class BiscuitTest(unittest.TestCase):  &...
            1 1 2103
            分享
          • 我在一家做微信营销的公司干技术 leader,带 40 多个人,公司名就不说了。在这个位置上做了好几年,把团队从小带大,公司虽然不算风口浪尖上的高增长业务,但技术这块儿也从来没出过什么问题,我还是蛮自豪的。带团队时间久了,就能发现整个 Team 都渐渐疲了。前两年老板还专门买了个系统搞 OKR,现在也不大提了;Scrum 我们也搞了,用起来也就那样;项目管理工具试了好几个,禅道、Worktile、现在用 Coding,反正有一个能用的就行;微服务化改造从去年开始在吭哧吭哧搞,我们自己搞得觉得很厉害,但业务部门那边就觉得没啥差别,搞不懂你们研发部门每天在弄些什么,赶紧做我们提的需求要紧。时间...
            0 1 992
            分享
          • 写在testng.xml的前面    TestNG运行的核心就是配置文件testng.xml,只要是使用TestNG框架的测试,最终都是通过testng.xml发起的测试。所以说testng.xml是TestNG的核心。    testng.xml的定义实际非常复杂,平时使用的仅仅是九牛一毛的功能而已。本篇是官网相关章节的翻译,部分内容增加了作者的理解,并给出一些实际的示例说明。testng.xml     TestNG可以通过如下方式运行:     (1)通过testng.xml&n...
            0 2 3836
            分享
      • 51testing软件测试圈微信