引子
  概念是一个让人又爱又恨的东西,有些东西需要概念来解释,但有些东西又被概念所迷惑。很多所谓高大上的概念其实你剥开来看并没有那么高级。
  因为在小强测试品牌培训班中看到了有的学员聊了这个话题,所以顺便写写关于数据建模这个概念在性能测试中到底是个啥?
  我所理解的数据建模
  按照我个人的理解在性能测试中的数据建模可以分成两个方面来理解,一个是基础数据有的人也叫铺底数据(概念也是越玩越花),另一个是业务场景(其实是场景用例)。
  1、基础数据
  这个其实非常好理解,我说一个例子大家明白了,你测试的时候在空库和有一定基础数据的条件下肯定会不一样,只要有数据库SQL基础的童鞋一定能理解!
  那么,基础数据我们参考什么得来呢?好从线上的真实数据分析得来。这里我经常听到很多人说我自己造数据啊什么的,不是不可以,但我看到的大部分人造的数据其实没有啥实际意义!为啥这么说呢,因为你造的数据分布和线上有很大差异啊。比如,线上的用户类型或状态有有效、无效之分,但你造的都是有效的,反正是诸如此类的,分布会有较大差异。
  2、业务场景
  这个也很简单,是上文我们提到的,本质是场景用例,学过性能测试的童鞋都能明白,此处不再多说。
  那么所谓的建模在业务场景这块其实是各种业务完成的一个比例分布。比如,一个用户登录之后,有30%在浏览网页,而40%在搜索,另外的在下单。这个是所谓的建模了,可以理解为对于业务场景更加具体的描述。
  那么问题来了,业务场景的设计我们根据什么得来的呢?这里的方法比较多了,我简单介绍常见的几种:
  1)根据线上的真实监控得来,这个是指运维系统对线上的监控,一般都会得出较为全面和直观的指标供我们分析,比如访问量、访问峰值、访问路径等等,我们可以根据这些来数据来估算。
  2)80-20原则。这个应该不用多说了,凡事一个合格的测试工程师必然应该知道,但我猜应该有一部分也会不知道,哈哈。简单来说这个原则告诉我们80%的用户会干20%的事情。我在网上看到过有人说用这种方法估算是错误的,不科学的。其实我想说,这世界哪里有对错?万物皆是相对的。当你在没有任何历史数据和线上数据做支撑的时候,它完全可以派上用场啊。所以说,知识学好其实相对容易的,但是想学活了却相对比较难了,大部分都被后者挡住了!
  除了上面的两种方法外,还会有其他的方法,这里不展开说了。
  总结
  我们要学会对现在五花八门的概念进行剖析,更要学会灵活的应用知识。很多知识和方法并不是独立存在的,绝大多数情况下都是混合存在和应用的,我们不缺的是知识,而缺的是思维!