关于web_reg_find如何校验中文字符

来源:互联网 发布:奇商网络 编辑:程序博客网 时间:2024/06/13 18:56

这里对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);


0 0