一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就来谈谈关于软件测试中的“软件测试之性能测试概述”。
随着软件测试在国内的发展,越来越多的企业开始涉及性能测试,也越来越重视测试的全面性,有相关组织调查显示,每年花费在解决软件性能问题的资金大约为 44 亿美元。如果就个人而言,一直从事手工测试显然对个人职业规划不利,而性能测试是通往高端测试人才的一个选择方面,对未来职业发展和规划更有利。
性能测试概述
在过去几年时间中,软件开发技术迅速发展,日益成熟,但与此同时,现代应用程序的复杂性也快速膨胀。应用程序可能使用上百个单独的组件完成以前手工完成的工作。这种复杂性直接与业务流程中更多的潜在故障点相关,使分析性能问题的根本原因变得更加困难。所以传统的通过手工进行性能测试在现在变得异常困难,故需要进行性能测试自动化。
(1)性能测试的概念
一般来说,性能是一种指标,表明软件系统或构件对其及时性要求的符合程度;其次,性能是软件产品的一种特性,可以用时间来进行度量。性能的及时性用响应时间或吞吐量来衡量。响应时间是指服务器对请求作出响应所需要的时间。
系统性能包括时间和空间两个维度,时间是指客户操作业务的响应时间,空间是指系统执行客户端请求时,系统资源消耗情况。客户关注的性能只是时间的表现,客户不关注是什么原因引起的性能问题,但性能测试工程师和系统工程师就必须关注系统资源使用的情况。
性能测试是测试系统端到端(即客户端发送请求经过服务器将信息返回的过程)的性能指标,目前在系统设计阶段无法设计出一个定量性能的系统,即开发工程师无法保证设计好的系统其性能表现如何,还是得靠测试来验证性能的表现,性能测试是一系列的测试过程。在系统投入到市场之前,必须对系统的性能进行测试,否则无法确定系统的性能是否能满足客户的需求。
(2)性能测试自动化
手工进行性能测试存在诸多困难,如图 16-1 所示。
消耗大量的测试资源(主要包括测试人员和测试机器的成本)。
如何保证并发测试?
如何收集测试结果?
如何重复执行该测试?
图 16-1 人工性能测试困难
需要使用性能测试工具来代替手工测试,即性能测试自动化的过程,自动化性能测试是利用人员、流程和技术来减少应用程序部署、升级或补丁部署过程中的风险的方法。自动化性能测试的核心是将生产工作量应用到部署前的系统,同时测量系统性能和最终用户体验。
自动化性能测试解决方案应该能够解决以下问题:
模拟成百上千个用户与系统交互,而无需过多的硬件需求。
测量最终用户响应时间。
监控负载系统组件。
高效的自动化测试解决方案(即性能测试工具)通常使用四个主要组件来构建并运行测试:
虚拟用户生成程序,用于将最终用户业务流程捕获到自动化脚本中。
监视器,用于组织、驱动、管理和监控负载。
负载生成程序,用于在执行时运行虚拟用户。
分析引擎,用于查看、剖析和比较结果。
结构完善的性能测试应该能够回答以下问题:
应用程序对目标用户响应是否够迅速?
应用程序是否能够处理预期的用户负载以及更多的负载?
应用程序是否能够处理业务所需要的大量交易?
应用程序在预期或非预期的用户负载下是否稳定?
在投入使用时用户是否具有积极的体验(即快速响应时间)?
今天就学习到这里了,每个工作日小编都会更新一个小知识,希望大家多多关注我们,一起来学习喔!