• @zzw
    2020-01-22

    小结一下,在性能测试中,我们关注的参数化数据主要有以下几个方面:

    1)参数化数据应该用多少数据量?
    我们需要保证测试时间足够长、满足测试的负载请求需求,根据「目标tps x 持续时间(秒级)」可以计算出参数化数大概的量级。

    2)参数化数据从哪里来?
    大概分为两大类型:
    - 死水数据,即out-of-box(事先创建测试数据),数据存在后台的数据库中;
    - 活水数据,即On-the-fly(实时创建),数据库不存在这些数据,构造参数化数据需要符合业务特点。

    构造测试数据通常有以下两种方法:
    - 通过 API 调用生成测试数据;
    - 通过数据库操作生成测试数据。

    3)参数多与少的选择对系统压力有什么影响?
    满足测试的负载请求足够多和数据足够多样化,从而最大限度地减少或者掩盖缓存等其他因素的影响。参数取得过多,对系统的压力就会大;参数取得过少,不符合真实场景中的数据量,则无法测试出系统真实的压力。

    4)参数化数据在数据库中的直方图是否均衡?
    参数化数据需要符合真实业务数据分布情况,这样更符合业务真实场景。
    展开

    作者回复: 总结的很好。

    
     2
  • 善行通
    2020-01-10


    参数化数据应该用多少数据量?
    1、之前做性能测试,不会计算使用多少数据,反正找几千条数据做性能测试,如果可以重复使用,就用几个用户做压测。经过老师这样讲解,1、循环场景使用【用户数据=线程个数】2、不可循环使用的数据Tps * 持续时间如【100(pts)x30*60(时间)=180000(条用户数据】 ;明白(配置参数之前,我们需要先判断这个参数是什么类型的数据)

    参数化数据从哪里来?
    1、后台数据库中;
    2、在脚本执行成功后会将这些数据 insert 或 update 到数据库中;
    3、通过模拟业务接口把数据跑进去;
    明白:参数化时需要确保数据来源以保证数据的有效性。

    参数多与少的选择对系统压力有什么影响?
    1、明白:如果压力工具使用的数据量少,那么应用服务器、缓存服务器、数据库服务器,都将使用少量的缓存来处理,相应消耗资源比较少,测不实际效果;
    2、如果压力工具使用的数据量少,那么应用服务器、缓存服务器、数据库服务器,都将使用少量的缓存来处理,导致命中率高,响应实际块;
    3、参数取得过多,对系统的压力就会大;
    4、参数取得过少,不符合真实场景中的数据量,则无法测试出系统真实的压力
    感谢老师总结:对一个系统来说,获取的参数化数据是否合理,会直接影响压力测试的结果有没有意义。

    参数化数据在数据库中的直方图是否均衡,这一层学到【如果数据取自于数据图,我们通常要检查一下数据库中的数据直方图。 对于直接从生产上拿的数据来说,数据的分布更为精准。】性能测试,性能测试数据之间影响测试结果。

    感谢老师总结的【参数化数据的合理性对性能场景有着举足轻重的作用。通常,我们在做参数化数据之前,需要先分析实际业务的逻辑】


    参数化数据的分析重点是哪些?
    1、参数化数据的分析重点是业务逻辑,只有符合逻辑的参数化,对性能测试结果会之间影响。

    在不同的场景中为什么参数化数据有如此大的差异?
    1、电商下单压测,如果用重复数据,完全不符合实际业务情况,会导致大量缓存,结果不真实;
    2、如果是登录后操作其他业务,就可以用几个用户登录后,进行其重复业务操作压测

    参数化数据的来源和获取要符合哪些规则?
    1、通过数据库之间查出来做参数文件
    2、通过接口把数据跑出来这样不会破坏表,更真实

    当不符合获取规则时,会产生什么问题?
    1、压测结果不真实;
    2、影响压测判断;
    展开

    作者回复: 觉得真传!!

    
     1
  • 律飛
    2020-01-10
    1.参数化数据的分析重点是哪些?在不同的场景中为什么参数化数据有如此大的差异?
    分析重点是获知数据量。一是通过业务模型分析计算,获得初步的数据量要求;二是根据限制条件和业务场景,确定数据类型;三是结合上述两点,最终确定参数化数据的数据量。
    不同场景中,数据使用对业务的完成是不一样的,比如某一场景中数据可以反复出现,不影响业务,自然能实现预期的场景;而另一场景中,反复出现的数据却不能多次实现同一业务,这种情况下,当时无法实现预期的场景。
    2.参数化数据的来源和获取要符合哪些规则?当不符合获取规则时,会产生什么问题?
    参数化时需要确保数据来源以保证数据的有效性,千万不能随便造数据。这类数据应该满足两个条件:要满足生产环境中数据的分布;要满足性能场景中数据量的要求。
    产生的问题:1.不合理的数据分布,会干扰测试结果,增加后续分析和测试的工作量;2.数据取得过多,对系统的压力就会大;数据取得过少,不符合真实场景中的数据量,则无法测试出系统真实的压力。
    展开

    作者回复: 理解的很对。这样下去,看完专栏就超过我了。

    
     1
  • 杜艳
    2020-02-07
    老师,首先,参数化数据要用到多少取决于场景,举例来说,对一个压力工具线程数为 100,TPS 有 1000 的系统,如果要运行 30 分钟,则应该取得的参数化数据是下面这样的。 我想咨询下,系统的TPS=1000,这个数值最初是怎么得来的?

    作者回复: 这只是个假设的tps。

    
    
  • songyy
    2020-01-16
    思考题
        - 参数化数据的分析重点是哪些:看具体的业务逻辑,决定数据的具体分布情况
        - 在不同的场景中为什么参数化数据有如此大的差异:因为业务逻辑不通,使得数据分布对应的不同
        - 参数化数据的来源和获取要符合哪些规则:要满足生产环境中数据的分布;要满足性能场景中数据量的要求。
    当不符合获取规则时,会产生什么问题:性能测试出来的结果,不能代表真实场景

    作者回复: 理解的很对。

    
    
  • 月亮和六便士
    2020-01-16
    老师,怎么看数据库中数据分布直方图?

    作者回复: 根据关键列做groupby。

    
    
  • 小老鼠
    2020-01-11
    参数化直方图📊介绍下,本章讲得很好
     1
    
  • 土耳其小土豆
    2020-01-11
    学完
    
    
  • 新思维
    2020-01-10
    请问在性能测试过程中对验证码如何处理?开发屏蔽调还是写成固定值?

    作者回复: 写成固定值,不还是开发要改代码的吗?
    我通常是把校验去掉或加万能验证码。

    
    
  • A周黑鸭
    2020-01-10
    怎么去测量一个接口的tps是多少?比如登录接口 我要知道这个接口的tps是多少才知道要使用多少参数化数据吗?老师

    作者回复: 这是个反复验证的过程。看测试的阶段和目标。

    
    
我们在线,来聊聊吧