JMeter实战读书笔记(一)

391 阅读4分钟

性能测试是什么

  • 利用工具取模拟大量用户操作来验证系统能够承受的负载情况,找出潜在的性能问题,分析并解决问题
  • 性能测试的价值:保障系统的性能,提供良好的用户体验,尽可能找出系统性能薄弱环节,帮助进行性能优化.

性能测试流程

  • 业务学习:了解系统功能
  • 需求分析:分析系统非功能需求,圈定性能测试范围,了解系统的性能指标
  • 工作评估:分解和评估工作量
  • 设计模型:业务模型--映射--测试模型
  • 计划编写:计划测试工作(测试范围 人力投入 持续时间 工作内容 风险评估 风险应对策略等)
  • 脚本开发:录制或编写性能测试脚本(开发测试挡板程序 测试程序或工具)
  • 测试环境准备:服务器 和 负载机
  • 测试数据准备:根据数据模型准备被测系统的 主数据 和 业务数据
  • 测试执行
  • 缺陷管理
  • 性能分析
  • 性能调优
  • 测试报告
    • 性能测试主要交付件
      • 测试计划
      • 测试脚本
      • 测试程序
      • 测试报告或阶段性测试报告
  • 评审:对性能报告中的内容进行评审,确认问题、评估上线风险。

性能测试要素(重要关注点)

  • 评估系统,需求分析

    不可完全依赖需求文档,还需要相关人员(运维/产品)提供具体的需求数据并进行二次分析-->>真实的性能需求

  • 场景设计,用例设计
    • 用例设计(选择需要做性能测试的功能)
    • 场景设计(有效组织测试用例--按 业务分布、业务量、业务时段、业务角色来综合分配用户数,执行时间、执行比例等)
  • 测试执行、是否通过(性能指标:响应时间RT、吞吐量TPS、事务成功率、稳定性、内存有无泄漏、硬件指标<CPU、内存、存储、网络> 、其他(数据库、中间件、缓存、JVM)
  • 性能诊断优化

性能测试的角度看性能

  • 服务器硬件性能
  • 根据需求和历史数据制定性能目标
  • 建立性能通过模型
  • 对开发代码框架和硬件框架进行性能分析
  • 针对开发发布版本的基准测试
  • 执行软件性能验收及稳定性测试
  • 生产环境的配置和优化
  • 制定性能测试的测试用例
  • 制定性能测试的场景设计
  • 协调各部门配合
  • 特定的性能分析

性能测试工具

  • HP公司的Loadrunner(商业)
  • Apache JMeter(开源)
  • Grinder(开源)...

相关术语

  • 负载:模拟业务操作对服务器造成压力的过程
  • 性能测试(Performance Testing):模拟用户负载来测试系统在负载情况下,系统的响应时间、吞吐量等指标是否满足性能要求
  • 负载测试(Load Testing):在一定软硬件条件下,通过不断加大负载(不同虚拟用户数)来确定==在满足性能指标情况下能够承受的最大用户数==。TPS\ RT\ CPU Using\Mem Using
  • 配置测试(Configuration Testing):通过测试手段,来获取不同配置下的性能信息-->合理调配资源,提高系统运行效率
  • 压力/强度测试(Stress Testing):在一定的软硬件条件下,通过高负载的手段来使服务器资源处于极限状态,测试系统==在极限状态下长时间运行是否稳定==(指标:TPS/RT/CPU Using/Mem Using)
  • 稳定性测试(Endurance Testing)::在一定的软硬件条件下,长时间运行一定负载,确定系统在满足性能指标的前提下是否运行稳定
  • TPS:每秒完成的事务数
  • RT/ART(Respnse Time/average):响应时间/平均响应时间
  • PV(Page View):每秒用户访问页面的次数
  • Vuser虚拟用户(Virtual user):模拟真实业务逻辑步骤的虚拟用户
  • Concurrency并发
    • 狭义:所有用户在同一时刻对系统做相同的请求操作-->>测试数据库和程序对并发操作的处理(适用于 性能/负载/压力/稳定性测试场景)
    • 广义:多个用户对系统发出请求或操作,但这些请求或操作可以不同(适用于 混合场景、稳定性测试场景)
  • 场景(Scenario):模拟真实用户的业务处理过程----构建基于事务、脚本、虚拟用户、运行设置、运行计划、监控、分析等的一系列动作的集合
  • 思考时间(Think Time):模拟正式用户在实际操作时的停顿间隔时间
  • 标准差(Std. Deviation):标准差越小---波动越小,系统越稳定;标准差越大---波动越大,系统越不稳定

性能测试通过标准

  • 包含:
    1. 服务端性能
    2. 前端性能
    3. 用户体验性能
  • 通过标准
    web通过标准