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}"));
|
作者:Agoly 出处:https://www.cnblogs.com/qmfsun/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 |

浙公网安备 33010602011771号