功能测试主要根据产品业务需求、产品行业特征、模拟用户操作方式来测试一个产品的特性以确定它们是否满足用户需求。
性能测试则是通过某种特定的方式对被测系统按照一定的测试策略进行施压,获取该系统的响应时间、运行 效率。资源利用情况等各项性能指标,来评价系统是否满足用户性能需求的过程。
通俗的说,功能测试用于确保软件系统做了正确的事情,性能测试则用于确保软件系统快速地完成任务。
系统管理员作为系统软件的管理者,主要关注服务器的资源使用情况、系统的可扩展性、系统的最大支持用户量、系统的稳定性,以及系统可能出现的瓶颈、出现异常的情况下如何处理
作为研发人员,主要关注软件系统架构的合理性、数据库的设计是否存在问题、代码是否存在 性能方面的问题、内存使用方式是否正确、线程同步方式是否合理、是否存在不合理的资源竞争。
测试人员是质量的把关者,在软件性能生命周期中占据至关重要的位置,软件性能测试工程师要对性能问题进行监控、分析及模拟实际使用过程中所出现的性能问题。还要跟各个角色做好沟通工作,对测试出的各种性能问题,要提供充分有力的数据,为后续的分析和定位性能问题、性能优化工作做好充分准备。
在软件开发前期的需求分析阶段,需求分析师与客户业务人员沟通时,要明确提出各项性能指标,包括系统业务交易的使用频度、系统并发用户数、业务数据量评估等各项指标。然后对系统的响应时间、用户数和资源使用进行分析。
在设计阶段需要根据需求分析及设计规划,进行系统的规模分析和完整的性能分析,预估性能瓶颈点,提出解决方案,最后架构师。程序设计人员等角色进行评审验证并确认,保障性能目标的达成。
在开发阶段,需要根据设计方案,关注性能瓶颈点,进行相应的白盒测试,通过代码分析和评审的手段,确认性能瓶颈并解决,需要不断地分析和总结性能问题和解决方案,形成性能方面的代码编写规范,从而在研发阶段的早期就能确保把软件系统在性能方面的风险降到最低。
性能测试大致可分为单元性能测试、集成性能测试、系统性能测试、多套系统互联接口性能测试等。其中,系统性能测试是最常用、最为测试人员所熟悉的一种性能测试
系统性能测试阶段过程:在系统功能被确认后,模拟真实生产环境进行软件系统的部署(包括硬件设备、操作系统、网络搭建、负载均衡部署、中间件部署、数据库部署等),然后根据前期的性能测试需求分析结果及测试策略定义的方法,模拟一定量的虚拟并发用户数,进行压力测试,同时监控分析系统是否满足预期的性能指标,识别性能可能出现的瓶颈点(应用代码、网络设备、硬件设备、操作系统、中间件配置、数据库等),并进行性能优化处理。调优后再进行复测,确保软件系统最终达到性能要求。
硬件设备、网络、操作系统、并发用户数、系统积累的数据量、中间件等
在一定时间范围内尽可能的寻求软件缺陷,并提交给开发人员进行修复,最终及时给客户提供高质量的软件产品
1、性能需求分析(得到性能指标、性能场景)–>
2、测试环境准备(准备测试数据+搭建独立测试环境+搭建监控平台)–>
3、脚本编写(jmeter、线程组、配置原件、前置处理器、json提取器处理关联、后置处理器、监听器)–>
4、执行性能脚本 (非GUI模式)–>
5、性能分析(判断性能指标是否满足需求) -->
6、性能诊断 -->
7、性能优化 -->
8、性能报告
当接到一个性能需求测试项目,首先要对被测系统进行全方位的性能需求调研工作,分析该系统是什么行业的软件系统,采用哪种体系结构进行设计和开发,业务类型主要是交易业务还是查询业务,采用哪种开发规范,客户端与系统服务器交互是采用何种通信协议,业务逻辑层的应用是采用哪种类型的中间件来处理业务,数据库是哪种数据库,用什么类型的机器,被测系统的各项性能要求和性能指标等。这些都是性能测试前期需要调研了解清楚的
应用配置需求:应用的整体框架、涉及的第三方组件,应用层与数据库层的接口,使用了什么数据库等-
系统配置需求:用户客户端配置、客户端与服务器的网络配置、应用服务器或数据库服务器的配置、操作系统等。
预期在上线系统服务器资源使用情况、吞吐量、软件运行情况等。
系统架构、系统的技术实现、与其他系统接口关系及其技术实现、本系统测试数据及其相关系统测试数据的关系
用户使用情况需求:例如用户分布情况,哪些模块用户使用比较频繁,用户操作的数据有哪些特点等。这些需求需要具体细分到系统的功能模块、功能点这个层面
请求响应时间分布、请求的准确率等
1. 响应时间
响应时间=“客户端呈现数据时间‘’+网络传输时间+系统响应时间
响应时间受网络带宽、用户数、提交事务请求数和事务类型等的影响。
2. 并发用户数
指多个用户同时进行某一个业务交易的动作行为
3. 吞吐量
指单位时间内系统处理的客户请求数量。吞吐量是用来测量系统完成的工作量。
4. TPS(Transaction Second)
即每秒系统能够处理的交易或事务数量。它是衡量系统处理能力的重要指标。
5. 点击率
点击率即每秒用户向服务器提交的HTTP请求数。这个指标是Web应用特有的一个指标。
调查表明: