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