给你一个项目,你会如何开展性能测试工作(二)

性能测试的正式开展

1

执行测试脚本


在保证接口可以成功调用之后,先进行单接口基准测试,即:对一个接口进行压力测试,不断加压,直到响应时间达到或超过指标,观察当前其并发数和TPS。同样的并发数,多执行几次,得到一个平均值或稳定值(即TPS和TRT曲线相对稳定的值),并记录下来。

 

记录的目的是通过直观的数据变化,得到单个接口的最大TPS和不同并发情况下的响应时间变化。

“80%的性能瓶颈可以通过分析TPS和TRT的数值变化得到”。虽然有点片面,但也不失为一种方法。比如按照上图记录的数值变化来看,很明显领券接口性能极差,这时候就可以告知开发,通过查看log、检查代码、SQL语句等方法来查询原因。当然个人能力足够的话,这些可以自己来做。

2

监控调试


所谓的监控调试,就是一个不断调整重复的过程,这个需要根据性能测试的目的去判断具体如何执行。

Jmeter本身就用监听器这个元件提供了一定的监听数值报告元件,但毕竟是开源工具,其本身的组件功能不够强大,可以通过下载支持jmeter的增强型功能插件来进行监控。

Jmeter插件下载地址:https://jmeter-plugins.org/


下载后可以解压缩,将plugins-manager.jar放入jmeter安装目录lib/ext,然后重启Jmeter即可,可以通过点击下图圈出来的按钮检验是否成功安装:

 

 无论是对服务器资源使用率还是测试数据报表生成,甚至TPS、TRT等的监听,该插件都提供了组件支持,具体使用方法自行探索。

3

分析和调优


性能测试除了为获取性能指标外,更多是为了发现性能瓶颈和性能问题,然后对性能问题和瓶颈进行分析和调优,在当今互联网高速发展的时代,性能调优的模型可以归纳总结如下图所示。

 

性能调优就是不断采集系统中的性能指标以及系统模型中各层的资源消耗,从中发现性能瓶颈和性能问题,然后对瓶颈和问题进行分析诊断来确定性能调优方案,最后通过性能压测进行验证调优方案是否有效,如果无效继续重复这个过程进行性能分析,直到调优方案有效,瓶颈和问题得到解决。这个过程一般是非常漫长,因为很多时候性能调优方案往往不是一次就能有效或者一次就能解决所有的瓶颈和问题,或者解决了当前的瓶颈和问题,但是继续性能压测又可能会出现新的瓶颈和问题。

4

输出测试报告


根据以上几个步骤,得到测试结果,分析系统存在的瓶颈,然后采用各种方法提出解决方案或优化建议,最后对本次性能测试进行一个完整的总结,这样,一次性能测试就完成了。在整个过程中,费时较长一般是在测试数据准备和测试执行以及监控调优阶段。

性能测试路漫漫其修远兮,想要进一步真正做好性能测试还需上下求索。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 综述 1.1 什么是性能测试 检验系统的性能是否符合要求的测试。包括压力测试、负荷测试、可靠性测试、稳定性测试...... 1.2 性能测试包括哪些方面的测试 速度:服务响应速度 容量:最大支持用户数 可靠性:高负荷运行、长时间运行 1.3 性能测试的目的 (举例) 测算系统的性能指标 查找系统的性能瓶颈 给出较适合的软硬件配置方案 检验硬件配置能否满足客户要求 系统调优(硬件调优、数据库调优) 出一份报告给客户看 1.4 性能指标 (举例) 平均响应时间(秒) 成功率(%) 系统最大处理能力(请求/秒) 系统支持的最大并发用户数 系统预期响应时间(秒) 1.5 性能测试过程 确定目的 设计方案 测试实施 数据分析 2 性能测试过程详述 2.1 确定目的 2.1.1 如何确定测试目的 问主管 问项目经理 问市场人员 问客户 看需求规格说明书 看系统设计文档 靠经验 2.1.2 确定分析方法 需要收集哪些数据 由这些数据怎样分析出测试目的 2.1.3 注意事项 并非所有目的都是合理的(典型例子:测一下所有用户同时点击某个功能) 要找到真正的目的,而不是光问出一句话,有时候,一个人说的并不是他真正要的 各种方法所收集到的目的很可能是不同的,要综合分析,并与相关人员确认 2.2 设计方案 2.2.1 选择具有代表性的功能 最常用的 最耗资源的 2.2.2 设计测试环境 各台机器软硬件配置 系统的各个程序运行在哪台机器上 2.2.3 选定测试工具 通常是选用现成的测试工具,例如loadrunner,但也可能需要自己编写 2.2.4 设计测试步骤 系统运行的步骤 测试数据(界面输入的数据,数据库表中的记录数、索引情况) 2.2.5 确定要记录的原始数据 由测试目的决定 举例: 成功次数、失败次数 测试总时长 CPU占用率(平均、最大) 内存占用 磁盘I/O 2.2.6 注意事项 一般来说,系统的各个程序运行在哪台机器上,在这个阶段可以初步确定,但在测试实施阶段可能还要作出调整 确定数据库表的记录数时,采用从严的原则,在客户实际使用可能产生的数据量的基础上乘以1.5到10倍 确定需要记录哪些原始数据时,采用从宽的原则,即不确定是否需要时,尽量记录下来 2.3 测试实施 2.3.1 搭环境 2.3.2 运行测试工具,记录原始数据 2.3.3 对原始数据进行初步分析 根据成功、失败次数确定本组数据是否有效(成功率大约95%,成功次数大于20) 根据成功、失败次数确定是否需要调整一组数据的测试时长 根据数据的发散情况确定本组数据是否有效 根据前后数据的对比确定本组数据是否有效 根据前后数据的对比确定是否需要在同样情况下再次测试 根据CPU占用率确定下一步的负荷 ...... 2.3.4 重复上面2步 2.4 数据分析 根据原始数据计算出性能指标,对当初确定的目的作出一个结论 3 性能测试的误区 做性能测试主要就是测试工具的使用 测试工具可以自动生成我所需要的报表 我做不好性能测试,是因为对测试工具不熟悉 4 常见问题 主管要我做性能测试(或压力测试、负荷测试),我该怎么办? 我用工具测了一些数据出来,我要怎样分析?我们的系统到底性能怎么样?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值