LoadRunner 脚本语言基础
2013-05-25 23:32
260 查看
LoadRunner 脚本语言基础
1. LoadRunner简介LoadRunner 是Mercury Interactive公司开发的一款成熟的性能测试工具。LoadRunner 的三大模块:Virtual User Generator , Controller , Analysis 。
Virtual User Generator (虚拟用户产生器)实际上是一套开发调试脚本的环境,它的任务是生成编译、解释成功的脚本,供Controller调用。
Controller是整个性能测试的核心,它是一个框架程序,与LoadRunner的各个模块都有交互,可以说Controller是“集大权于一身”,控制着整个性能测试的过程。
Analysis负责在一大堆数据中寻找不同数据之间的关联关系,构建纯属函数,以报表、图示的方式展现给用户。为我们分析系统性能瓶颈提供重要线索。
2. LoadRunner的功能
1)Vuser 提供录制、回放脚本功能
2)Controller 创建性能测试方案(场景)
3)数据驱动(将业务流程和业务数据分离,通过Data Wizard来自动实现其测试数据的参数化)
4)服务器监测(在负载测试过程中,可实时监测应用系统的运行性能)
5)测试结果分析(通过Analysis工具,可以快速查找到性能问题并追溯原由)
3. LoadRunner录制技术
LoadRunner录制协议选择说明:Socket方式是一切应用层协议的基础,Socket脚本是一种通用的方式。对于Vugen不支持的应用层协议,只能通过Socket层次来录制。LoadRunner的Winsock协议可算得上是万能协议,但它的使用概率却可能是LoadRunner协议族中最低的。一方面是loadrunner基本覆盖了所有的主流软件系统网络架构,除非特殊的网络应用,用户一般都能在协议族中找到合适的解决方案;另一方面是,Winsock协议由于其过于低层,决定了它“什么都能干”,但其实是“什么都干不好”的命运。
4. LoadRunner框架函数
a)vuser_init:虚拟用户的初始化函数,如登录操作,分配内存等。
b)Action:虚拟用户要做的业务。用户的业务操作,也就是测试内容的主体。在VU里设置迭代循环时,只有Action会生效,被重复运行,而init和end部分则在脚本的运行过程中只会运行一次。
c)vuser_end:与vuser_init相对应,vuser_end做收尾工作。如果vuser_init是登录,则vuser_end是退出登录;vuser_init如果是申请内存,如用了malloc函数,则vuser_end就是释放内存,使用free函数。
5. LoadRunner常用函数
a) VU通用函数,一般以lr开关,如lr_start_transaction函数。通用VU函数可分为 事务控制函数,命令行分析函数,系统信息函数,字符串函数,日志函数和运行时函数。
i.事务和事务控制函数
lr_end_sub_transaction:标记子事务的结束以便进行性能分析。
lr_end_transaction:标记LoadRunner事务的结束。
lr_end_transaction_instance:标记事务实例的结束以便进行性能分析。
lr_fail_trans_with_error:将打开事务的状态设置为LR_FAIL,并发送错误消息。
lr_get_trans_instance_duration:获取事务实例的持续时间(由它的句柄指定)。
lr_get_trans_instance_wasted_time:获取事务实例浪费的时间(由它的句柄指定)。
lr_get_transaction_duration:获取事务的持续时间(按事务名称)。
lr_get_transaction_think_time:获取事务的思考时间(按事务名称)。
lr_get_transaction_wasted_time:获取事务浪费的时间(按事务名称)。
lr_resume_transaction:继续收集事务数据以便进行性能分析。
lr_resume_transaction_instance:继续收集事务实例数据以便进行性能分析。
lr_set_transaction_instance_status:设置事务实例状态。
lr_set_transaction_status:设置打开事务的状态。
lr_set_transaction_status_by_name:设置事务的状态。
lr_start_sub_transaction:标记子事务的开始。
lr_start_transaction:标记事务的开始。
ls_start_transaction_instance:启动嵌套事务(由它的父事务的句柄指定)。
lr_stop_transaction:停止事务数据的收集。
lr_stop_transaction_instance:停止事务(由它的句柄指定)数据的收集。
lr_wasted_time:消除所有打开事务浪费时间。
ii.命令行分析函数
lr_get_attrib_double:检索脚本命令行中使用的double类型变量。
lr_get_attrib_long:检索命令行中使用的long类型变量。
lr_get_attrib_string:检索命令行中使用的字符串。
iii.系统信息函数
lr_user_date_point:记录用户定义的数据采集点。
lr_whoami:将有关vuser的信息返回给Vuser脚本。
Lr_get_host_name:返回执行Vuser脚本的主机名。
Lr_get_master_host_name:返回运行Controller的计算机名。
iv. 字符串函数
v.消息函数
vi.运行时函数(run-time)
b)协议相关函数,不同类型的vuser的函数一般以一个本协议类型开关。如web(http/html)类型的,web_url,web_list,web_link.
c)语言相关函数。用C编写的标准函数等,都可以加载使用。
6. 编写最佳脚本流程
a) Generate:录制或开发脚本。
b) SUSI(Single User Single Iteration,单用户单循环):运行录制生成的脚本,解决可能存在的关联问题。
c) SUMI(Single User Multiple Iteration,单用户多循环):参数化脚本,在Run-time中设置Iteration,再次运行,验证参数化问题。
d) MUSI(Multi User Single Iteration,多用户单循环):Controller里多用户运行脚本,验证脚本中可能的多线程同步问题。
e) MUMI(Multi User Multi Iteration,多用户多循环):即性能测试开始。
相关文章推荐
- LoadRunner脚本语言基础
- 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情7. 安装 PHP PHP 是用于 web 基础服务的服务器端脚本语言。它也经常被用作通用编程语言。在最小化安装的 CentOS 中安
- 【脚本语言系列】关于Python基础知识容器,你需要知道的事
- 【脚本语言系列】关于Python基础知识设计模式,你需要知道的事
- TCL脚本语言基础
- 【脚本语言系列】关于Python基础知识__slots__,你需要知道的事
- 【Cocos2dx-Lua 脚本开发之二】Lua语言基础
- 基于JS脚本语言的基础语法详解
- Shell脚本语言基础
- vc++访问javascript(2)--IDispatchEx是动态脚本语言的基础
- LoadRunner 脚本语言认识
- shell脚本与C语言数据类型基础知识
- 【脚本语言系列】关于Python基础知识函数缓存,你需要知道的事
- 从游戏脚本语言说起,剖析Mono所搭建的脚本基础
- 【软件性能测试-LoadRunner实战技能 3】== LR所使用的脚本语言初解
- LoadRunner手写脚本基础实战之重定向
- javascript是最常用的脚本语言100多个基础常用JS函数和语法集合大全
- 【脚本语言系列】关于Python基础知识推导式,你需要知道的事
- 【COCOS2DX-LUA 脚本开发之二】LUA语言基础
- Unity 3D开发-C#脚本语言的一些基础用法