loadrunner 字符串转换

之前在录登录脚本时 添加了个检查点 

web_reg_find("text=Success",
      "SaveCount=Account_count",    
               LAST);

判断如下

if(atoi(lr_eval_string("{Account_count}"))>0 ){
        lr_output_message("Login successfully! %s",lr_eval_string("{username}"));
        lr_end_transaction("SonyStyle_TC01_Sign up",LR_PASS);
    } else {
        lr_error_message("Fail account : %s ",lr_eval_string("{username}"));
        lr_end_transaction("SonyStyle_TC01_Sign up",LR_FAIL);    
    }

但是过了几天回放的时候却发现失败了,如下图

仔细看了看日志没任何错啊,只是判断这里出问题了。进一步想肯定是检查点的问题,回到检查点的地方

查看检查点

咋变成中文的“成功"了。之前都是success的,绝对是那个前端小伙搞的鬼,现在只有使用字符转换来解决了,

代码如下:

char * checkChar; 

    checkChar = (char *)malloc(50); //分派50个字符内存空间

    memset(checkChar, 0, 50); //赋初始值给checkChar
    
    lr_convert_string_encoding("成功", LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8, "convertChar");

    sprintf(checkChar, "text=%s\0", lr_eval_string("{convertChar}")); 

检查点应写为你所转换后的参数,如下:

web_reg_find(checkChar,
      "SaveCount=Account_count",    
               LAST);

判断条件不变

if(atoi(lr_eval_string("{Account_count}"))>0 ){
        lr_output_message("Login successfully! %s",lr_eval_string("{username}"));
        lr_end_transaction("SonyStyle_TC02_Sign in",LR_PASS);
    } else {
        lr_error_message("Fail account : %s ",lr_eval_string("{username}"));
        lr_end_transaction("SonyStyle_TC02_Sign in",LR_FAIL);    
    }

free(checkChar); //对checkchar进行释放

记得要将内存释放,添加在最后即可

free(checkChar); //对checkchar进行释放

再回放时成功!

猜你喜欢

转载自blog.csdn.net/user___1111/article/details/84072626