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));
时间: 2024-08-04 19:46:39

LoadRunner中自定义C函数实现字符串替换的相关文章

LoadRunner中的Web 函数列表

web test LoadRunner fuction_list D:\Program Files (x86)\Mercury Interactive\Mercury LoadRunner\bin>ls -l *.chm -rw-rw-rw-   1 user     group       25893 May 20  2004 FuncRef.chm -rw-rw-rw-   1 user     group       29443 May 20  2004 RPM_Configuration

在复数类中自定义类型转换函数实现复数和非复数之间的运算

实现复数+double型数据,并且打印运算后实部上的数据 #include <iostream> using namespace std; class Complex { public: Complex( )//定义默认构造函数初始化复数 { real=0; imag=0; } //使用初始化表初始化复数 Complex(double r, double i):real(r),imag(i){} //定义自定义类型转换函数 operator double() { return real; }

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

globas.h中定义 //LoadRunner中没有直接的函数支持查找并替换字符串,因此可以封装一个lr_replace函数出来: // ---------------------------------------------------------------------------- char *strReplace(const char *src, const char *from, const char *to) { char *value; char *dst; char *mat

LoadRunner中调用SHA1算法加密字符串

参考<SHA-1 hash for LoadRunner>: http://ptfrontline.wordpress.com/2010/03/02/sha-1-hash-for-loadrunner/ 包含SHA1算法的头文件sha1.h: /* ***************************************************************************** * *  March 2010 * *    Small changes by Kim Sa

Mysql中使用find_in_set函数查找字符串

mysql有个表的字段的存储是以逗号分隔的,如domain字段login.s01.yy.com,s01.yy.com,s02.yy.com.现在要查找s01.yy.com这个.我们用like查找好像不是非常准确.那就试试mysql中的find_in_set函数吧. SELECT find_in_set('a','a,b,c,d') as test

python交互环境中导入文件中自定义的函数报错

今天在学习python自定义函数时,遇到一个问题:我用notepad++编辑器自定义的函数,在交互环境下使用from 文件名 import 函数名 导入时,一直报错,检查了好几遍,一直报这个错: 代码如下: # -*-coding:utf-8 -*- #自定义函数 def 函数名(参数1,参数2...): 然后在缩进体内编写函数体,用return返回值 #自定义求绝对值函数 #def my_abs(x): #如果参数类型不是int或者float,会抛出类型错误异常 # if not isinst

javascript中通过replace函数搜索和替换指定字符串

javascript中我们可以通过replace函数替换部分字符串为指定字符串,本文展示了replace的详细用法,并且通过范例演示了如何进行部分替换.完整替换和不区分大小写替换. javascript中我们可以通过replace函数替换部分字符串为指定字符串.下面是replace函数的基本语法: str_var.replace("search_string", "replace_string") 下面看一个简单的范例: <script type="

php中的字符串常用函数 str_replace 字符串替换

1 <?php 2 $str = "hello world!"; 3 echo(str_replace(array('hello', 'world'), array('tom', 'class'), $str); 4 //输出结果:tom class! 5 6 $str2 = "hello world!"; 7 echo(str_replace('hello', 'cat', $str2); 8 //输出结果:cat world! 第3行:数组依次对应替换 第

oracle中的常用函数、字符串函数、数值类型函数、日期函数,聚合函数。

一.字符串的常用函数. --一.oracle 字符串常用函数 --1. concat 连接字符串的函数,只能连接[两个]字符串. 字符写在括号中,并用逗号隔开! --2.“||”符号可以连接多个字符串 直接用||将多个字符链接即可. --3. dual? dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录. select concat('lo','ve')from dual; select concat('o','k')from dual; sel