浅谈项目的性能测试自动化

发表于:2020-2-10 11:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:杨凯球    来源:测试海盗

  性能测试的话题不容易聊,范围太广,水太深。本人也没有长期很深入的进行过性能测试,此篇总结除了一些基本的性能知识普及以外,同时介绍一下目前在项目中的性能自动化落地解决方案。
  一、性能测试的一些基本认知
  性能模型:
  以前在核心网业务测试的时候,我们喜欢称为话务模型,所谓话务模型就是了解系统在商用场景下真实的业务承受能力。一般我们会分静态模型和动态模型两大类。
  静态模型一般是指系统在不处理业务时,系统静态存储的一些数据,譬如xx产品要存储的app版本数量,支持app的实例记录,系统运行的日志量等等。
  动态模型一般是指动态运行承受的业务是怎样的,譬如xx产品真实商用需要支持的并发业务量是多少,客户端并发登陆操作的能力是多少等等。
  静态模型一般是静态的数据,需要我们根据评估好的情况下,在性能环境搭建完毕后提前进行预置,动态模型就是我们常见的利用相关的测试工具进行业务话务的模拟发送。
  性能指标:
  性能指标是用来反映我们系统在进行性能话务测试时,系统表现出来的一个状态,用来判断我们系统是否存在性能瓶颈的关键数据,可以是直接和间接的。譬如xx产品的客户端响应时长指标,这个是直接反应给用户和客户的指标。而像CPU平均负荷率则不一定是用户会直接感受关心到的(当然也不完全用户不关心,需要看情况),但是这些指标会间接反映出系统的一个负荷稳定性的情况,是很重要的监控指标,我们也需要采集分析,常见的CPU使用率、磁盘使用率、IO吞吐都是我们需要关心的性能指标。
  成熟的系统往往自身就有很方便的性能统计功能,方便我们测试采集,但是往往有时候系统相关性能统计不完善,或者有一些性能测试时需要特殊采集的指标,那么就需要我们性能测试启动前提前准备开发一些采集脚本或者使用业界常见的开源监控工具。
  性能测试流程:
  1、了解系统,梳理性能测试方案。测试方案至少要包括:性能组网(包括软硬件的要求)、话务模型制定(包括基础的配置、静态模型和动态模型)、监控指标以及通过标准等。
  2、性能测试环境搭建。性能测试的环境往往比较复杂,需要严格按照商用的要求尽量一比一场景搭建。
  3、性能数据预置、性能脚本开发。根据性能测试方案的要求进行数据预置和相关监控脚本或者话务脚本的开发。
  4、性能任务执行、指标监控采集。
  5、性能分析调优。这是性能测试最消耗时间的地方,性能问题往往比较复杂,需要严谨、耐心、细心,一个字就是要稳。
  6、调优改动合入正式版本后的回归验证,输出详细性能测试报告。
  二、xx产品的性能自动化解决
  性能测试从上面简单介绍来看,一般测试周期都是比较长,如果全部人工进行,那效率一般都是无法接受的,势必要考虑自动化。根据上面的性能测试流程介绍,很容易我们会想到的,要想自动化,就需要解决环境搭建、数据预置、话务执行、指标监控等步骤。
  注:由于被测系统还会与其它外部系统有交互,所有性能测试还要部署相关的Stub,而被测系统架构是基于云平台部署的所以需要有Vim,此图是一个简单性能自动化的示意图。
  性能自动化主要依赖4个核心的任务模块和1个工作流引擎,通过工作流引擎去编排串联子任务模块。
  部署升级模块:主要负责性能环境的部署和升级等操作。
  配置预置模块:主要用于环境的初始配置以及静态模型数据的导入。
  话务执行模块:主要执行实际的动态性能话务。
  监控报表模块:主要进行相关业务指标的监控处理。
  这些子模块的输入是基于一个统一的模型文件,采用json格式定义,我们根据被测SUT的特性抽象出:
  基础信息:xx产品是部署上虚拟化云平台之上的,通过基础信息定义云平台信息,供部署升级模块使用。
  组网模型:xx产品有IaaS形态的,也有PaaS形态的,通过组网模型,可以让部署升级模块自动部署出来需要的组网环境。
  话务模型:话务模型决定了任务执行模块如何执行,譬如是否需要执行告警上报,告警上报的速率是怎样的等等。
  监控报表模块:监控模块定义了监控哪些指标,IaaS、PaaS场景是需要区分的。
  等等。
  总结起来就是:1个模型、1套工作流机制、多个任务子模块配合完成性能自动化。

     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号