Loadrunner常用操作
LoadRunner 参数化
为什么需要参数化?
大众理解:为了更加真实的模拟用户操作
底层原理: 1,应用服务,数据库会校验该值的唯一性(unique key)
2,为了避免数据库的查询缓存对性能测试结果的影响
LoadRunner 关联
一、为什么需要做关联?
1,回放的时候业务没有成功
2,服务器返回一个动态变化的值,并且下次请求时需要用到这个动态变化的值
3,提交请求的时候,服务器会校验这些值的合法性;它们之间有依赖关系
二、关联步骤:
1,找到服务器返回的动态变化的值
2,保存为一个参数
3,替换
三、哪些值需要做关联?
1, 服务器返回的动态变化的值,然后提交的时候校验该值的合法性(跟数据不打交道)
A,验证码(图片验证码、手机/短信验证码、邮箱验证码)
图片验证码 关联不到里面的字符串(需要知道字符串从哪个jsp 里取出来的)
手机/短信验证码、邮箱验证码 验证码都是加密以后的
解决方法:1,让开发设置万能验证码;2,去掉验证码(一般不建议)
B,Session ,token
C,时间戳
D,看起来没有任何意义的特殊字符串,还出现在你的请求里并且还不是你自己输入的字符串
2, 跟数据库打交道的(增删改查)
A.Insert 插入的值跟其他数据有关联关系-通过一系列ID 建立这种关系
特征: 自增主键 Xxid int 类型
Insert into 帖子表 values (uid,title,msg,posttime,fid)
Insert into 回帖表 values(tid,uid,msg,posttime,fid)
B.Delete 补全where id 类条件
Delete from table where xxid = ?? and xxid =?? And
In (,,)
Not in (,,)
between < >
C. Update 补全where 后面的 id类条件
Update table set where 同上
D . select 补全where 后面的 id 类条件
select 字段 from 表 where 同上
实操: 淘宝网注册-> 登录-> 绑定收件信息->修改昵称->删除一条收件地址->浏览商品->添加到购物车->支付->查看订单-> 取消订单-> 撤销申请-> 确认收货->评论-> 追加评论
注册:参数化 手机号 (唯一性校验)关联:手机验证,session/token
登录:参数化 手机号(唯一性校验)关联:session /token
绑定收件信息:关联uid
修改昵称: 关联uid
删除一条收件地址:关联uid ,收件信息id
浏览商品:参数化 商品id
添加到购物车:关联uid, 商品id 店铺 id
支付:关联uid ,订单id
查看订单: 关联uid ,订单id
取消订单: 关联uid ,订单id
撤销申请: 关联uid ,id(订单id 或者工单id )
确认收货:关联uid ,订单id
评论:关联uid,订单id ,店铺id,商品id
追加评论:关联uid , 订单id ,评论id
四、关联函数的位置
关联函数放在哪个函数的前面,只会作用于它的下一个请求,所以关联函数的位置很重要
Insert 操作后紧接一条select 操作,将id 查出来以便后续操作--关联参数放在insert 之前
五、关联函数的写法
A,response 右键直接关联 (位置一定对)
B, insert -new step
C,Data returned by server (tree 视图中没有内容的时候)
D, 页面源代码
E,抓包
Fiddler 4 操作
Fiddler hide if url contains :REGEX:\.(js|css|js|png|gif|ico|gif\?.*|css\?.*|js\?.*|png\?.*)$
Any process 点击拖拽到浏览器上,则只记录该浏览器上的操作
脚本精简:跟实现业务无关的请求都可以去掉,但是关联的依赖请求不能去掉
完善脚本
一、插入事务
事务:是一切脚本的基础
是成对出现的,start end 中名字需一模一样
事务需定义准确,不要包含与被测接口无关的请求
事务中不包含集合的、思考时间
为了保持请求的干净及事务响应时间的准确性
二、模拟用户思考时间
Think Time : 等待多长时间再执行下面的请求
底层作用:控制请求的发送频率,以达到控制服务器压力的目的
能影响事务的响应时间及tps

Tps:1s 钟的时间能处理几个事务
三、插入检查点
检查点:会影响性能
为了调试用的;一般压测过程中去掉检查点
Web_reg_find 预注册函数,放在请求前
Web_find ,web_image_check 等函数性能不好,不建议使用
注意事项:文本检查点函数需要注意位置;图片检查点需要开启run-time settings 里的设置
数据库写操作可以不加检查点
Select 操作时才需要加检查点
四、插入集合点
集合点:
是反映服务器的瞬时压力
集合点只是在某些特殊场景中需要验证严格并发是否能够通过,比如秒杀
集合点不能添加到事务中,要放在事务外,否则事务的统计会把集合点的等待时间也统计进去
进程、线程:默认勾选线程,进程资源消耗太多,一般没那么多执行机资源的
实践经验:如果跑场景是出现乱七八糟的事务,run-time settings 中miscellaneous 中先勾选 automatic transactions 下的两个选项,
点击【保存】->再次打开run-time settings ,取消勾选这两项,点击【保存】即可
其他协议脚本
一、Webservice 实例


第一个是检查点,第二、三个是关联
两关联是一模一样,只是结果稍有不同。工作中任选

对应的函数分别为:
Lr_xml_get_values()
Lr_xml_find()
Lr_xml_extract()
二、WindowsSocket 协议:
选择windowsSocket协议,点击录制



相关函数:
Lrs_receive_ex
Lrs_receive
Lrs_save_param
Loadrunner常用操作的更多相关文章
- LoadRunner常用函数列表
LoadRunner常用函数列表 Web相关函数 函 数 功 能 描 述 web_custom_request 用户可以通过该函数自行创建一个HTTP请求的函数 web_image 模拟用户单击 ...
- Loadrunner常用分析点
Loadrunner常用的分析点 一.在Vuser(虚拟用户状态)中 1.Running Vusers:提供了生产负载的虚拟用户运行状态的相关信息,可以帮助我们了解负载生成的结果.(即用户在几分钟左右 ...
- 【三】用Markdown写blog的常用操作
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- php模拟数据库常用操作效果
test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...
- Mac OS X常用操作入门指南
前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右) =鼠标左键 control+按下 ...
- mysql常用操作语句
mysql常用操作语句 1.mysql -u root -p 2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...
- nodejs配置及cmd常用操作
一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...
- Oracle常用操作——创建表空间、临时表空间、创建表分区、创建索引、锁表处理
摘要:Oracle数据库的库表常用操作:创建与添加表空间.临时表空间.创建表分区.创建索引.锁表处理 1.表空间 ■ 详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 --详细查看表空 ...
- python 异常处理、文件常用操作
异常处理 http://www.jb51.net/article/95033.htm 文件常用操作 http://www.jb51.net/article/92946.htm
随机推荐
- PyQt5教程——事件和信号(5)
PyQt5中的事件和信号 在这部分PyQt5编程教程中,我们探索应用中事件和信号的发生. 事件 所有的GUI应用都是事件驱动的.事件主要由应用的用户操作产生的.但是事件可能由其他条件触发,比如:一个网 ...
- 〖Linux〗zigbee实验之cc2430的cc debugger固件升级实录
开发环境:Windows XP 1. (Trouble)一开始,使用IAR提示此设备不可使用(意味着无法下载程序): 2. (Search)通过一番的仔细查找,发现是cc debugger的Evalu ...
- 自定义AppServer
TelnetSever.cs public class TelnetServer : AppServer<TelnetSession> { protected override bool ...
- Windwos在cmd如何复制文本
生活的琐事,总是要解决. 01.Win+R打开运行窗口 cmd--回车 02. 勾选快速编辑模式 注意: 快速编辑模式就是可以Ctrl+c(复制).Ctrl+v(粘贴)
- html5实现全屏的api方法
参考地址 [进入和退出全屏] // Webkit (works in Safari5.1 and Chrome 15) element.webkitRequestFullScreen(); docum ...
- 【laravel5.4】PHP5.6+ 调用命名空间下类方法、属性和对象
1.调用命名空间的类方法,对象.属性 类对象:\App\User(); 类方法:\App\User::find($this->user_id) //查询构造器方法,将$this->user ...
- @NotEmpty、@NotNull 和 @NotBlank 的区别
1. 三者主要区别如下: @NotEmpty :用于集合类,不能为null,且size>0 @NotNull:不能为null,但可以为empty,没有size的约束 @NotBlank:只用于S ...
- linux利器expect的使用
1.什么是expect在做系统管理时,我们很多时候需要输入密码,例如:连接 ssh,连接ftp,那么如何能做到不输入密码,我们需要有一个工具,能代替我们实现与终端的交互,它能够代替我们实现与终端的交互 ...
- 很轻很强大:轻量级桌面环境比较(转自linuxeden)
这天你终于下定决心购买了一台流行的 Netbook ,与往常装机一样,直接安装心爱的 Linux 发行版.好不容易安装完成了,却发现平日启动飞快的应用程序在 Netbook 上怎么都跑不快.怎么办呢? ...
- js 排序
在本例中,我们将创建一个数组,并按字母顺序进行排序: <script type="text/javascript"> var arr = new Array(6) ar ...