性能测试目的
- 1 什么是性能测试?
性能测试是通过性能的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
性能测试分类及术语
- 1 测试分类
- 负载测试(Load Testing):
负载测试是指在一定的软件、硬件及网络环境下,运行一种或多种业务,在不同虚拟用户数量的情况下,测试服务器的性能指标是否在用户的要求范围内,以此确定系统所能承载的最大用户数、最大有效用户数,以及不同用户数下的系统响应时间及服务器的资源利用率。
- 压力测试(Stress Testing):
压力测试是指在一定的软件、硬件及网络环境下,模拟大量的虚拟用户向服务器产生负载,是服务器资源处于极限状态下并长时间连续运行,以测试服务器在高负载情况下是否能够稳定工作。与负载测试获得峰值性能数据不同,压力测试强调在极端情况下系统的稳定性,此时处理能力已经不重要了。
- 2 专业术语
- 场景(Scenario):
场景即测试场景。在LoadRunner的Controller部件中,可以设计与执行用例的场景,设置场景的步骤主要包括:在Controller中选择虚拟用户脚本、设置虚拟用户数量、配置虚拟用户运行时的行为、选择负载发生器(Load Generator)、设置执行时间等。
- 负载发生器(Load Generator):
用来产生压力的机器,受Controller控制,可以使用户脚本在不同的主机上执行。在性能测试工作中,通常由一个Controller控制多个Load Generator以对被测试系统进行加压。
- 虚拟用户(Virtual User/Vuser):
对应于现实中的真实用户,使用LoadRunner模拟的用户称为虚拟用户。性能测试模拟多个用户操作可以理解为:这些虚拟用户在跑脚本,以模拟多个真正用户的行为。
- 虚拟用户脚本(Vuser script):
通过Vuser Generator录制或开发的脚本。这些脚本用来模拟用户的行为。
- 事务(Transaction):
测试人员可以将一个或多个操作步骤定义为一个事务,可以通俗的理解事务为"人为定义的一系列请求(请求可以是一个或者多个)"。在程序上,事务表现为被开始标记和结束标记圈定的一段代码区块。Loadrunner根据事务的开头和结尾标记,计算事务响应时间、成功/失败的事务数。
LoadRunner三大组件
- 1 Loadrunner安装
Loadrunner安装破解可以需要大家去自行解决,搜索可以解决任何问题!
- 2 Loadrunner组成
- VuGen(虚拟用户生成器):用于录制系统性能测试脚本或者手动创建编写性能测试脚本。
- Controller (控制器):用于组织、驱动、管理和监控负载测试。
- Analysis (分析器):用于查看、分析和比较性能结果。
- 3 性能测试工作流程
【制定测试计划】=>【创建测试脚本】=>【设计测试场景】=>【执行测试场景】
=>【分析测试结果】=>【系统性能调优】
- 制定测试计划方案:确定测试要求,如并发用户数量、典型业务场景流程;测试计划等。
- 创建Vuser脚本:使用Virtual User Generator录制、手动编写测试脚本。
- 设计测试场景:使用LoadRunner Controller 设置测试场景。
- 执行场景:使用LoadRunner Controller 驱动、管理并监控场景的运行。
- 分析测试结果:使用LoadRunner Analysis 生成报告和图表并评估性能。
创建测试脚本
- 1 录制测试脚本
- 2 测试脚本调试
- 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或代码并修改。
- 系统架构分析:风险较大。(一般由架构师执行)