我的性能测试总结---基础理论篇

上一篇 / 下一篇  2020-12-09 11:25:49 / 个人分类:性能测试

  随着软件行业的快速发展,现代的软件系统越来越复杂,功能越来越多,测试人员除了需要保证基本的功能测试质量,性能也随越来越受到人们的关注。但是一提到性能测试,很多人就直接连想到Loadrunner。认为LR就等于性能测试,其实这是不对的。LR只是性能测试的一个工具,但性能测试不仅仅是LR。本文会从以下几个方面介绍基础的性能测试理论,后续也会持续更新相关文章,尽量理论结合实践,让性能测试学习不在是工具的学习。
  一、 什么是软件性能
  定义:软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性。
  由定义可知性能关注的是软件的非功能特性,所以一般来说性能测试介入的时机是在功能测试完成之后。另外,由定义中的及时性可知性能也是一种指标,可以用时间或其它指标来衡量,通常我们会使用某些工具或手段来检测软件的某些指标是否达到了要求,这就是性能测试。
  性能测试定义:指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
  二、不同群体眼中的性能
  不同的人由于人生观、世界观、价值观以及教育背景、知识体系、人生阅历的不同,对于同一事物或问题的看法可能不同。对于软件性能也是如此,不同的人由于视角的不同,所关注的点也可能不同。下面来看看在不同的人群眼中性能分别是什么样的。
  用户眼中的性能
  开发眼中的性能
  系统管理员眼中的性能
  测试眼中的性能是什么样的呢?
  测试人员通常是做为软件质量控制的一个角色,不仅仅是找bug,需要对整个软件的质量负责,性能也属于质量的一部分,因此测试人员眼中的性能应该是全面的,考虑的东西也需要全面:
  1、测试人员需要考虑全面的性能,包括用户、开发、管理员等各个视角的性能。
  2、测试人员在做性能测试时除开要关注表面的现象如响应时间,也需要关注本质,比如用户看不到的服务器资料利用率,架构设计是否合理?代码是否合理等言方方面面。
  三、性能测试类型
  1.基准测试:在给系统施加较低压力时,查看系统的运行状况并记录相关数做为基础参考
  2.负载测试:是指对系统不断地增加压力或增加一定压力下的持续时间,直到系统的某项或多项性能指标达到安全临界值,例如某种资源已经达到饱和状态等 。
  3.压力测试:压力测试是评估系统处于或超过预期负载时系统的运行情况,关注点在于系统在峰值负载或超出最大载荷情况下的处理能力。
  4.稳定性测试:在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定。
  并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题,
  四、性能测试应用场景(领域)
  1、性能测试应用场景(领域)主要有:能力验证、规划能力、性能调优、缺陷发现、性能基准比较,下表简单介绍和对比了这几个场景的各自用途和特点:
  2、通常在某个性能场景(领域)中需要联合使用多种性能测试方法一起进行性能测试,下表为性能测试应用领域与测试方法关联:
  五、性能测试基本概念
  1、响应时间
  a)定义:从用户发送一个请求到用户接收到服务器返回的响应数据这段时间就是响应时间
  b) 关键路径:下图为一次http请求经过的路径,请求会经过网络发送到web服务器进行处理,如果需要操作DB,再由网络转发到数据库进行处理,然后返回值给web服务器,web服务器最后把结果数据通过网络返回给客户端。
  c) 计算方法:Response time = (N1+N2+N3+N4)+ (A1+A2+a3),即:(网络时间 + 应用程序处理时间)
  d) 响应时间-负载对应关系:
  图中拐点说明:
  1、响应时间突然增加
  2、意味着系统的一种或多种资源利用达到的极限
  3、通常可以利用拐点来进行性能测试分析与定位
  2、吞吐量
  a)定义:单位时间内系统处理的客户端请求的数量
  b)计算单位:一般使用请求数/秒做为吞吐量的单位,出可以使用 页面数/秒表表示。
  另外,从业务角度来说也可以使用 访问人数 /天 或 页面访问量/天 做为单位。
  c)计算方法:Throughput = (number of requests) / (total time).
  d)吞吐量-负载对应关系:
  图中拐点说明:
  1、吞吐量逐渐达到饱和
  2、意味着系统的一种或多种资源利用达到的极限
  3、通常可以利用拐点来进行性能测试分析与定位
  3、并发数:
  并发用户数:某一物理时刻同时向系统提交请求的用户数,提交的请求可能是同一个场景或功能,也可以是不同场景或功能。
  在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求
  系统用户数:系统**的总用户数据
  三者之间的关系:系统用户数 >= 在线用户数 >= 并发用户数

TAG: 性能测试

 

评分:0

我来说两句

Open Toolbar