这里对web_reg_find的函数使用方法不作过多讲解,请直接参考LoadRunner自带的帮助文档。
平时我们做HTTP/HTML协议的时候,经常需要对Response的字符进行检查,这里面就会遇到中文字符的检验,如提交一个请求,返回一个确定字符或提示。如果是Get请求,我们可以直接通过如下方式进行检查:
web_reg_find("text=检查的中文字符", "SaveCount=isReceiveSuccess", LAST);
注:如果是Method=Get但无法检查中文的请按如下图设置(Vuser->Run-time settings)
一般按如上设置,即可对中文字符进行校验。
但如果是POST方法,则无法直接进行中文返回值校验。这里我们需要做如下处理:
1、将我们需要校验的中文字符转换成UTF-8编码,就得用到转换字符函数
lr_convert_string_encoding("检查中文字符", LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8, "convertChar");
2、将转换后的字符串过滤到后面带的\x00
char * checkChar; //定义变量需要放在所有执行之前
checkChar = (char *)malloc(50); //分派内存空间,50是指分派50个字符,根据中文长度需要分派
memset(checkChar, 0, 50); //赋初始值给checkChar
sprintf(checkChar, "text=%s\0", lr_eval_string("{convertChar}")); //将上面转换后的字符赋值给刚定义的变量,这里在后面加上\0是为了防止取值越界
注:sprintf的使用方法如果不明白,同样可以查看Loadrunner的帮助文档或C相关文档
3、如何使用
这样,POST请求的中文返回值就可以校验成功,此时“isReceiveSuccess”保存着查找到中文的数量。
4、注意
使用完以后,需要对checkChar进行释放,否则运行多次迭代后,就会造成内存泄漏
free(checkChar);