博客
关于我
【IT之路】性能测试系列 -- 初识性能测试
阅读量:321 次
发布时间:2019-03-03

本文共 2454 字,大约阅读时间需要 8 分钟。

性能测试入门

上一章节我们大概了解了 LoadRunner,这一章我们来认识一下性能测试。

什么是性能测试?

性能测试是通过自动化测试工具模拟多种正常、峰值以及异常负载条件,对系统的各项性能指标进行测试。简单来说,性能测试就是通过模拟各种使用场景,观察系统在高负载、资源紧张等极端条件下的表现,找出性能瓶颈并提出优化建议。

性能测试有哪些类型?

性能测试的类型多种多样,每种类型都有其独特的目的和应用场景。以下是几种常见的性能测试类型及其特点:

  • 负载测试(Load Testing)

    • 定义:在被测系统上不断增加压力,直到性能指标(如响应时间)超过预期指标或者某种资源使用已经达到饱和状态。
    • 特点:
      • 主要目的是找到系统处理能力的极限。
      • 需要考虑被测系统的业务压力量和典型场景。
      • 通常用于了解系统的性能容量,即系统在保证一定响应时间的情况下能够允许多少并发用户的访问。
  • 压力测试(Stress Test)

    • 定义:系统在一定饱和状态下,例如CPU、内存等饱和情况下,系统能够处理的会话能力,以及系统是否会出现错误。
    • 特点:
      • 该方法的主要目的是检查系统处于压力情况下是应用的性能表现。
      • 通过增加访问压力,使得系统资源使用保持在一定水平,检验此时应用的表现。
      • 一般通过模拟负载等方法,使得系统的资源使用达到较高的水平。
  • 验收性能测试

    • 定义:特定条件下验证系统的能力状况。
    • 特点:
      • 主要目的是验证系统是否具有系统宣称的能力。
      • 需要事先了解被测系统的典型场景,并具有确定的性能目标。
      • 需要在已确定的环境下进行。
  • 配置测试

    • 定义:通过对被测系统软硬件环境的调整,了解各种不同环境对系统性能影响的程度。
    • 特点:
      • 主要目的是了解各种不同因素对系统能力影响的程度。
      • 一般在对系统性能状况有初步了解后进行。
      • 需要在确定的环境、操作步骤和压力条件下进行。
  • 并发测试

    • 定义:模拟多用户并发访问同一个应用、模块或者数据记录时是否存在死锁或者其他性能问题。
    • 特点:
      • 主要目的是发现系统中可能存在的并发访问时的问题。
      • 主要关注系统中可能存在的并发问题,如内存泄漏、线程锁和资源争用等。
      • 可以在开发的各个阶段使用,需要相关的测试工具的配合和支持。
  • 可靠性测试

    • 定义:给系统施加一定的业务压力,让其持续运行一段时间,测试在这种条件下能否稳定运行。
    • 特点:
      • 主要目的是验证系统是否支持长期稳定的运行。
      • 需要在压力下持续一段时间的运行。
      • 测试过程中需要关注系统的运行情况,如内存使用、其他资源的使用以及响应时间有无明显变化。
  • 失效恢复测试

    • 定义:针对有多余备份和负载均衡的系统设计。
    • 特点:
      • 主要目的是验证局部故障下系统能否继续使用。
      • 需要指出问题发生时“能支持多少用户访问”和“采取何种应急措施”。
      • 一般只有对系统持续运行能力有明确指标的系统才需要该类型测试。
  • 容量测试(Volume Testing)

    • 定义:通过性能测试,如果找到了系统的极限或苛刻的环境中系统的性能表现,在一定的程度上,就完成了负载测试和容量测试。
    • 特点:容量还可以看作系统性能指标中一个特定环境下的一个特定性能指标,即设定的界限或极限值。
  • 基准测试

    • 定义:通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试。
    • 特点:需要通过科学的测试方法和工具,设计出精确的测试场景,确保测试结果具有可比性。
  • 大数据量测试

    • 定义:针对某些系统存储、传输、统计查询等业务进行大数据量的测试。
    • 特点:主要针对存储、传输、统计等业务场景,模拟大规模的数据量,测试系统在大数据环境下的表现。
  • 疲劳强度测试

    • 定义:长时间对目标测试系统加压,目的是测试系统的稳定性,持续时间一般在1小时以上。
    • 特点:与可靠性测试相似,主要通过长时间的高负载测试,验证系统在长时间运行中的稳定性。
  • 性能测试流程

    性能测试是一个系统性工程,通常包括以下几个步骤:

  • 需求分析

    • 需求分析是软件测试关键步骤之一,通过需求分析,我们能够了解到软件要提供的能力,方便后续开展测试工作。性能测试作为软件测试的一部分,需求分析同样重要。
    • 通过需求分析,我们可以明确测试的方向。比如,性能测试的测试策略、工具选型、性能指标等都需要通过分析才能得出。
  • 测试准备

    • 通过了需求分析,我们明确了测试的方向。那么,我们就要做好工具、环境部署、用例脚本等一些前提准备。
    • 这包括选择合适的测试工具(如LoadRunner、JMeter等)、配置测试环境、编写测试用例脚本等。
  • 测试执行

    • 一切准备好了,性能测试理所当然走到了测试执行的环节。测试的执行我们可以人工干预方式执行,也可以无人值守方式执行(自动化性能测试)。
    • 在测试执行过程中,需要监控系统的性能指标,如响应时间、CPU使用率、内存使用量等,确保测试过程中系统的稳定性。
  • 结果分析

    • 测试执行完成后,就到了我们性能测试的目的关键步骤了 - 性能结果分析。我们性能测试目的是改善系统的性能,达到客户规定的指标。
    • 通过对测试结果的分析,可以找出系统性能的瓶颈问题所在,指导系统优化和性能调优工作。
  • 总结与报告

    • 结果分析完了,接下来是总结与报告。报告需要提交给客户方、产品方或相关利益方阅读,同时也需要保存好作为后续问题处理的参考资料。
    • 报告应包括测试用例设计、测试结果分析、问题定位及优化建议等内容。
  • 常见的性能测试工具

    性能测试工具是性能测试工作中不可或缺的一部分,常用的性能测试工具包括:

  • LoadRunner

    • 功能完整强大,但内存占用较大,需要收费。
    • 适用于大型企业级系统的性能测试,支持多种协议和应用场景。
  • JMeter

    • 开源免费,免费使用,操作简单易懂。
    • 适用于日常性能测试工作,支持多种测试场景和协议。
  • 其他工具

    • 还有一些其他的性能测试工具,如Automic、Blaze、PerformanceTest等,这些工具各有其特点,适用于不同的测试场景和需求。
  • 通过合理选择和使用性能测试工具,可以更高效地完成性能测试工作,提升测试效率和准确性。

    转载地址:http://ymbl.baihongyu.com/

    你可能感兴趣的文章
    mysql 更新子表_mysql 在update中实现子查询的方式
    查看>>
    MySQL 有什么优点?
    查看>>
    mysql 权限整理记录
    查看>>
    mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
    查看>>
    MYSQL 查看最大连接数和修改最大连接数
    查看>>
    MySQL 查看有哪些表
    查看>>
    mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
    查看>>
    MySql 查询以逗号分隔的字符串的方法(正则)
    查看>>
    MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
    查看>>
    mysql 查询数据库所有表的字段信息
    查看>>
    【Java基础】什么是面向对象?
    查看>>
    mysql 查询,正数降序排序,负数升序排序
    查看>>
    MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)...
    查看>>
    mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
    查看>>
    mysql 死锁(先delete 后insert)日志分析
    查看>>
    MySQL 死锁了,怎么办?
    查看>>
    MySQL 深度分页性能急剧下降,该如何优化?
    查看>>
    MySQL 深度分页性能急剧下降,该如何优化?
    查看>>
    MySQL 添加列,修改列,删除列
    查看>>
    mysql 添加索引
    查看>>