性能测试是通过性能的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
术语:
场景(Scenario):场景即测试场景。在LoadRunner的Controller部件中,可以设计与执行用例的场景,设置场景的步骤主要包括:在Controller中选择虚拟用户脚本、设置虚拟用户数量、配置虚拟用户运行时的行为、选择负载发生器(Load Generator)、设置执行时间等。
负载发生器(Load Generator):用来产生压力的机器,受Controller控制,可以使用户脚本在不同的主机上执行。在性能测试工作中,通常由一个Controller控制多个Load Generator以对被测试系统进行加压。
虚拟用户(Virtual User/Vuser):对应于现实中的真实用户,使用LoadRunner模拟的用户称为虚拟用户。性能测试模拟多个用户操作可以理解为:这些虚拟用户在跑脚本,以模拟多个真正用户的行为。
虚拟用户脚本(Vuser script):通过Vuser Generator录制或开发的脚本。这些脚本用来模拟用户的行为。
事务(Transaction):测试人员可以将一个或多个操作步骤定义为一个事务,可以通俗的理解事务为“人为定义的一系列请求(请求可以是一个或者多个)”。在程序上,事务表现为被开始标记和结束标记圈定的一段代码区块。Loadrunner根据事务的开头和结尾标记,计算事务响应时间、成功/失败的事务数。
1、性能测试需求分析阶段
根据用户使用习惯和实际业务的性能需求,生成性能测试需求调查表
根据性能测试需求及系统重要业务调研,选取典型业务
了解业务模型及业务架构
2、性能测试设计阶段
编写性能测试用例
结合性能测试用例录制/修改/完善测试执行脚本
结合用户应用场景设计性能测试执行场景
3、性能测试执行阶段
利用LoadRunner性能测试工具中的Controller应用,按照并发用户数执行场景,并保存测试结果(Jmeter同理)
利用LoadRunner性能测试工具监控被测试环境下的服务器CPU,内存,磁盘等系统资源的使用情况
在需要的情况下利用第三方监控工具监控被测试系统的资源使用情况
在对于可靠性测试,长时间执行测试,查看系统是否会出现内存泄漏,宕机等情况
4、性能测试分析阶段
利用LoadRunner性能测试工具中的Analysis应用,分析场景执行后的结果
在需要的情况下借助其他辅助工具对系统进行监控,如Linux系统top等命令或其他辅助工具,进一步分析系统资源使用情况
5、性能测试调优阶段
通过与以前的测试结果进行对比分析,从而确定经过调整以后系统的性能是否有提升。
在进行性能调整的时候,最好一次只调整一项内容或者一类内容,避免一次调整多项而引起性能提高,却不知道是由于调整哪项关键指标而改善性能的。通常,我们是按照由易到难的顺序
系统性能进行调优。系统调优由易到难的先后顺序如下:
硬件问题
网络问题
应用服务器,数据库等配置信息
源代码,数据库脚本问题
系统架构问题根据性能测试执行结果,分析结果是否满足用户需求并生成性能测试报告
1、系统待测版本定版
2、测试环境部署完毕
包括:
系统安装并调试成功,并经过相应优化,初始数据量满足测试要求
应用软件安装成功,待测试版本已正确部署
测试客户端机器到位,系统软件安装完毕
网络配置正确,连接通畅,可以满足压力测试需求
3、测试方案审核
批准完毕,项目组签字确认。
1、暂停准则
测试中发现问题,需求对系统进行代码修改,调优或需要更换,调整硬件资源(CPU、内存等)
测试环境受到干扰,比如服务器被临时征用,或服务器的其他使用会对测试结果造成干扰
2、再启动准则
测试中发现的软、硬件问题得以解决
测试环境恢复正常
完成测试计划中规定的测试内容和轮次。
已达到性能测试计划完成时间,但因非测试方原因未完成测试场景的执行,客户方决定不再顺延该阶段的测试。
1、测试目的
主要目的是检查系统处于压力情况下时应用系统的表现,重点在于系统有无出错信息产生,考察系统应用的响应时间、TPS、资源状况等。
针对系统可靠性进行测试,主要检查系统在高负荷压力的情况下是否会出现如宕机、应用异常终止、资源竞争异常、资源死锁等问题。
通过压力测试,获得系统可能存在的性能瓶颈、发现、定位系统中可能存在的性能缺陷。
2、测试准备
功能测试已经结束
性能测试环境已经准备完毕
已将模拟数据提前准备完毕(被测试系统需要的测试数据)
相关技术支持人员的支持
3、测试方法
利用LoadRunner性能测试工具中的Virtual User Generator应用,录制性能测试执行脚本。
对性能测试脚本进行修改、调试、完善并保存测试脚本。利用LoadRunner性能测试工具中的Controller应用,按性能测试用例执行设计的场景并保存场景。
利用被测服务器自带监控工具和LoadRunner监控被测环境下服务器的CPU、网络流量等系统资源的使用情况。利用LoadRunner性能测试工具中的Analysis应用,分析场景执行后的结果。
4、测试分析范围
针对“测试业务及性能需求”的内容,对系统响应时间、系统业务处理容量(TPS)、被测试环境下服务器资源使用情况(如CPU、内存、磁盘等)进行监控。
任何人都不可能一帆风顺地成功,也没有任何事情,是不需要付出努力就能完成的!当我们遇到挫折时,当我们因为各种原因而后退时,我们就必须重新认识自我。只有在正确认识自我的基础上,我们才能重新找回自己的航行坐标,朝胜利的方向前进!
世之奇伟、瑰怪、非常之观,常在于险远,而人之所罕至焉,故非有志者不能至也。
生活总是让我们遍体鳞伤,但到后来,那些受伤的地方一定会变成我们最强壮的地方。
作者:测试内卷王
原文链接:https://blog.csdn.net/NanFanzzZ/article/details/126690833