• loadrunner中自定义查找并替换函数


    globas.h中定义  
    
    //LoadRunner中没有直接的函数支持查找并替换字符串,因此可以封装一个lr_replace函数出来:
    
    
    // ----------------------------------------------------------------------------
    char *strReplace(const char *src, const char *from, const char *to)
    {
      char *value;
      char *dst;
      char *match;
      int size;
      int fromlen;
      int tolen;
    
      size = strlen(src) + 1;
      fromlen = strlen(from);
      tolen = strlen(to);
    
      
      value = (char *)malloc(size);
    
      dst = value;
    
    
      if ( value != NULL )
      {
    
        for ( ;; )
        {
         
          match = (char *) strstr(src, from);
          if ( match != NULL )
          {
    
            size_t count = match - src;
    
    
            char *temp;
    
    
            size += tolen - fromlen;
    
    
            temp = (char *)realloc(value, size);
    
            if ( temp == NULL )
            {
    
              free(value);
              return NULL;
            }
    
    
            dst = temp + (dst - value);
            value = temp;
    
    
            memmove(dst, src, count);
            src += count;
            dst += count;
    
    
            memmove(dst, to, tolen);
            src += fromlen;
            dst += tolen;
          }
          else
          {
    
            strcpy(dst, src);
            break;
          }
        } 
      }
      return value;
    }
    
    // ----------------------------------------------------------------------------
    
    
    // ----------------------------------------------------------------------------
    int lr_replace( const char *lrparam, char *findstr, char *replacestr )
    {
      int res = 0;
      char *result_str;
      char lrp[1024];
    
    
      sprintf( lrp, "{%s}", lrparam);
    
    
      result_str = strReplace( lr_eval_string(lrp), findstr, replacestr );
    
    
      if (result_str != NULL )
      {
        lr_save_string( result_str, lrparam );
        free( result_str );
        res = 1;
      }
      return res;
    }
    

    在Action中定义:

    login()
    {
    
    
    lr_save_string("This is a string", "MyPar");
    
    
    //web_convert_param( "MyPar",
    
    //                   "SourceEncoding=PLAIN",
    //                   "TargetEncoding=URL", LAST); 
    
    
    lr_output_message("%s", lr_eval_string("{MyPar}"));
    
    
    //lr_replace("MyPar", "+", "%20" );
    
    
    //lr_output_message("%s", lr_eval_string("{MyPar}"));
    
    
    lr_replace("MyPar", "ing", "旺仔" );   //将Mypar中的ing字符串用旺仔替换
    
    
    lr_output_message("%s", lr_eval_string("{MyPar}"));
    

     

  • 相关阅读:
    辞职后的第二个星期
    最近似乎应该休眠了.
    文件.二进制转换
    AVL树
    ajax 的同步和异步
    在SQL Server实现最短路径的搜索
    网页嵌套com例子
    Vs2005 dll 设置def导出函数
    [转]ATL开发一个ActiveX
    Atl COM发布与优化
  • 原文地址:https://www.cnblogs.com/qmfsun/p/4575419.html
Copyright © 2020-2023  润新知