(六)loadrunner关联详解

1. 定义

关联就是将服务器返回的动态的变化的一个值把它保存为一个参数,以供后面需要用到该值的请求进行使用。

2. 为什么要关联

脚本里把一个值写死,但每次运行时这个值是服务器返回动态动态变化的。

3. 哪些值需要关联

3.1经验判断

1)自己输入的值肯定不需要关联

2)常见的(1,0) (on,off) (yes,no) 空值 都不需要关联

3)90%以上都只会关联value,但有极少数情况下会出现关联key(key看起来不正经)

4)非自己输入的脚本里出现的参数是可能需要关联的

3.2根据关联类型判断

1)服务器校验提交请求的合法性(值的合法性、key的合法性)、正确性

● 验证码要校正确性,常见验证码包括:图片验证码、邮箱验证码、手机验证码

● 时间戳、token(手机)、session(http)要校验合法性

题外话:

 图片验证码怎么处理:万能验证码、验证码失效、找开发要验证码的实现逻辑(做正则)

 现在图片识别技术不成熟,有错误率

 token校验比session校验更安全,token更复杂

2)数据库类(值是int的数字,key是id类)

● 插入操作的关联就是把insert这个表的必填字段补全,这个必填字段是跟其他数据的关联关系的字段一般是id,不要让你的数据是垃圾(无根之源的数据)

语法:

insert into 表(字段,字段...) values (值,值...)

举例说明:

例1:insert into 户籍表("id","name","sex","bir","adr","fuid","muid")

------fuid,muid:来源于父母的户籍信息

------猜想:fuid,muid需要关联

例2:insert into 帖子表("自增id","msg","title","time","模块id","谁发的帖")

------猜想谁发的帖要关联,模块id看是否要求,time待定

● delete操作的关联就是补全where后面的条件值并且值是对的,这些条件值可能是一个也可能是多个

语法:

delete from 表 where xx = ??? and xx >= ???

------and/or

------>= ,<=, != ,in ,not in ,between

● update操作的关联就是补全where后面的条件值并且值是对的,这些条件值可能是一个也可能是多个       

语法:

update 表 set xx=xxx where xx = ??? and xx >= ???

------and/or

------>= ,<=, != ,in ,not in ,between

● select操作的关联就是补全where后面的条件值并且值是对的,这些条件值可能是一个也可能是多个

语法:

select xx,xx from 表 where xx = ??? and xx >= ???

------and/or

------>= ,<=, != ,in ,not in ,between

题外话:

 数据库简单定义

DDL:数据库模式定义语言,关键字:create

DML:数据操纵语言,关键字:Insert、delete、update

DCL:数据库控制语言 ,关键字:grant、remove

DQL:数据库查询语言,关键字:select

 int类型数字检索比char类型快很多

4. 关联位置放哪

哪个请求response中返回你想要用的那个值,关联函数就放在这个请求的前面。关联位置放哪,需要从应用程序和数据库角度去考虑。关联的值肯定是在触发校验请求之前给。如:seesion是在进入登录页面时给的,token是在登录后给的。

下面以注淘宝注册购物结束精简流程来说明关联的位置,例子比较粗糙,顺带说一下参数化。

● 注册

----参数化(用户名、手机号)

----关联(手机验证码,输入手机号点下一步时给)

● 登录

----参数化(用户名或手机号)

● 查看商铺详情

----参数化or关联都行(商品id,商铺id,避免缓存造成的结果失真)

----可能会记录谁在浏览,若记录就需要关联uid(最早在注册时给,后续登录也会给)

● 收藏商品

----关联(商品id,商铺id,uid),uid同上,商铺id,店铺id由商品列表返回)

● 加入购物车

----关联(商品id,商铺id,uid),uid同上,商铺id,店铺id由商品列表返回)

● 删除购物车

----关联(商品id,商铺id,uid),uid同上,商铺id,店铺id由商品列表返回)

● 结算

----关联(uid,商品id,店铺id)、delete购物车、update库存

● 查询订单

----关联(订单id,uid),订单id结算时返回,uid同上

5. 关联函数怎么写

5.1关联的5种方法

1)tree视图右键关联

2)tree视图获取左右边界,手写关联

3)扩展日志获取到服务器的返回结果,取到左右边界值,手写关联

4)抓包工具获取到服务器的返回结果,取到左右边界值,手写关联

5)通过查看页面源文件,到左右边界,手写关联

5.2关联值如果出现多个不同的关联边界,如何选取边界

1)选择出现次数多的

2)选择正经的(容易区分的)

5.3 tree视图右键关联操作

1)tree视图下选中要关联的值,点击右键-->Create Paramter

 

2)回到script视图,自动填写好关联函数,需要注意的是右键关联填写的边界值可能不对,需自己根据情况调整

 

5.4手写关联

知道边界值的情况下可以自己手写关联函数,手写关联可以用web_reg_save_param或者web_reg_save_param_ex函数,当边界值不需要用到正则表达式时,推荐用web_reg_save_param即可。下面演示用web_reg_save_param手写关联。

1)点击【Insert-->New Step】

 

2)输入web_reg_save_param并选择,点击ok

 

3)填写匹配规则后点击ok

 

● Notfound: 当在返回信息中找不到要找的内容时应该怎么处理

Notfound=error: 当在返回信息中找不到要找的内容时,发出一个错误讯息。这是缺省值。

Notfound=warning: 当在返回信息中找不到要找的内容时,只发出警告,脚本也会继续执

行下去不会中断。

● LB( Left Boundary ) : 返回信息的左边界字串。该属性必须有,并且区分大小写。

● RB( Right Boundary ): 返回信息的右边界字串。该属性必须有,并且区分大小写。

● RelFrameID: 相对于URL而言,欲查找的网页的Frame。此属性质可以是All或是数字,该属性可有可无。

● Search : 返回信息的查找范围。可以是Headers,Body,Noresource,All(缺省)。该属性质可有可无。

● ORD : 说明第几次出现的左边界子串的匹配项才是需要的内容。该属性可有可无,缺省值是1。如为All,则将所有找到的内容储存起来。

● SaveOffset : 当找到匹配项后,从第几个字元开始存储到参数中。该属性不能为负数,缺省值为0。

● SaveLen :当找到匹配项后,偏移量之后的几个字元存储到参数中。缺省值是-1,表示一直到结尾的整个字串都存入参数。

4)关联函数写完

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>