LoadRunner 为访问所有 LoadRunner 组件的统一界面。 可在此进入其下三个组件
Virtual user Generator虚拟用户(vuser)脚本
创建不同类型的测试脚本适用于各类系统的模拟报文发送。
Controller控制器
将虚拟用户脚本单用户执行转为用户并发执行,形成负载场景Scenario。用于组织、驱动、管理和监控负载测试。
Analysis 分析器
对测试结果查看、分析,形成压力测试报告。
性能测试需求分析:系统吞吐量目标,机器性能参数,关联系统
性能测试计划:制定测试计划,持续时间
性能测试准备:测试环境准备,测试参数调整
//循环过程
误区:使用系统的全部用户数,用户在线数量
在物理机上使用vuser代替实际用户,可重复、可预测的方式模拟典型用户操作,对系统施加负载
点击新建,选择java vuser。
Ø Vuser_init:业务流程开始前的初始化操作(登录、服务器初始化)
Ø Action:业务流程操作事件
Ø Vuser_end:业务流程结束时执行的操作(退出、注销)
Init和end只能迭代一次,Action可以迭代运行多次
业务有重复要求的,需要区分三类方法;无重复要求可以将其他两方法空着。
可在运行时设置中引入java vuser所需要的java包,并在脚本中import对应java包,在方法中就可以引用相关java包的class
定义:衡量对应事务操作的性能,在操作开始和结束插入的标志。
作用:loadrunner可以记录事务时间,反映的时一个操作过程的响应时间
可以右键选择插入开始/结束事务
定义:思考时间是为了模拟用户操作,设置的模拟等待时间
作用:可以更接近真实用户操作,也可以插入事务中,降低用户并发
使用:
定义:将固定内容转为可变参数
作用:将重复的东西变成不重复的,应用在日期、时间、流水号等
使用:
设置:
ü Date/time 日期时间
ü File 文件
ü Iteration number 迭代数
ü Random number 随机数
ü Unique number 唯一数
ü 顺序(sequential):按参数化的数据顺序,一个一个来
ü 随机(rundom):参数化中的数据,每次随机抽取
ü 唯一(unique):为每个虚拟用户分配一条唯一数据
ü 每次迭代(each iteration):每次迭代时取新值,在脚本迭代时更新
ü 每次出现(each occurrence):每次参数化时取新值,可能前后两次用同一参数,此时取值不一样
ü 只取一次(once):参数化中数据,一条数据只取一次
作用:脚本验证时可以通过日志来了解脚本执行的内容
使用:
ü Enable logging:使用日志
ü Log options:
ü Send messages only when an error occurs:只有当发生错误时才发送日志信息
ü Always send messages:总是发送日志
Standard log 标准日志
Extended log 扩展日志
Parameter substitution 显示参数赋值取值
Data return by server 显示服务器返回的数据
Advance trace 高级的追踪
Number of iterations:设置Action的迭代运行次数
As soon as the previous iteration ends:在前一次迭代结束后直接下一次
After previous iteration ends:在前一次迭代结束后延时多少时间进行下一次 fixed(固定)、random(随机)
At fixed/random intervals every sec:在前一次和下一次之间的时间,包含前一次的执行时间
Error handing 错误处理,按默认即可
Multithreading 进程与线程,按线程运行虚拟用户
Automatic transactions 自动化事务,默认情况下不选择,在脚本中自行定义事务
注意:在controller中一个action和我们自行定义的事务重复出现,将自动化事务中的两个勾勾上后再去掉,重启后解决改问题
Generate:单交易编译运行,编辑验证脚本
SUSI(single user single iteration,单用户单循环):直接编译运行脚本
SUMI(single user multi iteration,单用户多循环):参数化脚本在运行时配置中设置iteration次数,验证参数化情况
MUSI(multi user single iteration,多用户单循环):controller中多用户运行脚本,验证脚本中可能的多线程问题
MUMI(multi user single iteration,多用户多循环):性能测试开始
lr.start_transaction("start");
lr.end_transaction("start",lr.AUTO);
lr.debug_message(0,"start");
lr.error_message("start");
lr.output_message("start");
lr.abort("start");
lr.continue_on_error(1);
lr.exit();
使用controller 将vuser执行脚本从单用户转换为多用户,模拟大量用户操作,对单脚本和多脚本业务操作的组合模拟实际业务操作过程,形成类似于真实环境的负载场景。
场景(scenario)
用来模拟大量用户操作的技术手段,通过配置和执行场景对服务器产生压力,验证系统性能是否达标。
Controller 管理场景包括:设计场景(design)、运行场景(run ,场景监控)。
在vuser tools中选择创建 controller场景
创建场景方式:
Goal oriented scenario目标场景
Manual scenario 手工场景
Load generator 负载生成器
Group name 组名
Result directory 运行结果保存路径
注意:负载生成器生成每个vuser大概花2-3M内存,直接单机测试时,若vuser数量要求较多,对压测机器内存性能要求较高。当内存使用率超过 70%时,该机器就成负载测试瓶颈,影响测试性能。可以使用其他装有LR Agent的机器来生成vuser。
定义:自行设置vuser变化,通过设计用户添加和减少的过程,模拟实际用户请求。
作用:用于定位性能瓶颈,了解系统并发处理能力,在负载测试和压力测试中应用。
添加组、脚本、vuser数
Scenario schedule 场景计划
schedule by
Scenario多个脚本之间按照设定的场景计划来统一运行
Group 多个脚本之间按照独立设置的模式跑,单独设置虚拟用户和运行时间
Run mode
Real world schedule 实际计划,可以多个用户变化过程
Basic schedule 基本计划,只能设置一次运行设置,不能设置用户变化
Global schedule 全局计划
Initialize 初始化设置
Start vusers 运行虚拟用户设置
Duration 运行时间设置
Stop vusers 停止虚拟用户设置
定义:设置一个目标,自动化负载。
目标场景类型:
Virtual users:虚拟用户数量,验证所需支持的用户数
Hits per second:服务请求响应数,验证每秒可处理请求数
Transctions per
second:tps 每秒事务数,验证系统处理操作能力
Transctions
response time:事务响应时间,验证系统压力下所需要的响应时间
Pages per minute:每分钟页面刷新次数,验证系统整理处理能力
适用:验证系统各方面能力是否达标。
定义:负载测试具体目标定义,在运行结束后会与定义的目标值进行比较,SLA状态表示是否符合所定义的服务标准(运行的vuser数,吞吐量,响应时间等)。
监控loadrunner中的场景运行图形来确认系统性能情况,确定是停止或继续场景执行,查看场景中的错误
可以监控每个事务响应时间变化趋势