loadrunner-介绍

loadrunner的简介

LoadRunner,是一种预测系统行为和性能的负载测试工具。通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。

loadrunner的录制原理

自动监控指定URL或者应用程序所发出的请求级服务器返回响应,它作为一个第三方监控客户端与服务端的所有对话,然后把这些对话记录下来,生成脚本,再次运行时模拟客户端发出的请求,捕获服务器端的响应

loadrunner的默认支持的开发语言:c
loadrunner的三大组件
virtual user generator(虚拟用户脚本生成器)
controller (场景控制器)
analysis(结果分析器)

loadrunner的工作原理

loadrunner由四大组件组成:vugen、控制器、负载发生器、分析器

1、VuGen发生器:捕获用户的业务流,并最终将其录制成一个脚本

  • 1、选择相应的一种协议
  • 2、模拟用户业务操作,生成一个脚本
  • 3、优化脚本和设置Run-Time-Setting
  • 4、验证脚本的正确性

2、控制器(controller)

  • 1、设计场景:包括手动场景设计和目标场景设计两种方式
  • 2、场景监控,可以实时监控脚本的运行的情况,可以通过添加计数器来监控Windows资源、应用服务器和数据库使用情况
    场景设计的目的是设计出一个最接近用户实际使用的场景,场景设计越接近用户,使用的实际情况,测试出来的数据就越接近真实值。

3、负载发生器(load generators)
运行场景,模拟用户对服务器提交请求,通常,在性能测试过通常会将控制器和负载发生器分开;当使用多台负载发生器时,一定要保证负载均衡(指在进行性能测试的过程总,保证每台负载发生器均匀地对服务器进行施压)

4、分析器(analysis)
主要用于对测试结果进行分析

loadrunner常用术语

1、场景:场景即测试场景。
2、负载发生器:用来产生压力的机器,受controller控制,可以使用户脚本载不同的主机上执行。
3、虚拟用户:对应现实中的真实用户,使用loadrunner模拟的用户成为虚拟用户。
4、虚拟用户脚本:通过vuser generator录制和开发的脚本。
5、事务:测试人员可以讲一个或多个操作定义为一个事务,可以通俗的理解事务为“人为定义的一系列请求(请求可以是一个或者多个)”。loadrunner根据事务的开头和结尾标记,计算事务响应时间、成功/失败的事务数。lr_start_transaction(“login”) > lr_end_transaction(“login”,LR_AUTO);
6、思考时间:即请求与请求之间的停顿时间。实际中,用户在进行一个操作后往往会停顿然后在进行下一个操作,为了更真实的模拟这种用户行为而进行该概念。在虚拟用户脚本中用函数lr_think_time()来模拟用户处理过程,执行该函数用户线程会按照响应的time值进行等待。
7、集合点:设集合点是为了更好模拟并发操作,设了集合点后,运行过程中多个用户可以在集合点等待到一定条件后在一起发后续的请求。集合点在虚拟用户脚本中对应的函数lr_rendezvous()
8、负载测试:通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试
9、压力测试:通过逐步增加系统负载,测试系统性能变化,并最终确定在什么负载条件下性能处于失效状态,并以此来获得系统能够提供的最大服务级别的测试
10、配置测试:通过对被测系统软硬环境的调整,了解各种不同环境对系统性能的影响程度,从而找到系统各项资源的最优分配原则。(该方法在每执行测试 时更换,扩充硬件设备,调整网络环境,从而确定各个因素对系统性能的隐形,找出影响最大的因素)
11、可靠性测试(稳定性测试):通过给系统加载在一定的业务压力,(例如资源在70%~90%d 使用率)的情况下,在压力测试基础上让系统持续运行一段时间,测试系统在这种条件下是否能够稳定运行。

loadrunner测试流程

规划测试(计划、用例…)=> 创建VU脚本 => 定义场景 => 运行场景 => 分析结果

loadrunner之协议分析器

当你录制脚本的时候都需要选择正确的协议,如果选择错误可能会录制不到脚本或者录制的脚本数量很少,loadrunner有自带的一个协议分析器,可以获取协议信息。
以loadrunner的飞机订票系统为例:
先打开服务
在这里插入图片描述
在打开loadrunner准备录制脚本分析协议
在这里插入图片描述
由图可以看到主要用到了web(http/html)协议
在这里插入图片描述

LR函数

lr_start_transaction 为性能分析标记事务的开始
lr_end_transaction 为性能分析标记事务的结束
lr_rendezvous 在 Vuser 脚本中设置集合点
lr_think_time 暂停 Vuser 脚本中命令之间的执行
lr_end_sub_transaction 标记子事务的结束以便进行性能分析
lr_end_transaction 标记 LoadRunner 事务的结束
Lr_end_transaction(“trans1”,Lr_auto);
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 标记事务的开始
Lr_start_transaction(“trans1”);
lr_start_transaction_instance 启动嵌套事务(由它的父事务的句柄指定)
lr_stop_transaction 停止事务数据的收集
lr_stop_transaction_instance 停止事务(由它的句柄指定)数据的收集
lr_wasted_time 消除所有打开事务浪费的时间
lr_get_attrib_double 检索脚本命令行中使用的 double 类型变量
lr_get_attrib_long 检索脚本命令行中使用的 long 类型变量
lr_get_attrib_string 检索脚本命令行中使用的字符串
lr_user_data_point 记录用户定义的数据示例

脚本

lr_whoami 将有关 Vuser 脚本的信息返回给 Vuser 脚本 [1]
lr_get_host_name 返回执行 Vuser 脚本的主机名
lr_get_master_host_name 返回运行 LoadRunner Controller 的计算机名
lr_eval_string 用参数的当前值替换参数
lr_save_string 将以 NULL 结尾的字符串保存到参数中
lr_save_var 将变长字符串保存到参数中
lr_save_datetime 将当前日期和时间保存到参数中
lr _advance_param 前进到下一个可用参数
lr _decrypt 解密已编码的字符串
lr_eval_string_ext 检索指向包含参数数据的缓冲区的指针
lr_eval_string_ext_free 释放由 lr_eval_string_ext 分配的指针
lr_save_searched_string 在缓冲区中搜索字符串实例,并相对于该字符串实例,将该缓冲区的一部分保存到参数中
lr_debug_message 将调试信息发送到输出窗口
lr_error_message 将错误消息发送到输出窗口
lr_get_debug_message 检索当前消息类
lr_log_message 将消息发送到日志文件
lr_output_message 将消息发送到输出窗口
lr_set_debug_message 设置调试消息类
lr_vuser_status_message 生成带格式的输出,并将其写到 ControllerVuser 状态区域
lr_message 将消息发送到 Vuser 日志和输出窗口
lr_load_dll 加载外部 DLL
lr_peek_events 指明可以暂停 Vuser 脚本执行的位置
lr_think_time 暂停脚本的执行,以模拟思考时间(实际用户在操作之间暂停以进行思考的时间)
lr_continue_on_error 指定处理错误的方法
lr_continue_on_error (0);lr_continue_on_error ⑴;
lr_rendezvous 在 Vuser 脚本中设置集合点
TE_wait_cursor 等待光标出现在终端窗口的指定位置
TE_wait_silent 等待客户端应用程序在指定秒数内处于静默状态
TE_wait_sync 等待系统从 X-SYSTEM 或输入禁止模式返回
TE_wait_text 等待字符串出现在指定位置
TE_wait_sync_transaction 记录系统在最近的 X SYSTEM 模式下保持的时间

WEB函数列表:

web_custom_request 允许您使用 HTTP 支持的任何方法来创建自定义 HTTP 请求
web_image 在定义的图像上模拟鼠标单击
web_link 在定义的文本链接上模拟鼠标单击
web_submit_data 执行“无条件”或“无上下文”的表单
web_submit_form 模拟表单的提交
web_url 加载由“URL”属性指定的 URL
web_set_certificate 使 Vuser 使用在 Internet Explorer 注册表中列出的特定证书
web_set_certificate_ex 指定证书和密钥文件的位置和格式信息
web_set_user 指定 Web 服务器的登录字符串和密码,用于 Web 服务器上已验证用户身份的区域
web_cache_cleanup 清除缓存模拟程序的内容
web_find 在 HTML 页内搜索指定的文本字符串
web_global_verification 在所有后面的 HTTP 请求中搜索文本字符串
web_image_check 验证指定的图像是否存在于 HTML页内
web_reg_find 在后面的 HTTP 请求中注册对 HTML源或原始缓冲区中文本字符串的搜索
web_disable_keep_alive 禁用 Keep-Alive HTTP 连接
web_enable_keep_alive 启用 Keep-Alive HTTP 连接
web_set_connections_limit 设置 Vuser 在运行脚本时可以同时打开连接的最大数目
web_concurrent_end 标记并发组的结束
web_concurrent_start 标记并发组的开始
web_add_cookie 添加新的 Cookie 或修改现有的 Cookie
web_cleanup_cookies 删除当前由 Vuser 存储的所有 Cookie
web_remove_cookie 删除指定的 Cookie
web_create_html_param 将 HTML 页上的动态信息保存到参数中。(LR 6.5 及更低版本)
web_create_html_param_ex 基于包含在 HTML 页内的动态信息创建参数(使用嵌入边界)(LR 6.5 及更低版本)。
web_reg_save_param 基于包含在 HTML 页内的动态信息创建参数(不使用嵌入边界)
web_set_max_html_param_len 设置已检索的动态 HTML 信息的最大长度
web_add_filter 设置在下载时包括或排除 URL 的条件
web_add_auto_filter 设置在下载时包括或排除 URL 的条件
web_remove_auto_filter 禁用对下载内容的筛选
web_add_auto_header 向所有后面的 HTTP 请求中添加自定义标头
web_add_header 向下一个 HTTP 请求中添加自定义标头
web_cleanup_auto_headers 停止向后面的 HTTP 请求中添加自定义标头
web_remove_auto_header 停止向后面的 HTTP 请求中添加特定的标头
web_revert_auto_header 停止向后面的 HTTP 请求中添加特定的标头,但是生成隐性标头
web_save_header 将请求和响应标头保存到变量中
web_set_proxy 指定将所有后面的 HTTP 请求定向到指定的代理服务器
web_set_proxy_bypass 指定 Vuser 直接访问(即不通过指定的代理服务器访问)的服务器列表
web_set_proxy_bypass_local 指定 Vuser 对于本地 (Intranet) 地址是否应该避开代理服务器
web_set_secure_proxy 指定将所有后面的 HTTP 请求定向到服务器
web_set_max_retries 设置操作步骤的最大重试次数
web_set_timeout 指定 Vuser 等待执行指定任务的最长时间
web_convert_param 将 HTML 参数转换成 URL 或纯文本
web_get_int_property 返回有关上一个 HTTP 请求的特定信息
web_report_data_point 指定数据点并将其添加到测试结果中
web_set_option 在非 HTML 资源的编码、重定向和下载区域中设置 Web 选项
web_set_sockets_option 设置套接字的选项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值