性能测试】软件测试性能测试流程

2021-03-09 10:28发布

4条回答
水默
2楼 · 2021-03-10 12:03

一、准备工作

在什么阶段开展性能测试工作?一般情况下,是在被测系统已完成功能测试、系统趋于稳定的情况下,才会进行性能测试。

1. 组建测试团队

根据被测系统的实际情况,组建一个性能测试团队,团队成员包括:开发人员、运维人员、DBA和测试人员等。

2. 性能需求调研

性能需求调研工作一般是有性能测试人员负责,产品经理、开发人员、运维人员配合完成。

调研系统线上环境的性能需求,包括性能需求、可靠性需求、可维护性需求等。

调研系统相关信息,如硬件参数配置、系统架构与部署方式等。

调研业务场景信息,如关键业务逻辑与处理流程、交易列表、交易量信息、业务分布规律等。

3. 工具的选择

综合系统设计、工具成本、测试团队的技能来考虑,选择合适的测试工具。

压测工具:JMeter、Loadrunner、Locust等等。

监控工具:nmon、lepus、jvisualvm、prometheus、grafana等等。

二、性能测试计划

1. 分析性能测试背景

根据对项目背景和业务的了解,确定本次性能测试要解决的问题点。常见的情况有:

对于一个新系统,需要测试系统的承受能力。

对于运行中的系统不能满足实际的需求,需要确定性能瓶颈。

增加了新的业务,需要重新评估系统的承受能力。

系统架构进行了调整,需要重新评估系统的承受能力。

2. 分析用户场景

根据对系统业务、用户活跃时间、访问频率、场景交互等各方面的分析,整理业务场景,为测试脚本开发提供依据。

3. 确定性能目标

针对具体的业务功能点,制定期望的性能目标。其中需要和其他业务部门进行沟通协商,以及结合当前系统的响应时间等数据,确定最终我们需要达到的响应时间和系统资源使用率等目标。

4. 制定性能测试实施计划

根据项目组的时间安排,计划本次性能测试的起止时间、参与人员、产出物等等。

三、性能测试设计

1. 测试环境设计

不同的软件和硬件配置会制约系统的整体性能,所以需要部署多个不同的测试环境,在不同的硬件配置上检查应用系统的性能,并对不同配置下系统的测试结果进行分析,得出最优结果。需要重点关注有数据库服务器、应用服务器、软件运行环境。

2. 测试场景设计

根据被测系统的业务特性,并通过和业务部门沟通以及以往用户操作习惯,确定用户操作习惯模式,以及不同的场景用户数量,操作次数,确定测试指标,以及性能监控等。

3. 测试用例设计

根据设计的测试场景,编写测试用例。用例的核心内容包括:用例编号、用例标题、前置条件、操作步骤、测试数据、预期结果、实际结果等等。

4. 编写测试脚本

根据测试用例和选择的工具,准备测试数据,编写测试脚本。

四、性能测试执行

1. 部署测试环境

一般由运维或开发人员进行环境的部署,并进行资源协调。

2. 执行测试脚本

在已部署好的测试环境中,按照业务场景和测试用例,按顺序执行我们已经设计好的测试脚本。

3. 性能监控和记录

根据选择的测试工具和监控工具,在压测的过程中对各项性能指标进行监控和记录。

五、性能测试分析

分析不同的测试环境下,硬件设备的性能指标与预期的性能指标进行对比,确定是否达到了我们需要的结果。针对没有达到预期的指标,分析具体的瓶颈点。

分析不同的测试环境下,分析应用服务器、数据库服务器、中间件等组件的性能指标。

在性能测试执行过程中,可能会发现某些功能上的不足或存在的缺陷,以及需要优化的地方。

六、性能测试调优

确定问题:根据性能分析的结果确定存在的性能问题。

分析问题:根据确定的问题进行具体详细的分析出现问题的原因。

确定调整目标和解决方案。

测试解决方案:对调优后的系统再次进行测试。

分析调优结果:分析调优结果是否到达了预期目标。

七、性能汇总与报告

对性能测试的过程和结果进行汇总

编写性能测试报告


猫的想法不敢猜
3楼 · 2021-03-12 16:22

1.测试确认

理解被测系统、寻找测试点、确认测试范围、测试环境等。一些重要信息需要同PM、需求人员、设计人员讨论确认,如用户最常用哪些功能、最关注哪的性能,程序上哪可能是压力点,哪些数据需要模拟到真实的量级,大体上需要使用哪种测试方法。

2.确定通过标准

性能是好是坏、测试是否通过,必须有明确的标准。这个标准,主要从客户的期望和业务上的需求两方面来考虑,客户的期望一般指页面上的响应时间,业务需求则是系统的处理能力,一般为吞吐量或TPS(每秒完成事务数)。标准制定的不合理,测试结果可能无法反映系统真实的性能表现,或者会让客户无法接受我们认为通过的软件。

至于具体如何去设定,是需要同业务负责人(一般为PM)和技术负责人(一般为设计人员)共同确认的,业务负责人了解用户的实际需求和期望,技术负责人了解具体的实现,可以判断哪些是不可达到的要求。

一旦达成了共识,那么测试就要严格的按照标准去执行。

3.测试设计

主要从上面提到的几个方面进行分析,针对系统的特点设计出合理的测试场景。为了让测试结果更加准确,这里需要很细致的工作。如建立用户模型,只有知道真实的用户是如何对系统产生压力,才可以设计出有代表性的压力测试场景。这就涉及到很多信息,如用户群的分布、各类型用户用到的功能、用户的使用习惯、工作时间段、系统各模块压力分布等等。只有从多方面不断的积累这种数据,才会让压力场景更有意义。最后将设计场景转换成具体的用例。

测试数据的设计也是一个重点且容易出问题的地方。生成测试数据量达到未来预期数量只是最基础的一步,更需要考虑的是数据的分布是否合理,需要仔细的确认程序中使用到的各种查询条件,这些重点列的数值要尽可能的模拟真实的数据分布(数据统计信息、执行计划相关的内容,此处就不细说了),否则测试的结果可能是无效的。

此外,性能测试执行过程中,需要监控收集的各种指标数据,也需要明确下来。

4.测试环境准备

部署测试环境,生成测试数据,环境预调优等等。预调优指根据系统的特点和自己的经验,提前对系统的各个方面做一些优化调整,避免测试执行过程中的无谓返工。比如一个高并发的系统,10000人在线,连接池和线程池的配置还用默认的,显然是会测出问题的。

5.测试执行、监控

准备测试脚本,执行之前设计好的各个用例,监控并收集需要的数据。出现问题时,切记要全面的保留事故现场、或者是能进行分析的数据。比如TOMCAT不再响应,不能只把这个现象记录下来,这对问题的排查定位是没有意义的,要保留所有相关的日志,导出线程转储和堆转储。

6.问题分析定位、调优

发现问题或者性能指标达不到预期,及时的分析定位,处理后重复测试过程。

性能问题通常是相互关联相互影响的,表面上看到的现象很可能不是根本问题,而是另一处出现问题后引起的反应。这就要求监控收集数据时要全面,从多方面多个角度去判断定位。

调优的过程其实也是一种平衡的过程,在系统的多个方面达到一个平衡即可。

7.性能报告

将测试过程中记录的各种数据汇总成报告,将各方面需要的结果清楚的展现出来。

上面所有内容中,如果排除技术上的问题,性能测试中最难做好的,就是用户模型(或者叫系统使用模型)的分析。它直接决定了压力测试场景是否能够有效的模拟真实世界压力,而正是这种对真实压力的模拟,才使性能测试有了更大的意义。可以说,性能测试做到一定程度,差距就体现在了模型建立上。

至于性能问题的分析、定位或者调优,很大程度是一种技术问题,需要多方面的专业知识。数据库、操作系统、网络、开发都是一个合格的性能测试人员需要拥有的技能,只有这样,才能从多角度全方位的去考虑分析问题。

来源于网络仅供参考

李龙鑫
4楼 · 2021-03-16 09:47

性能测试流程


1.明确测试目标,了解性能测试需求;


2.编写性能测试计划;


3.分析性能测试需求;


4.编写性能测试方案,设计测试场景;


5.相关资源准备(人力资源,硬件资源,软件资源);


6.测试程序开发,脚本维护,测试数据准备,测试监控准备;


7.执行性能测试并收集测试结果;


8.分析结果;


9.系统调优及再测试。


征戰撩四汸
5楼 · 2021-10-14 14:33

1.分析性能测试需求

性能测试需求分析是整个性能测试工作的基础,测试需求不明确则这个测试过程都没有意义的。在性能测试需求分析阶段,测试人员需要收集有关项目的各种资料,并与开发人员进行沟通,对整个项目有一定的了解,针对需要性能测试的部分进行分析,确定测试的目标。例如客户要求软件产品的查询功能响应时间不超过2s,则需要明确多少用户量情况下,响应时间不超过2s。对于刚上线的产品,用户量不多,但几年之后可能用户量会剧增,那么在性能测试时是否要测试产品的高并发访问,以及高并发访问下的响应时间。对于这些复杂的情况,性能测试人员必须要清楚客户的真实需求,消除不明确因素,做到更专业。

对于性能测试来说,测试需求分析是一个比较复杂的过程,不仅要求测试人员有深厚的理论基础(熟悉专业术语、专业指标等),还要求测试人员具备丰富的实践经验,如熟悉场景模拟、工具使用等。

2.制订性能测试性能计划

性能测试计划是性能测试工作中的重中之重,整个性能测试的执行都要按照测试计划进

在性能测试计划中,核心内容主要包括以下几个方面

(1)确定测试环境:包括物理环境、生产环境、测试团队可利用的工具和资源等

(2)确定性能验收标准:确定响应时间、吞吐量和系统资源(CPU、内存等)利用总目标和限制。

(3)设计测试场景:对产品业务、用户使用场景进行分析,设计符合用户使用习惯的场景整理出一个业务场景表,为编写测试脚本提供依据

(4)准备测试数据:性能测试是模拟现实的使用场景,例如模拟用户高并发,则需要准用户数量、工作时间、测试时长等数据。

3.设计性能测试用例

性能测试用例是根据测试场景为测试准备数据,例如模拟用户高并发,可以分别设计100用户并发数量、1000用户并发数量等,此外还要考虑用户活跃时间、访问频率、场景交互等各种情况。测试人员可以根据测试计划中的业务场景表设计出足够的测试用例以达到最大的测试覆盖。

4.编写性能测试脚本

测试用例编写完成之后就可以编写测试脚本了,测试脚本是虚拟用户具体要执行的操作步骤,使用脚本执行性能测试免去了手动执行测试的麻烦,并且降低了手动执行的错误率。在编写测试脚本时,要注意以下几个事项。

(1)正确选择协议,脚本的协议要与被测软件的协议保持一致,否则脚本不能正确录制与执行。

(2)性能测试工具一般可以自动生成测试脚本,测试人员也可以手动编写测试脚本,而且测试脚本可以使用多种语言编写,如Java、 Python、 JavaScript等,具体可根据工具的支持情况和测试人员熟悉程度选取脚本语言。

(3)编写测试脚本时,要遵循代码编写规范,保证代码的质量。另外,有很多软件在性能测试上有很多类似的工作,因此脚本复用的情况也很多,测试人员最好做好脚本的维护管理工作。

5.测试执行及监控

在这个阶段,测试人员按照测试计划执行测试用例,并对测试过程进行严密监控,记录各项数据的变化。在性能测试执行过程中,测试人员的关注点主要有以下几个。

(1)性能指标:本次性能测试要测试的性能指标的变化,如响应时间、吞吐量、并发用户数量等

(2)资源占用与释放情况:性能测试执行时,CPU、内存、磁盘、网络等使用情况。性能测试停止后,各项资源是否能正常释放以供后续业务使用

(3)警告信息:一般软件系统在出现问题时会发出警告信息,当有警告信息时,测试人员要及时查看。

(4)日志检査:进行性能测试时要经常分析系统日志,包括操作系统、数据库等日志。

在测试过程中,如果遇到与预期结果不符合的情况,测试人员要调整系统配置或修改程序代码来定位问题。

性能测试监控对性能测试结果分析、对软件的缺陷分析都起着非常重要的作用。由于性能测试执行过程需要监控的数据复杂多变,它要求测试人员对监控的数据指标有非常清楚的认识,同时还要求测试人员对性能测试工具非常熟悉。作为性能测试人员,应该不断努力深入学习,不断积累知识经验,才能做得更好。

6.运行结果分析

性能测试完成之后,测试人员需要收集整理测试数据并对数据进行分析,将测试数据与客户要求的性能指标进行对比,若不满足客户的性能要求,需要进行性能调优然后重新测试直到产品性能满足客户需求。

7.提交性能测试报告

性能测试完成之后需要编写性能测试报告,阐述性能测试的目标、性能测试环境、性能测试用例与脚本使用情况、性能测试结果及性能测试过程中遇到的问题和解决办法等。软件产品不会只进行一次性能测试,因此性能测试报告需要备案保存,作为下次性能测试的参考。


相关问题推荐

  • 回答 9

    在测试前,应该对测试结果有一个初步的估计。比如,性能(IO/CPU)应该是提升,还是降低,大概幅度会有多少。这样当测试结果与预估偏差极远时,很可能测试的过程或者方法是有问题的。1) 如果是已有模块,可以参考改模块历史的测试数据。看变化是否合理。2)...

  • 回答 17
    已采纳

    响应时间、并发用户数、TPS、吞吐量、CPU利用率、内存使用率、在线并发用户数等

  • 回答 20
    已采纳

    性能测试是基于功能、接口完整的情况下,对服务端进行压力测试、负载测试、疲劳测试、并发测试,来发现性能瓶颈。一、负载测试。负载测试的目的主要是为了测试软件系统是否达到需求文档设计的目标;例如一款软件在一定时期内,最大支持多少并发用户数,软件请...

  • 回答 7
    已采纳

    测试模型V模型测试阶段:单元测试集成测试系统测试瀑布模型瀑布模型(Waterfall Model) 是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了...

  • 回答 2

    性能测试针对场景来讲的,在不同的场景,得出性能指标值。这些场景是真实环境有可能出现的。常见场景——压力测试,是否能长期提供服务

  • 回答 4

    上面看,运行结果没有任何提示,也不知道运行到什么程度,相当不友好,那我们来美化一下吧!等等!这是个死循环,通过脚本运行自己,所以会永远运行下去。我的天,幸好发现得早。现在 更换authTest.sh,原因是这个是要运行eaidkAuth文件的,因此需要更改,否...

  • 回答 4

    对于接口测试,首先测试人员要懂代码,你只需要知道接口的作用是什么就可以了,其次,自己去读开发的代码。然后,根据该接口功能及代码写测试用例:根据该接口参数,构造不同的用例,测试接口在参数合法及非法情况下能否达到预期效果,根据该接口中的逻辑,测...

  • 回答 8

    越老越吃香,可以干到退休

  • 回答 2

    一、准备工作1、系统基础功能验证性能测试在什么阶段适合实施?切入点很重要!一般而言,只有在系统基础功能测试验证完成、系统趋于稳定的情况下,才会进行性能测试,否则性能测试是无意义的。2、测试团队组建根据该项目的具体情况,组建一个几人的性能测试te...

  • 回答 3

    Testing script(测试脚本),一般指的是一个特定测试的一系列指令,这些指令可以被自动化测试工具执行。 为了提高测试脚本的可维护性和可复用性,必须在执行测试脚本之前对它们进行构建。或许会发现这样的情况,即有的操作将出现在几个测试过程中。因此,应有...

  • 回答 3

    1、负载测试;通过自动化测试工具模拟程序或者软件系统在超强负荷条件下,观察系统各项性能指标的变化情况,一般与压力测试共同进行。2、强度测试;指系统在资源条件很差工作环境下的运行情况,如人为限制网络带宽,内存等。3、容量测试;一般指...

  • 回答 4

    吞吐量指在一次性能测试过程中网络上传输的数据量的总和。对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,在容量规划的测试中,吞吐量是一个重点关注的指标,因为它能够说明系统级别的负载能力,另外,在性能调优过程中,吞吐量指标也有重要的价值...

  • 回答 3

    当前业界常见的服务器性能指标有:TPC-CTPC-ETPC-HSPECjbb2005SPECjEnterprise2010SPECint2006 及 SPECint_rate_2006SPECfp2006 及 SPECfp_rate_2006SAP SD 2-TierLINPACKRPE2一、TPC (Transaction Processing Performance Council) 即联机交......

  • 回答 5

    在每种不同的系统架构的实施中,开发人员可能选择不bai同的实现方式,造成实际情况纷繁复杂。我们不可能对每种技术都详细解说,这里只是介绍一种方法提供给你如何选择测试策略,从而帮助分析软件不同部分的性能指标,进而分析出整体架构的性能指标和性能瓶颈...

  • 回答 6

    一、B/S架构需要关注WEB服务器的性能指标Avg Rps: 平均每秒响应的次数=总请求时间/秒数Avg time to last byte per terstion:平均每秒业务脚本的迭代次数Successful Rounds:成功的请求Failed Rounds:失败的请求Successful Hits:成功的单击次数Failed Hits:失败...

没有解决我的问题,去提问