文本检查点
run-time setting->preferences->checks->enable image and text check.此选项对web_reg_find貌似无用
录制脚本时 要注意中文返回的是否为乱码,乱码匹配不到,所以尽量查找英文
int web_reg_find (const char *attribute_list, LAST);
返回值
整型。 成功时返回LR_PASS(0),失败时返回LR_FAIL (1)。
int web_find (const char *StepName, <Attributes and Specifications list>, char *searchstring, LAST );
以下主要对web_reg_find做解释
1、reg标示注册,即必须要请求之前就注册,位置放于请求之前,通常情况下写在如下六个函数之前: web_castom_request(); web_image(); web_link(); web_submit_data(); web_submit_form(); web_url()
2、此函数返回的是次数,即获取参数的次数。所以默认无论是否找到控制台都不会报错,必须使用fail属性
控制台打印如此:Registered web_reg_find successful for "Text=xxx"
3、Search:控制查找范围,范围在响应头,体,all,缺省值是body。
4、Text:查找字段
5、SaveCount:查找的次数,存放参数容器中
6、Fail:Found(找到就失败) NotFound(未找到失败)
7、 TextPfx:要搜索的字符串的直接前缀。(同时可以关注大小敏感等)
TextSfx:要搜索的字符串的直接后缀。
以下主要对web_find做解释
Web_image_check
可查看:http://www.cnblogs.com/jasonteststudy/p/3626908.html
web_find和web_reg_find函数两者是有一些差别的:
(1)web_reg_find先注册的优势是脚本能够一边接收Server的数据缓冲,一边进行查找,提高了查找的效率。
(2)web_reg_find的参数与web_find并不完全一样,其中有个参数叫做 SaveCount,它能够记录查找匹配的次数。而web_find的机制是一旦查找匹配成功,就立即返回,并不继续查找和记录匹配次数。
(3)VU run time设置中的 “enable image and text check”对 web_find有效,而对web_reg_find无效。
2、 WEB_FIND使用时必须开启内容检查选项
3、 WEB_FIND只能只用在基于HTML模式录制的脚本中
4、 WEB_FIND是在返回的页面中进行内容查找,WEB_REG_FIND是在缓存中进行查找
5、 WEB_FIND在执行效率上不如WEB_REG_FIND
int i=0;
i=web_reg_find("Text=":1,"",
"Search=Body",
LAST);
web_submit_data("startFlow.ht",
"Action=http://192.168.1.154:8080/bpmhac/platform/bpm/task/startFlow.ht",
"Method=POST",
"RecContentType=text/html",
"Referer=http://192.168.1.154:8080/bpmhac/platform/bpm/task/startFlowForm.ht?defId=10000027300066",
"Snapshot=t235.inf",
"Mode=HTTP",
ITEMDATA,
"Name=actDefId", "Value=csqdxn:1:10000027300065", ENDITEM,
"Name=defId", "Value=10000027300066", ENDITEM,
"Name=businessKey", "Value=", ENDITEM,
"Name=runId", "Value=0", ENDITEM,
"Name=startNode", "Value=", ENDITEM,
"Name=m:jdbcs:xm", "Value=a", ENDITEM,
"Name=m:jdbcs:bianma", "Value=", ENDITEM,
"Name=formKey", "Value=10000027300052", ENDITEM,
"Name=formData", "Value={"main":{"fields":{"xm":"a","bianma":""}},"sub":[],"opinion":[]}", ENDITEM,
LAST);
if(i==0){
lr_end_transaction("startFlow", LR_PASS);
}
else{
lr_end_transaction("startFlow", LR_FAIL);
}
这个代码根据响应判断事务是否成功。