首页
学习
活动
专区
圈层
工具
发布

软件开发|开发过程中的性能测试

软件测试

在我作为软件开发工程师的那一刻起,软件测试就时常萦绕在耳边,软件测试的重要程度不亚于软件开发和软件实施,在确保软件质量的同时、降低潜在风险、提高用户的满意度方面,软件测试可谓是功不可没。

从百度百科上面,可以看到这样一段话:

软件测试(英语:Software Testing),是使用人工操作(手动测试)或者软件自动运行的方式(自动化测试)来检验软件是否满足用户需求的过程。

而性能测试是软件测试中的一个小专业分类,其他的还有功能测试、安全测试等。下面就详细说说性能测试。

性能测试

上面有说过,在软件测试中软件性能测试是软件工程和质量保证领域中的一个重要环节,它主要关注软件系统的性能表现。性能测试旨在评估软件应用程序在给定的工作负载下,其性能特征的表现如何。这些性能特征包括但不限于响应时间吞吐量资源利用率(如CPU、内存、磁盘和网络带宽等)、稳定性可扩展性可靠性等。作为2024年潜在的"年度最佳"游戏,《黑神话:悟空》无疑已经成功吊足了所有人的胃口。《黑神话:悟空》性能测试如何呢?在体验过程中能够给人好的游戏体验?我的老人机能否带动这款游戏,能否让我也体验下这款国产的快乐?

做性能测试目的

上面也说到了做软件测试的目的,那么做性能测试的目的更加凸显。性能测试的主要目的有以下几点:

  • 评估系统/软件能力:了解系统在特定负载下的表现,如最大用户并发数系统响应时间渲染程度等。
  • 识别基础瓶颈:通过模拟高负载环境,找到发现系统瓶颈,如数据库性能、网络延迟、代码执行效率等。
  • 调整和优化:基于性能测试结果,对系统进行微调,以提升软件性能。
  • 规划未来容量:基于性能测试结果,预测系统在未来可能面临的需求增长,从而进行容量规划
  • 验证系统稳定性:确保系统在高负载下能够稳定运行,不出现崩溃或性能急剧下降的情况。

性能测试的类型

在我们做性能测试时,主要关心以下几个方面:

  • 基准测试:在正常环境下,对系统性能进行度量,以作为后续测试或优化的基准,有时也叫做最低配置。
  • 负载测试:模拟多个用户同时访问系统,以评估系统在特定负载下的性能表现。
  • 压力测试:通过不断增加负载,直到系统达到饱和或崩溃的临界点,以评估系统的最大容量和稳定性,直白点就是你抗不抗揍吧。
  • 稳定性测试:也可以称为耐久性测试,让系统长时间运行在高负载下,以评估系统的稳定性和可靠性,就是抗揍的久不久吧。
  • 并发测试:这个在其他测试中也有,这里是模拟多个用户同时执行相同或不同的操作,以评估系统对并发请求的处理能力,有点同负载差不多意思。

做性能测试工具

我们在做性能测试时,较普遍的使用LoadRunner和JMeter,其他的工具还有NeoLoad、Gatling、LoadNinja、kylinTOP、Loadster、Apifox等。

1. LoadRunner

LoadRunner是一款由Micro Focus公司开发的企业级性能测试工具。它支持广泛的协议和技术,包括Web应用程序、数据库、ERP系统、移动应用程序等。LoadRunner提供丰富的测试场景和功能,支持录制回放、脚本编辑、场景设计,能够模拟大量并发用户进行测试(收费版本更舒服些),快速发现性能瓶颈,提供详细的测试报告和分析工具,帮助测试人员深入了解测试结果,LoadRunner适用于大型、复杂的性能测试场景,需要较高的硬件和技术支持。不过,LoadRunner是商业版软件,使用时需要使用一些小技巧。

【官网】https://www.opentext.com/zh-cn/products/loadrunner-professional

2. JMeter

JMeter是Apache组织开发的一款开源免费的性能测试工具。它最初被设计用于Web应用功能测试,但如今已广泛用于性能测试。用户可以免费使用并修改源代码,可运行于多种操作系统和硬件环境,目前最新的版本为JMeter 5.6.3。JMeter支持多种协议:包括HTTP、FTP、JDBC、SOAP等,满足不同类型应用的测试需求。JMeter功能丰富,支持负载测试、压力测试、功能测试等多种测试场景。

【官网】https://jmeter.apache.org/

【Github】https://github.com/apache/jmeter

如何做性能测试

在软件开发过程中,做性能测试的步骤:

  • 确定测试目标和范围:明确性能测试的目的、需要测试的性能指标和测试的范围。
  • 规划测试环境:搭建与生产环境相似的测试环境,包括硬件、网络、操作系统和数据库等。
  • 设计测试场景:根据测试目标和范围,设计合适的测试场景和负载模型,编写测试用例。
  • 执行测试:使用性能测试工具(如LoadRunner、JMeter等)执行测试,收集性能数据。
  • 分析测试结果:对收集到的性能数据进行分析,识别瓶颈和潜在问题。
  • 报告和反馈:编写性能测试报告,向相关方反馈测试结果,并提出改进建议,拿到相关方的签字、盖章等。

总结

总之,软件性能测试是确保软件系统满足性能需求、提高用户体验和保证系统稳定运行的重要手段。

下一篇
举报
领券