性能测试面面观——HP性能测试专家宗刚访谈(3)

发表于:2013-05-21来源:博客园作者:qileilove点击数: 标签:性能测试
问题:如何进行性能测试建模?在性能测试过程中要建立哪些模型? 宗刚:性能测试过程需要考虑的模型有:业务模型、测试模型、用户模型TPS模型、数据模

  问题:如何进行性能测试建模?在性能测试过程中要建立哪些模型?

  宗刚:性能测试过程需要考虑的模型有:业务模型、测试模型、用户模型TPS模型、数据模型、失效模型、性能模型

  业务模型:依据应用系统特点分析出来的不同的业务场景和业务配比。性能测试常常会通过历史数据分析业务的重要性、交易频率、易耗资源的交易以及未来的发展趋势,最后确定一种业务配比。依据这个业务配比设计测试场景。这往往是不够的,一个线上系统往往有多个业务模型,需要考虑时间驱动的如:白天、晚上、月末、过年过节,事件驱动的如:本拉登去世黄金业务突发变化、业务部门促销等,第三方驱动:永远不要相信第三方的内容,所以需要考虑第三方接口的业务突变,延时等等。

  测试模型:如何将业务模型的内容转化为可以测试的内容,就是测试建模需要解决的问题。通过业务建模分析出来的业务需要过滤,剔除一些不易执行的、相互包含的等等业务。最后落地为各种可执行的业务配比,业务配比完成后,需要考虑的是如何和测试工具映射起来,这个就牵涉到用户模型和TPS模型。用户模型是指按照业务配比设置发起压力的用户比例,这种方法存在一定的局限性,因为不同的交易响应时间是不同的,长交易完成1笔交易,短交易可能是5笔,特别是在较大压力时,测试结果的业务配比会和真实的业务配比差距很大。所以一般情况下需要考虑TPS模型,这个是和业务模型相同的配比,这个模型的一个劣势就是需要不断调整并发用户数。

  数据模型:一个系统的大多数性能问题是数据库问题,所以垫底数据或参数化数据是否和实际相符将直接影响性能测试的有效性。一般建议性能测试使用清洗后的生产数据,参数化数据尽量采集生产系统一天的交易数据。以前见过一个项目,说有的数据都是通过loadrunner压进去的,所有数据都集中在一块,测试结果和实际生产差距巨大,整个测试无效。

  失效模型:主要是总结了大量以往生产系统经常出错的模式,在设计测试案例的时候需要着重考虑。这部分要依据实际情况来定,如果能够从运维部门获得更多的事故数据就更有价值。

  性能模型:不同的交易对系统的性能要求是不同的,依据测试的数据以及生产环境的数据建立模型,主要解决以下问题:测试环境中测试的数据如何映射到生产环境?生产环境中出现性能问题应该如何预测预防和优雅降级?生产环境应该如何扩容等等。

原文转自:http://www.blogjava.net/qileilove/archive/2013/04/16/397896.html