软件测试-性能测试1-性能测试概念

性能测试概述


性能测试概念
  • 什么是性能?

    • 时间:系统处理用户请求的响应时间

    • 资源:系统运行过程中,系统资源的消耗情况

  • 什么是性能测试?

    • 使用自动化工具,模拟不同的用户使用场景,对软件的各种性能指标进行测试和评估

  • 性能测试的目的

    1. 评估当前系统能力

    2. 寻找性能瓶颈,优化系统

    3. 评估软件是否能够满足未来的需要

性能与功能测试区别
  • 焦点不同

    • 功能测试:测试软件的功能是否符合产品需求

    • 性能测试:测试软件是否满足用户的使用场景需求

  • 前后顺序不同

    • 先接口功能测试,再性能测试

      • 强调:接口功能测试没有通过,不会进行性能测试

      • 注:不是所有的接口,都需要进行性能测试

性能测试策略


基准测试
  • 概念:模拟单个用户运行时,系统的性能指标数据

    • 目的:为之后真正开展性能测试,做数据准备

  • 使用场景

    1. 为多用户并发测试(性能测试),提供数据参考

    2. 系统配置优化后,性能是否有所提升

    3. 系统代码优化后,性能是否有所提升

负载测试
  • 概念:逐步增加用户的访问量,试探系统或服务器的最大承载量

    • 负载 = 访问的用户数量

  • 使用场景:系统最大负载量达到用户要求时,才能正常上线

  • 案例说明:

需求:针对TPshop商城的主页,平均响应时长在1500ms以内,支持最大的用户访问量
测试结果
    1个人--240ms
    10个人--264ms
    30个人--726ms
稳定性测试
  • 概念:服务器在正常负载下,进行长时间测试,最终能够满足业务要求

  • 使用场景:系统在用户要求的业务负载下运行达到规定的时候之后,才能正常上线

压力测试
  • 概念:在强负载下测试,系统运行是否有隐患,以及可恢复的能力

  • 使用场景

    1. 极限负载(超过最大可以正常使用的人数)下,进行压力测试

    2. 高负载(最大正常使用人数)下进行长时间运行,进行压力测试

并发测试
  • 概念:测试多用户同一时间,使用同一个功能时,是否产生隐藏的问题

  • 使用场景:抢购,秒杀,抢红包

  • 案例说明:

需求:针对TPshop商城的主页,测试同一时间支持50个用户发送接口请求,平均响应时长在4S以内
测试结果:2157MS
小结
  • 测试准备:基准测试

  • 正向测试:

    • 负载测试:系统功能正常运行的最大承载量(最大用户数)

    • 稳定性测试:系统正常运行的最大时间

    • 并发测试:指定需求情况下,进行测试(指定同一时间需求处理的请求数量)

  • 反向测试:

    • 压力测试(异常测试):(超过最大承载量,超过最大正常运行时间)系统崩溃之后,提前给出解决的方案

性能测试指标

  • 作用:使用可量化的数据,用以评估软件性能是否达标

    • 验证接口的性能测试是否通过,就是根据是否达到这些性能指标,进行判断

  • 常用的性能指标:响应时间,并发数,吞吐量,资源利用率,点击数,错误率

响应时间
  • 定义:从客户端发起请求,到客户端接收到返回响应结果的时间

  • 组成:响应时间=网络传输时间(请求数据传递的时间,响应数据传递时间) + 服务器处理时间

并发数
  • 定义:同一时间,同时向服务器发送请求的用户数

  • 案例说明

淘宝系统案例 - 哪个是并发数?
场景1:淘宝商城,注册用户数有5亿--不是
场景2:当前登录了淘宝商城的用户数为2000万--不是
场景3:目前正在刷淘宝的用户数有500万--是,并发数500万
吞吐量
  • 定义:单位时间内,服务器能够处理的请求数量。(直接体现了软件系统的承载能力)

QPS
  • 单位时间内,能够处理的接口请求数量

TPS
  • 单位时间内,能够处理的事务(接口业务场景)数量

QPS与TPS关系
  • 一个事务对应一个接口:QPS = TPS

  • 一个事务对应N个接口: QPS = N * TPS

案例说明
查询订单接口,1S内服务器能正常处理10个接口请求
答案:
    QPS=10
    TPS=10
支付业务功能,涉及3个接口(登录,创建订单,支付),1S内服务器能正常处理10个该业务
答案:
    QPS=30
    TPS=10
资源利用率
  • 定义:服务器各种资源的使用情况。资源的使用量/总的资源可用量*100% = 资源利用率

  • 常见资源指标有哪些?(面试题)

    • CPU使用率:不高于75%-85%

    • 内存使用率:不高于80%

    • 磁盘IO(速率):不高于90%

    • 网络(速率):不高于80%

  • 磁盘IO指的是磁盘空间的利用率吗?

    • 不是。数据针对磁盘读取和写入的速率

性能测试模型
  • 图示

  • 需要掌握的问题(面试题)

1.在A-B范围内,增加用户数,系统处理能力-吞吐量会(增加)
2.在B-C范围内,增加用户数,系统处理能力(不变)
3.在C-D范围内,增加用户数,系统处理能力会(下降)
4.系统处理能力=(吞吐量),轻压力区=(A-B)区间,重压力区=(B-C)区间,崩溃区=(C-D)区间
4.系统最大负载用户数量为(B~C),极限负载用户数量为(C)
5.系统长时间稳定运行时推荐用户数量为(B~C)
6.性能需求:系统在长时间使用时的用户量在(B~C)之间,考虑性能是否有问题--稳定性测试
点击数
  • 定义:针对web项目,访问一个页面,向web服务器发送的请求数量

    • 访问一个页面 = 1次点击数

  • 区分点击数和事务的区别

    • 点击数:一个页面包含的所有页面资源元素(如:图片,连接,框架css\js等)的请求总数量

    • 事务:完成一个业务场景,需要使用到的接口请求数量

错误率
  • 定义:在系统负载情况下,业务失败的概率

  • 区分性能的错误率与功能测试中的偶然失败

    • 关键点:是否在负载情况下,执行的该业务测试

    • 案例练习:

一个用户创建10次订单,失败了一次
错误率=?--没有负载
10S内,100个用户创建1次订单,失败了10次
错误率=10%--负载:QPS=10

性能测试流程

性能测试执行
  1. 搭建性能测试环境

  2. 编写性能测试脚本

  3. 配置性能测试监控指标

  4. 执行性能测试脚本

性能分析和调优
  • 测试人员负责针对性能的测试结果进行分析是否存在bug,由开发人员进行调优

    • bug的确认:是否满足性能指标

  • 注意:在性能测试的回归过程中,可能需要进行多轮

性能测试报告
  1. 性能测试的过程

  2. 性能测试的缺陷分析和调优(重要)

  3. 性能测试的结果(重要)

  4. 经验和总结

Loadrunner和Jmeter的优缺点


Jmeter
Loadrunner

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值