精华内容
下载资源
问答
  • 今天在微信群中,有人讨论性能场景设计中的业务模型的 28 原则是否适用的问题。他把 QQ 群里的聊天截过来了。 问我的问题是,二八原则是否适用于性能场景中的业务模型设计。 我问他:二八原则从哪个方面可以说明适用...

    前言

    今天在微信群中,有人讨论性能场景设计中的业务模型的 28 原则是否适用的问题。他把 QQ 群里的聊天截过来了。

    问我的问题是,二八原则是否适用于性能场景中的业务模型设计。
    我问他:二八原则从哪个方面可以说明适用于性能场景?有没有出处?有没有证据和数据可以证明?

    然后就是搜索了一阵。但是也没有确切的出处的结论。

    之所以写这个文章的原因也是因为,我觉得很多人把理论和实际场景弄混淆了,并且在具体的场景中不做细节就直接套用某些以为正确的理论。

    二八原则的来源

    看下二八原则的来源(以下引自搜索引擎):

    巴莱多定律(也叫二八定律)是19世纪末20世纪初意大利经济学家巴莱多发现的。他认为,在任何一组东西中,最重要的只占其中一小部分,约20%,其余80%尽管是多数,却是次要的,因此又称二八定律。
    1897年,意大利经济学家帕列托在对19世纪英国社会各阶层的财富和收益统计分析时发现:80%的社会财富集中在20%的人手里,而80%的人只拥有社会财富的20%,这就是“二八法则”。

    在 WiKi 中有如下解释:

    The Pareto principle (also known as the 80/20 rule, the law of the vital few, or the principle of factor sparsity)[1][2] states that, for many events, roughly 80% of the effects come from 20% of the causes.[3] Management consultant Joseph M. Juran suggested the principle and named it after Italian economist Vilfredo Pareto, who noted the 80/20 connection while at the University of Lausanne in 1896, as published in his first paper, “Cours d’économie politique”. Essentially, Pareto showed that approximately 80% of the land in Italy was owned by 20% of the population.(我删了一部分,因为我觉得太啰嗦了。)

    另外,不管是百度还是 google,我都搜索过性能测试和二八原则的关系,关键字我也换了好几个。基本上都是笼统的一带而过,即没有一个实例的数据说明,也没有具体的模型推导过程和数学支撑。

    其实在我看来巴莱多定律只是一个统计分析过程,并不需要什么复杂的数学模型支撑(如果我理解有误,也欢迎指正)。

    题外话说一句:我个人感觉老外特别喜欢干这类的 research,然后总结总结,再有个头衔,写个论文,就可以称为 XX定律 XX理论了,留名青史。

    业务模型和二八原则关系

    在这个前提下,我想说的是:在一个具体的业务场景中,性能场景中的业务模型和二八原则并没有什么关系!

    即使从宏观上来说有关系,也是很牵强的,至少至今为止,我没看到任何有数据支撑的证明。

    先巴莱多定律(二八原则)来源于经济学,从宏观经济上来说,经过了调查取样统计之后,才说二八的。但是放到一个特定的场景中,那不一定适用。

    特别是对于性能场景设计这样的比较具体的应用示例中,就更不适用。

    从我多年的性能测试和性能分析的项目中来统计来看,大部分场景都是不符合二八原则的。看两个例子(图来源于 7DGroup 群友,并征得同意后使用的):

    例一:从下面这个系统的某业务统计(天)来看,不符合二八原则(二八原则是幂律分布,与之对应的是正态分布,(不知道正态分布长什么样的,自行搜索))。
    在这里插入图片描述
    例二:地铁系统对一卡通上班族做的统计(天),显然也不符合二八原则。
    在这里插入图片描述
    一个比较认真的小伙还找出了有书上写到性能场景是按二八原则来算的,并且说明是为了测试出系统的容量。而“书上写的能是错的吗“?

    像这种不认真追究就写在书上的,我表示严厉批判(虽说我批判也没啥用)

    如何设计业务模型

    那怎么才是对的方式来设计得到业务模型呢?

    两种方式:

    1. 对有生产历史数据的系统,肯定是从生产历史数据来分析,进而推断业务模型;
    2. 对没有生产历史数据的,首先是根据有经验的业务人员给出来,如果没有,可以拿同行业的数据来借鉴。换句话说,拍脑袋都比二八原则来得靠谱点。

    有人说,我们没有历史数据,公司中也没有人做过类似的系统,也拿不到同行业的数据。那我只能祝你好运了。

    在我每次讲课的时候,都提到用生产历史数据来分析,但是还是看到有很多人即使有历史数据也不这样做,断章取义的比比皆是。

    拿业务统计数据来说,

    首先,要有长时间的业务统计数据。如下图所示,取近一个月的数据,这个数据越长越好,最关键的是要覆盖足够的业务场景日。
    在这里插入图片描述

    是不是看这些就已经觉得挺麻烦的了?
    其实这个图已经是经过日志抽取、按秒/分/时/天汇总、计算百分比、排序之后的结果了。
    我们放大下最后的百分比来看看。
    在这里插入图片描述

    只看最后一列即可,按业务百分比取较高的,这里我们取到业务 5,这五个业务就已经点总业务量的 94 %了。做为普通日的业务场景,已经足够了。

    其实,根据统计取出业务量比较大的一天的前五个业务(这句话我偷换了概念,但是不影响本文的合理性,请大家自行脑补并平衡好心态图片)。做如下统计:
    在这里插入图片描述
    再做个图例:
    在这里插入图片描述
    以上数据得到的过程是:

    • 先取出业务量最大的一天中所有的数据。
    • 以小时为单位合并(这里我又埋个坑,因为如此来做会减少掉很多毛刺数据,可能会漏掉某些特殊的场景,这里不做完美主义了,先把主要的逻辑说清楚)。

    我们也来算算是否符合二八原则。来按百分比统计下,为了方便,这里我先排个序,前面的小时只要数个数就可以,所以不用考虑顺序:

    截止到我选择的 4.66 %,总共是 79.11 %。从时间上来算是 12 个小时,而这个业务系统一天提供服务的时间总共是 20 个小时。所以这个统计数据得到的结果是 80 %的业务在 60 %的时间内完成的。(如果看到这里有人问 60 %是从哪来的,我能气吐血。图片)

    这显然就不是二八原则了,这是不是说六四原则呢?

    所以对一个特定的业务场景来说,如果根据统计数据得到的结果是二八,那我尚能接受。如果什么也没干,就根据二八来做业务模型统计的基础了,那明显是不负责任的。

    既然都写到这里了,就顺带手再延伸一下。

    根据上图取出某个小时内的业务比例。得到如下结果:
    在这里插入图片描述
    到这里就可以设置脚本中的线程或用户比例了。

    从这个场景的逻辑上来说,以上描述就够完整了。

    但是…上面其实只是一个普通日性能场景的业务模型。

    对一个完整的系统的性能场景设计来说,还是不够的。

    小结

    我们还要做其他的统计分析,才能得到其他的性能场景,而这些都是要有根有据,有礼有节,有前有后的。
    我们还要接着和不负责任的做法斗争下去。

    展开全文
  • 【测试】软件测试之二八原则

    千次阅读 2021-09-15 10:10:36
    1、80%的错误是由20%的模块引起的   站在用户角度,并非研发实现的角度,正确地选择重要模块作为测试重点,从而不偏离方向。 2、80%的测试成本花在20%的软件模块中   设计用例时需要将时间花倾斜在复杂的20%核心...

    1、80%的错误是由20%的模块引起的

      站在用户角度,并非研发实现的角度,正确地选择重要模块作为测试重点,从而不偏离方向。


    2、80%的测试成本花在20%的软件模块中

      设计用例时需要将时间花倾斜在复杂的20%核心模块上,从而设计更高效的测试用例。


    3、80%的测试时间花在20%的软件模块中

       软件测试执行过程中需要将时间倾斜在重要模块的测试用例中,从而使测试更加有效,发现 Bug。


    展开全文
  • 性能测试二八原则

    2020-06-02 15:07:06
    性能测试二八原则,响应时间2/5/8原则 所谓响应时间的“2-5-8原则”,简单说,就是 当用户能够在2秒以内得到响应时,会感觉系统的响应很快; 当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以; 当用户...

    性能测试二八原则,响应时间2/5/8原则

    所谓响应时间的“2-5-8原则”,简单说,就是

    • 当用户能够在2秒以内得到响应时,会感觉系统的响应很快;
    • 当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以;
    • 当用户在5-8秒以内得到响应时,会感觉系统的响应速度很慢,但是还可以接受;
    • 而当用户在超过8秒后仍然无法得到响应时,会感觉系统糟透了,或者认为系统已经失去响应,而选择离开这个Web站点,或者发起第二次请求。

    软件测试理论中,常提到2-8原则

    所谓2-8原则,即80%的bug多发生在软件的20%的模块。所以,在回归测试的时候,这20%的高发地带是关注的重点!

     

     

    二八原则还指:80%的业务量在20%的时间里完成。

    如何理解,下面我们来个例子吧

    用户登录场景:早高峰时段,8:50---9:10,5000坐席上线登陆。

          业务量:5000个 

          时间:20x60=1200秒

        吞吐量=80%x业务量/(20%*时间)=4000/240=16.7/秒

    而并非5000/1200=4.1/秒

    实际上,登录请求数分布是一个正态分布,最高峰时肯定比4.1/秒更高,高峰段实际上完成了80%的业务量,却只花了20%的时间。

    温馨提示:

    1.二八原则计算的结果并非在线并发用户数,是系统要达到的处理能力(吞吐量),初学者容易被误导,那这这个数据就去设置并发数,这是错误滴。

    2.如果你的系统性能要求更高,也可以选择一九原则或更严格的算法,二八原则比较通用,一般系统性能比较接近这个算法而已,大家应该活用。

     

    二八原则还指:

    1、80%的错误是由20%的模块引起的

    -----> 站在用户角度,并非研发实现的角度,正确地选择重要模块作为测试重点,从而不偏离方向。

    2、80%的测试成本花在20%的软件模块中

    -----> 设计用例时需要将时间花倾斜在复杂的20%核心模块上,从而设计更高效的测试用例。

    3、80%的测试时间花在20%的软件模块中

    ------> 软件测试执行过程中需要将时间倾斜在重要模块的测试用例中,从而使测试更加有效,发现bug。

     

    展开全文
  • 二八原则

    2020-12-04 09:20:32
    这就是有名的巴雷多原则,或20/80原则.20/80原则代表一个人或组织花费时间、精力、金钱和人事在最重要的优先顺序上.结果是生产力的四倍回报. 巴雷多原则的例证 时间:我们20%的时间会产生成果的80%. 咨商:20%的人花...

    如果将时间、精力、金钱和人事优先花在前面的20%,优先的20%会销售您80%的产品.这种排定优先和朝向明确目标迈进的能力,对领导者的成功是至关重要的.这就是有名的巴雷多原则,或20/80原则.20/80原则代表一个人或组织花费时间、精力、金钱和人事在最重要的优先顺序上.结果是生产力的四倍回报.
    巴雷多原则的例证
    时间:我们20%的时间会产生成果的80%.
    咨商:20%的人花了我们的时间的80%.
    产品:产品的20%带来利润的80%.
    阅读:20%的书篇幅包括了内容的80%.
    工作:20%的工作给我们80%的满意.
    演讲:20%的演讲产生影响的80%.
    捐赠:20%的人捐出金钱的80%.
    领导:20%的人作出80%的决定.
    饮食:20%的人吃掉食物的80%.
    每个领导人需要在人的监督和领导领域了解巴雷多原则。

    展开全文
  • 性能测试中的二八原则算法

    万次阅读 2021-06-30 17:00:22
    80%的请求 / 20%的时间 * 冗余系数
  • 性能测试二八原则,响应时间2/5/8原则 所谓响应时间的“2-5-8原则”,简单说,就是 当用户能够在2秒以内得到响应时,会感觉系统的响应很快; 当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以; 当用户...
  • 性能测试中的二八原则

    千次阅读 2019-07-20 09:55:59
    二八定律又名80/20定律、帕累托法则(Pareto‘s principle)也叫巴莱特定律、朱伦法则(Juran's Principle)、关键少数法则(Vital FeRule)、不重要多数法则(Trivial Many Rule)最省力的法则、不平衡原则等,被...
  • 性能测试理论之二八原则

    千次阅读 2018-06-26 12:37:20
    在性能测试方法论中,很典型的方法就是二八原则,量化业务需求。二八原则:指80%的业务量在20%的时间里完成。如何理解,下面我们来个例子吧用户登录场景:早高峰时段,8:50---9:10,5000坐席上线登陆。 业务量:...
  • 二八原则将人分为了三六九等

    千次阅读 2019-06-25 14:07:20
    ,这种情况下,便需要针对不同价值特征的客户进行分组,整个二八原则也在当前的经济体系下被划分的越来越细致完善。  目前的经济已经由大工业化经济转为了个性化的工业经济、互联网经济,经济体系符合的是每...
  • 性能测试TPS目标值确定-二八原则

    千次阅读 2018-05-09 11:27:34
    在性能测试中通常使用二八原则来量化业务需求。二八原则:指80%的业务量在20%的时间里完成。例:如某个公司1000个员工,在周五下午3点-5点有90%的员工登陆公司周报系统则:业务量=1000个,时间=2x60x60=7200秒根据...
  • 秒杀系统设计的第一个原则就是将这种热点数据隔离出来,不要让1%的请求影响到另外的99%,隔离出来后也更方便对这1%的请求做针对性的优化。 具体到“秒杀”业务,我们可以在以下几个层次实现隔离。 业务隔离。...
  • 二八原则二.数据库读写分离好处:绝大部分的企业内部应用,可能不需要上图那么庞大的架构,一台主数据库服务器和一台查询服务器通常能满足读写分离的要求。而且应用程序调整起来非常方便:适用场景:三.SqlServer...
  • 二八原则”众所周知,比如“20%的人占有了80%的社会财富”。 实际上,这是数学上幂律分布的一个表现形式罢了。 另外,还有一些表现,比如,在一本古汉语小说(比如“三国演义”中),“20%的字,占用了80%的使用...
  • 1、80%的错误是由20%的模块引起的 -----> 站在用户角度,并非研发实现的角度,正确地选择重要模块作为测试重点,从而不偏离方向。 2、80%的测试成本花在20%的软件模块中 -----> 设计用例时需要将时间花倾斜在复杂...
  • 秒杀笔记 —— 二八原则 有针对性的处理好系统的“热点数据” 认识“热点” 为什么关注热点 什么是热点 发现“热点” 发现静态热点数据 发现动态热点数据 处理“热点” ...
  • 人生和健康的二八原则.doc
  • 二八原则”众所周知,比如“20%的人占有了80%的社会财富”。 实际上,这是数学上幂律分布的一个表现形式罢了。 另外,还有一些表现,比如,在一本古汉语小说(比如“三国演义”中),“20%的字,占用了80%的使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 129,023
精华内容 51,609
关键字:

二八原则