性能测试目的
1 什么是性能测试?
性能测试是用性能测试工具模拟各种正常、峰值和异常负载情况,测试系统的各项性能指标。
负载测试和压力测试都是性能测试,可以组合使用。通过负载测试,确定各种工作负载下的系统性能,目标是测试负载逐渐增加时系统各项性能指标的变化。压力测试是通过确定系统的瓶颈或不可接受的性能点来获得系统能够提供的最大服务级别的测试。
性能测试分类及术语
1测试分类
负载测试(Load Testing):
负载测试是指在一定的软件、硬件和网络环境下运行一项或多项服务,在不同的虚拟用户下测试服务器的性能指标是否在用户的要求范围内,从而确定系统能够承受的最大用户数和有效用户数、不同用户下的系统响应时间以及服务器的资源利用率。
压力测试(Stress Testing):
压力测试是指在一定的软件、硬件和网络环境下,模拟大量虚拟用户对服务器进行负载测试,即服务器资源处于极限状态,长时间连续运行,测试服务器在高负载下是否能够稳定工作。与负载测试获得的峰值性能数据不同,压力测试强调极端情况下系统的稳定性,此时处理能力不再重要。
2专业术语
场景(Scenario):
也就是场景测试场景。在LoadRunner的控制器组件中,您可以设计和执行用例场景。设置场景的步骤主要包括:在Controller中选择虚拟用户脚本、设置虚拟用户数量、配置虚拟用户在运行时的行为、选择一个Load Generator、设置执行时间等。
负载发生器(Load Generator):
用于产生压力的机器由控制器控制,可以使用户脚本在不同的主机上执行。在性能测试中,控制器通常控制多个负载发生器来给被测系统加压。
虚拟用户(Virtual User/Vuser):
与现实中的真实用户相对应,LoadRunner模拟的用户称为虚拟用户。性能测试模拟多个用户的动作,可以理解为:这些虚拟用户在运行脚本,模拟多个真实用户的行为。
虚拟用户脚本(Vuser script):
通过Vuser Generator记录或开发的脚本。这些脚本用于模拟用户的行为。
事务(Transaction):
测试人员可以将一个或多个操作步骤定义为一个事务,可以通俗地理解为“一系列人为定义的请求(一个或多个请求)”。在程序上,事务被表示为由开始标记和结束标记界定的代码块。Loadrunner根据事务的开始和结束标记计算事务响应时间和成功/失败的事务数量。
LoadRunner三大组件
1Loadrunner安装
Loadrunner安装破解可以要求大家自己解决,搜索可以解决任何问题!
2Loadrunner组成
VuGen(虚拟用户生成器):用于记录系统性能测试脚本或手动创建和编写性能测试脚本。
控制器:用于组织、驱动、管理和监控负载测试。
分析:用于查看、分析和比较绩效结果。
3性能测试工作流程
[制定测试计划]=[创建测试脚本]=[设计测试场景]=[执行测试场景]
=【分析测试结果】=【系统性能调整】
制定测试计划:确定测试需求,如并发用户数、典型业务场景流程等;测试计划等。
创建Vuser脚本:使用虚拟用户生成器记录并手动编写测试。
试脚本。创建测试脚本
- 1 录制测试脚本
- 3 脚本参数化
- 4 关联变量
例如:”token”:”
1JYPO_yuDuqlSa5Gd9gnUBm4ShhmEKYSCohcnc6sNNw”获取token值
- 5 检查点设置
设置场景运行脚本
- 1 运行测试场景
Controller控制台场景执行图,各部分图数展示:
分析测试结果
- 1 性能指标
TPS:Transaction per second 指应用系统每秒钟处理完成的交易数量,是估算应用系统性能的重要依据。一般而言,评价系统性能均以每秒完成的技术交易的数量来衡量。系统整体处理能力取决于处理能力最低模块的TPS值。
HPS:Hit per second 每秒点击次数指一秒钟的时间内用户对web页面的链接、提交按钮等点击总和。HPS一般与 TPS成正比关系,是B/S系统中非常重要的性能指标之一。
事务响应时间:Transaction Response Time 指脚本中开始到结束的脚本测试过程中的响应时间。
资源利用率:资源利用率是指系统在负载运行期间,数据库服务器、应用服务器、web服务器的CPU、内存、硬盘、外置存储,网络带宽的使用率。
- 2 结果分析
通过执行场景得到结果的相关数据:TPS、响应时间、CPU、IO等。根据性能测试方案中提到的性能指标,确认结果是否符合要求。不符合则需要找到性能瓶颈并优化。
- 配置项检查:中间件活跃线程数、JVM相关内存分配、数据库连接池等
- 硬件资源:增加CPU、内存等硬件资源(资源不够情况下)以及增加服务器数量
- SQL语句以及代码分析:通过分析SQL和代码,找出逻辑复杂执行效率低的SQL或代码并修改。
- 系统架构分析:风险较大。(一般由架构师执行)