关联难点
1.找出需要关联的值
2.找到关联位置
3.关联边界
关联原因:脚本里的值是死的,服务器的值是动态变化的,关联是将服务器返回的动态变化的值保存为参数以便后面需要用到该值的请求进行使用
1.1自己输入的 顶多做参数化,不需要关联
1.2关联值出现的位置:网址?后面,ITEMDATA后面
1.3了解接口业务逻辑
ctrl+alt+c 注释选中内容
ctrl+alt+c+u 恢复
关联1:服务器校验提交请求的合法性(值的合法性,key的合法性),正确性
er:图片验证码,邮箱验证码,手机验证码,时间戳,token,session,
(图片验证码用万能验证码,验证码失效来解决)
关联2:数据库类(值是int的数字,key是id类 )
DDL:数据库模式定义语言,关键字:create
DML:数据操纵语言,关键字:Insert、delete、update
DCL:数据库控制语言 ,关键字:grant、remove
DQL:数据库查询语言,关键字:select
数据库的插入类 就是把insert这个表的必填字段补全,这个字段是跟其他数据的关联关系的字段,一般是id,不要让你插入的数据是垃圾数据(无根据的数据)
insert into 帖子表(id,msg,title,模块id,uid)
delete from 表 where xx=?? and .....or
delete操作的关联就是补全 where后面的条件值 并且 值是对的,这些条件值 可能是一个 也可能是多个
update from 表 set XX=XX where 同delete
select 同update ,delete
关联操作80%与数据库相关
关联函数的位置:放在给出值的response的URL前面,把值打印出来代表取值成功
录制脚本时设置 Recording Options-Recording-Script types-A script containing explicil URLs only
以后用纯的URL方式录脚本(工作中,脚本很长,但是脚本不会出现歧义)
找关联函数位置方法:
1.在tree视图(录制视图,回放视图)的Response里找到关联值的URL,保存为一个参数,自动确定关联函数的位置。
报错信息:use web_set_max_html_param_len to increase the parameter size
原因:与长度无关,要么关联函数位置不对,要么边界值不对
网上答案有30%是错误的,需要甄别
关联函数 不带ex的,是用左右边界判断,带ex的是用正则表达式去判断
2.Tree视图获取左右边界,手写关联函数
右键单击add step-选择web_reg_save_param
eg: web_reg_save_param("formhash",
"LB=formhash=",
"RB=&searchsubmit",
LAST);
3.扩展日志获取左右边界,手写关联
Run-time Settings —>Log ->Extended log 勾选 Paramlter subsliulion,Data returned by server
在Replay Log中找到关联函数的左右边界
然后手写函数,写上边界值
4.抓包工具获取到服务器的返回结果,得到左右边界,手写关联
抓包 F12 网络 谷歌浏览器抓包,在响应正文中找(避免转义边界)
5.通过页面,查看源文件,得到左右边界,手写关联
有乱码时,在Run-time Settings-Preferences-options-General-Converfrom UTP-8 改为YES