loadrunner 中,将参数为“123,400,400”转换成int型,转换后为:123400400,怎么办呢
loadrunner中,抓取的参数是“123,400,400”,想要将参数转换成int型的,使得转换后的结果为 :123400400;该怎么做呢?小女子初学,哪位大神可以指点一二呀?
网上搜了下这个函数可以直接用,放到globals.h中:
int StrToNum(const char * pstr)
{
int iresult = 0;
const char * pstrRun = pstr;
while (pstrRun != '\0')
{
if (pstrRun > 1 && pstrRun <255 && isdigit(pstrRun))
{
iresult *= 10;
iresult += (pstrRun - '0');
}
++pstrRun;
}
return iresult;
}
然后在action中直接调用;
lr_save_int(StrToNum(lr_eval_string("{aa}")),"my_num");
测试通过,打印出来的日志:
Action.c(5): Notify: Parameter Substitution: parameter "aa" ="123,400,400"
Action.c(5): Notify: Saving Parameter "my_num = 123400400". 如果参数是3个数的话还是分开用int吧,别一个int后跟那么多数 char rec_tmp; //定义一个变量,用于存三个参数
sprintf(rec_tmp,"%s%s%s",lr_eval_string("{str1}"),lr_eval_string("{str2}"),lr_eval_string("{str3}")); //把三个参数放到变量rec_tem中
lr_save_int(atoi(rec_tmp),"my_num"); //把变量的值转换int型放到变量my_num中 呃,我错了,你抓出来直接是“123,400,400”,还以为是三个参数 清凉晨 发表于 2015-8-28 09:32
如果参数是3个数的话还是分开用int吧,别一个int后跟那么多数
取出来的参数是一个数的,只不过这个数每三位之间用“,”隔开,所以如果直接使用atoi()函数转型的话,最终转换后的数是“,”隔开的第一段,即:123;现在想要的是,将这个数“123,400,400”转换后的最终结果是:123400400 virgolong 发表于 2015-8-28 10:43
网上搜了下这个函数可以直接用,放到globals.h中:
int StrToNum(const char * pstr)
{
谢谢哈,我试过这个这个方法,的确可用(虽然我不懂这里面的代码是什么意思:P) 紫罗兰1225516 发表于 2015-8-28 15:34
谢谢哈,我试过这个这个方法,的确可用(虽然我不懂这里面的代码是什么意思)
原理就是,把参数中从左到右每一位取出来,如果是数字,则每次×10后和下一次取的值相加
例如123,0=((1*10+2)*10+3)*10+0=1230
页:
[1]