错误场景:
需要做一个登录的业务场景并发测试 在fiddler导出数据包之后在lr12中生成脚本并调试完成
在lr12中使用到了关联因为系统的登录有一个token
再将脚本移植到lr11中运行
Lr12中使用了:
web_reg_save_param_attrib(
"ParamName=CorrelationParameter",
"TagName=input",
"Extract=value",
"Name=org.apache.struts.taglib.html.TOKEN",
"Type=hidden",
SEARCH_FILTERS,
"IgnoreRedirections=No",
LAST);
这一段进行关联
它对应的登录是这样的:
web_submit_data("login.do",
"Action=http://192.168.3.74:8080/ydzf_gx/login.do",
"Method=POST",
"RecContentType=text/html",
"Referer=http://192.168.3.74:8080/ydzf_gx/login.jsp",
"Snapshot=t3.inf",
"Mode=HTML",
ITEMDATA,
"Name=method", "Value=authenticate", ENDITEM,
"Name=needValicode", "Value=false", ENDITEM,
"Name=needpriCode", "Value=false", ENDITEM,
"Name=userid", "Value=longan", ENDITEM,
"Name=org.apache.struts.taglib.html.TOKEN", "Value={CorrelationParameter}", ENDITEM,
"Name=password", "Value=1", ENDITEM,
LAST);
token的value属性被一个“CorrelationParameter”的值替代写到了web_reg_save_param_attrib这个函数中
但是“web_reg_save_param_attrib”这个函数在lr11中是不存在的
Lr11中能关联的函数只有:
web_reg_save_param 和 web_reg_save_param_ex
不支持“web_reg_save_param_attrib”这个函数 因此需要在lr11中手写关联
下面以:web_reg_save_param_ex为例
菜单栏Insert --- new step 打开add step 窗口 找到web_reg_save_param_ex函数 看到函数设置窗口:
Prameter name: 此设置存放参数的名称。
Left boundary: 此处设置左边界,这里是用来填写关联对于数据处理的左匹配内容规则。
Match case : 默认情况下边界是检查Match case ,也就是检查大小写的。
Binary data : 如果要关联的内容是非ASCII 字符的,需要选择此项
Regular expression : 在LR11 中关联提供了使用正则表达式的功能,但是LR11 Patch3 中取消web_reg_save_param_ex 函数对此功能的设置。
Reight boundary: 此处设置右边界。
DFEs : 在录制选项和回放中我们提供了DFE的功能,在关联这里也支持DFE的数据处理。 (DFE等后面再解释,或你自行查资料)
Ordinal : 这个关键字在很多函数里面都有应用,在这里可以填写任意一个整数,也可以填All 。如果填写数字,那么说明从返回的记录中取出对应顺序的值,而填写All 的话将会返回所有内容。
Save Offset : 设置关联的内容偏移量,从第几位开始进行关联操作。
Save Length : 关联出来的内容所需要保存的长度。
Warm if text was not found (Default is Error) : 对于关联的对象不存在的处理。
Filters : 下面的选项都是帮助关联返回限定的,通过这些设置可以进一步减少返回的范围。
手写:(思路)
1.首先确定需要关联的内容。在登录的业务场景中一般是token值
2.在lr12中确定LB和RB的内容
3.把LB和RB的填写到lr11中的web_reg_save_param_ex函数中
如果你是手写web_reg_save_param_ex函数,需要对LR和RB的内容进行转义
在lr中需要转义的内容:
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表
\v 垂直制表
\\ 反斜杠
\? 问号字符
\‘ 单引号字符
\" 双引号字符
\0 空字符
下面看实例:
1.首先在lr12中的design studio中找到需要关联的内容。点击“detail”
2.确定需要关联的内容:lr12已经帮你标记出
3.确定需要关联的内容左边和右边有什么,对应着LB和RB的值
也就是说:LB应该填name="org.apache.struts.taglib.html.TOKEN" value="
RB应该填"></div>
这就是最原始的内容
但是上面提到了“转义”
根据转义的规则
name="org.apache.struts.taglib.html.TOKEN" value="被转义成:
name=\"org.apache.struts.taglib.html.TOKEN\" value=\"
"></div>被转义成:
\"></div>
4.因此 我们的关联函数在lr11中就应该写成这样:
lr11中的关联函数
web_reg_save_param_ex(
"ParamName=CorrelationParameter",
"LB=name=\"org.apache.struts.taglib.html.TOKEN\" value=\"",
"RB=\"></div",
LAST);
5.校验是否成功:
检验很重要,不要漏掉
由于上面的例子我没有用到检查点。使用tomcat来确定登录、退出是否成功
性能测试-007-脚本从lr12移植到lr11 解决关联报错的问题
原文:https://www.cnblogs.com/ZedOne/p/12704160.html