不懂性能测试,被面试官挂了...( 四 )

  • 为该产品将来版本确定性能需求基线 。
  • 以下任务不在此次性能测试工作范畴中(Out of Scope):
    • 功能测试 , UAT , 系统测试和安全测试;对任何第三方接口进行性能测试/监视 。
    • 性能调优;(大多数时候调优是由不同的团队完成的 , 如果团队中有性能工程师来调优系统 , 可以将其这部分工作添加到 In Scope 中) 。
    • 安全/渗透测试/白盒测试 。
    • 性能测试的数据生成 。
    • 非功能测试(例如 , 故障转移、灾难恢复、备份、可用性) , 而不是性能测试 。
    • 第三方应用程序性能测试和调优 。
    • 从性能团队的角度来看 , 应用程序代码更改 , 优化供应商支持的产品/服务器配置等都超出范围 。
    • 基础设施支持/构建部署/环境准备/数据库恢复/网络支持等 。
    ③性能测试方案
    XXX 聊天应用程序的性能测试将使用 JMeter 来进行 , 结合自定义编写的 XMPP 插件 , 这些插件通过 Smack 库实现 XMPP 连接 。
    这些库用来创建连接、实现用户登录并向 XMPP 服务器发送聊天消息 。 将这些库打包进成一个 Jar 文件 , 然后部署到 JMeter 中 , 并根据测试场景进行设计 。
    JMeter 工作台即 JMeter 服务器 , 安装在本地机器上 , JMeter 工作台通过负载生成器产生所需的负载 , 向聊天服务器所在系统发出请求 , 与此同时 JMeter 工作台负责监视聊天服务器所在系统的行为 。
    根据性能测试需求分析 , 通过 JMeter 创建测试脚本和测试场景 , 针对不同场景设计虚拟用户数及虚拟用户活动状态 , 尽可能模拟真实场景 。
    将每个测试场景分解并从以下几个方面进行检测:
    基线测试:1 个虚拟用户数+多个迭代运行每个场景 , 以确定应用程序性能是否满足业务服务水平 。
    基本负载测试:为了满足负载测试下的业务基准 , 性能测试团队将执行一个基本负载测试 , 该测试将有助于识别随着负载增加而出现的任何系统性能问题 , 并为下一级别的性能测试创建基线 。
    峰值负载/可伸缩性测试:性能测试团队针对不断增加虚拟用户数进行多次测试 , 以满足预期负载 , 同时检测应用程序性能 , 建立性能曲线 , 确定当前应用程序部署是否能够支持峰值用户负载下的服务水平协议 。
    这有助于对单个 Java 虚拟机(JVM)进行调优 , 以及对所需 JVM 总数和处理器的容量规划 。
    通过将虚拟用户数的值增加到峰值容量的 50% , 75% , 100% 和 125% 来进行峰值负载测试 。
    持久性测试/稳定性测试:性能测试团队基于不同时长(8 小时/16 小时/24 小时)持续运行指定的测试 , 以识别随着时间推移所产生的内存泄漏及其他性能问题 , 同时检验整体系统的稳定性 。
    在持久性测试期间 , 性能测试团队需要监视关键性能指标 , 例如事务响应时间 , CPU , I/O , 内存等系统资源使用情况是否稳定 。
    假定性能测试环境是生产环境的一个副本 , 测试将在增量负载下运行 , 以确定应用程序在那种负载情况下未达到性能要求 , 或出现异常行为 。
    ④性能测试场景
    注:企业中所有的测试场景可以集中编写在 Excel 文档里 , 这里仅以一个测试场景为例 。
    【场景 1】:验证代理和客户间的并发会话数 。
    【测试方案】:下表列出了不同性能测试方案及其对应的测试目标 。
    不懂性能测试,被面试官挂了...
    本文插图
    【性能指标设定】
    客户端关注指标:
    不懂性能测试,被面试官挂了...
    本文插图
    系统&网络性能指标:
    不懂性能测试,被面试官挂了...