【软件测试】性能测试相关指标

性能测试

了解性能测试相关指标

1.什么是做性能测试

1.1 生活中遇到的软件性能问题

软件用着用着就不能用了,一看热搜,发现该软件的服务器崩崩溃了。

1.2 性能测试定义

测试人员借助性能测试工具,模拟系统在不同场景下,对应的性能指标是否满足需求。

1.3 性能测试和功能测试的区别

  • 功能测试依靠人工去执行。性能测试依靠工具完成。
  • 功能测试:验证软件是否实现了需求。不管在什么场景下,只要能够正常运行即可。
  • 性能测试:在软件能够正常运行的前提下。软件在极端的情况下,是不是能正常运行。

性能测试是在功能测试之后执行的。

1.4 什么样的表现属于软件性能好的表现

相应时间短,资源利用率高,日活跃用户数多,吞吐量大。

  • 一个软件登录时间3ms比登录时间3s的性能要好
  • 软件日活跃用户数多的,比日活跃用户数少要性能好
  • 软件由于用户访问次数多,软件采用了较少并发数,软件算法优化,服务器升级的软件性能比用户访问人数一多就崩溃的软件好。

【软件测试】性能测试相关指标_第1张图片

DAU:日活跃用户数。

1.5 影响一个软件性能因素

  • 硬件:服务器CPU利用率,内存,磁盘操作频率,CPU核心数,网络带宽。
  • 软件:实现软件的算法,编写软件的编程语言
  • 用户:用户数量,用户使用时长,用户的使用频率

为什么要做性能测试?

  • 获取系统性能的指标,作为性能指标的基准(基准性能测试)
  • 验证系统的性能指标是否达到要求(性能需求)
    • 应用程序是否能够满足系统要求的各种性能指标
    • 应用程序是否能处理预期的用户负载并有盈余能力
    • 应用程序是否能处理业务所需要的事务数量
    • 在预期和非预期的用户负载下,应用程序是否稳定
    • 是否能确保用户在真正使用软件时获得舒服的体验
  • 发现系统的性能瓶颈,内存泄漏等问题。
  • 系统正常工作的情况下的最大容量。
  • 帮助系统运维部门能更好的规划硬件配置

2.性能测试常见术语以及衡量指标

2.1 并发:

  • 1个用户访问该网站(×)
  • 100万个用户每隔10s时间访问该网站(×)
  • 100万个用户同时访问该网站(√)

并发要满足大量用户同时访问

业务层面的并发用户数:指的是同时向服务器发送请求的用户数量。 后端服务器层面的并发用户数:指的是同时向服务器发送请求的请求数量

后端服务器层面的并发用户数 >= 业务层面的并发用户数

2.2 用户数:

  • 系统用户数:系统注册用户数(数据库对其进行维护,不一定访问系统,不访问的不会对系统产生压力)
  • 在线用户数:成功登录系统的用户数(相当于qq登录上账号了 ,停留在登录成功页面。并不会对系统产生压力)
  • 并发用户数:大量用户同时访问系统,此时访问的用户数就是并发用户数。

数量 系统用户数 > 在线用户数 > 并发用户数

2.3响应时间

【软件测试】性能测试相关指标_第2张图片

用户响应时间:发出请求开始,到客户端接收完所有的字节数据所消耗的时间 N1+A1+N2+A2+N3+A3+N4

请求响应时间:服务器收到请求发出相应这段时间是请求响应时间。A1+N2+A2+N3+A3

影响一个软件的响应时间因素有那些?

用户设备,网络带宽,服务器的配置(CPU,内存),软件算法逻辑,数据库性能

2.4 事务

数据库的事务就是把多个操作打包到一起,构成原子操作。

性能测试中,事务指的是指一组密切相关的子操作的组合 ,比如一次登录、一次筛选条件查询,一次支付等;

  • 事务响应时间:用户完成某个具体事务(比如支付操作)所需要的时间。
  • 358原则:对于一般系统而言,如果用户点击按钮后,系统可以在3秒钟内得到应答,则用户比较满意;如果系统在5秒内得到应答,则用户能够忍受;如果系统在8秒后得到应答,则用户不能忍受
  • 每秒事务通过数: 处理的事务数量/事务花费的时间, 每秒事务通过的数量越多说明软件性能越好的。

TPS 是指每秒系统能够处理的事务数。它是衡量系统处理能力的重要指标。这个指标衡量了系统在同一时间内处理业务的最大能力。 当压力加大时,TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈了。如果环境没有发生大的变化,对于同一系统会存在一个最大处理事务能力,它并不随着并发用户的增减而改变

2.5 点击率

点击量:用户点击发送的http请求数,并不能衡量软件性能

点击率:点击量/时间

每秒点击数代表用户每秒向Web 服务器提交的HTTP请求数。点击率越大,服务器压力越大。这里的点击并不是鼠标的一次点击,一次点击可能有多次HTTP请求。

2.6 吞吐率

吞吐量:用户一次请求和服务器之间的数据交互量。并不能衡量软件性能

吞吐率:吞吐量/时间。吞吐率越高软件性能越好

2.7 思考时间

用户在对软件进行操作的时候,每一个操作中间的时间间隔。

2.8 资源利用率

不同系统资源的使用情况。包含CPU,内存,硬盘,网络等。

面试题:了解性能测试,那么你给我说一下你做性能测试的时候,你关注哪些指标?

【软件测试】性能测试相关指标_第3张图片

3.性能测试的分类

基准性能测试

定义:让系统在正常情况下运行,观察性能指标。建立一个性能基准,作为以后性能测试的参考。

应用场景:软件刚上线需要对性能进行摸底,软件进行升级后,性能测试的参考,衡量软件是变好了还是变坏了。

负载性能测试

验证软件在一定的压力情况下运行,观察性能指标是否出现拐点。

压力性能测试

系统处于临界饱和的情况下,观察系统性能指标。(往往会把系统搞崩溃)

可靠性测试

验证系统在一个持续的时间段内运行,在这个运行时间段内,观察系统各项性能指标是否正常。

持续1day -> 持续运行一周 -> 持续运行1个月 -> 一个季度 -> 一年

如果持续一天没问题就持续一周,如果持续一周没问题就持续一个月……

可靠性就是可用性,正常使用时间的占比。可靠性 = 正常运行时间/(正常运行时间+非正常运行时间)* 100*%*可用性指标一般要求达到4个或5个“9”,即99.99%或者99.999%

如果可用性达到99.99%,对于一个全年不间断(7*24的方式)运行的系统,意味着全年(252600min)不能

正常工作的时间只有52min,不到一个小时。

如果可用性达到99.999%,意味着全年不能正常工作的时间只有5min 。

可靠性测试靠人为是达不到要求的,需要借助工具比如(loadrunner)

造成可靠性降低的原因:软件硬件出现问题,网络故障出现问题,自然灾害导致服务器损坏出现问题,停电。

4.性能测试的执行流程

功能测试的执行流程:需求分析→测试计划→ 测试设计、测试开发→ 测试执行→ 测试评估(发布测试报告)→ 上线

性能测试的执行流程:需求分析→测试计划→选择一款性能测试工具→性能测试脚本编写→执行性能测试脚本→产生性能测试报告

性能测试中出现了不符合预期的情况,我们不叫做BUG,叫做性能瓶颈

在性能测试中,出现了性能瓶颈,开发修复的过程叫做优化

你可能感兴趣的:(软件测试,性能测试)