LoadRunner中自定义C函数实现字符串替换
1.在globals.h 中定义一个函数ReplaceStr,实现字符串的替换: int ReplaceStr(char* sSrc, char* sMatchStr, char* sReplaceStr) { int StringLen; char caNewString[1024]; char* findPos; merc_timer_handle_t timer_ReplaceStr = lr_start_timer(); lr_debug_message(LR_MSG_CLASS_EXTENDED_LOG ,"Notify:Function 'ReplaceStr' started."); findPos =(char *)strstr(sSrc, sMatchStr); if( (!findPos) || (!sMatchStr) ){ lr_debug_message(LR_MSG_CLASS_EXTENDED_LOG ,"Notify:Function 'ReplaceStr' ended with error!"); return -1; } while( findPos) { memset(caNewString, 0, sizeof(caNewString)); StringLen = findPos - sSrc; strncpy(caNewString, sSrc, StringLen); strcat(caNewString, sReplaceStr); strcat(caNewString, findPos + strlen(sMatchStr)); strcpy(sSrc, caNewString); findPos =(char *)strstr(sSrc, sMatchStr); } lr_debug_message(LR_MSG_CLASS_EXTENDED_LOG,"Result:%s",sSrc); free(findPos); lr_debug_message(LR_MSG_CLASS_EXTENDED_LOG ,"Notify:Function 'ReplaceStr' ended (Duration: %lf)", lr_end_timer(timer_ReplaceStr)); return 0; } 2.在init/Action/end 中调用: char strView[1024]; web_reg_save_param("viewState5", "LB=\"javax.faces.ViewState\" value=\"", "RB=\"", LAST); sprintf(strView,lr_eval_string("{viewState5}")); ReplaceStr(strView,"+","%2B"); ReplaceStr(strView,"/","%2F"); ReplaceStr(strView,"=","%2D"); lr_save_string(lr_eval_string(strView), "viewState6"); memset(strView,0,sizeof(strView));
作者:Agoly 出处:https://www.cnblogs.com/qmfsun/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步