html tool

2014年4月15日星期二

ld 获取不同与上一个ip的随机ip函数


1.如何获得指定范围的随机函数范围为[min,max] j=rand()%(max-min+1) + min
2.参数如何in/out
int _GetIP(const char *ip , char *oldip)
套用lr_系列函数的声明
const 的为返回值,这里的string类型都用 char 的指针来做了
input的直接用 char * 就ok
3.关于switch case的两个小问题
3.1 好久不用 case 后要用break都不适应了:)
3.2 看OO类比猜想是不是全部的case语句都可以用重载对象来实现呢?idea thinking一下吧4.古老的字符串比较问题
0 == strcmp(lr_eval_string("{ip}"),oldip)
这里的strcmp到不是什么问题,问题是在这个char * oldip与lr_save_string("192.168.1.1","ip")中的ip,在比较时要对这个Ir_save_string出来的ip做lr_eval_string()处理
4.1 lr_save_string保存出来的是lr的参数,这个值在ld的调试环境才显示,其他的C变量值是不显示的
4.2 lr_eval_string() 用来get parameter's string value using lr_eval_string function [来源:http://motevich.blogspot.com/2007/11/loadrunner-parameter-string-int.html]
----------------------------------------------------------------------
这里的一个小常识从这个地址来的
i = atoi(lr_eval_string("{prmCounter}"));

We get parameter's string value using lr_eval_string function and after that atoi function converts it to int value. Apparently, it is easy :)
------------------------------------------------------------------------

[?]
1.ld中C下如何设置参数的默认值,如果不可以,lr_系列的函数是如何封装的?

最后附上全部的代码:
------------------------------------------------------------------
//#include
//#include

vuser_init()
{

_GetIP("ip","");
lr_output_message(lr_eval_string("{ip}"));

_GetIP("ip","ip");
lr_output_message(lr_eval_string("{ip}"));
return 0;
}

int _GetIP(const char *ip , char *oldip)
{ //get different ipaddress
int i,j,x;

i=1;//first getip
while( (1 == i)||(0 == strcmp(lr_eval_string("{ip}"),oldip)))
{
j=rand()%3;
switch (j)
{case 1 : lr_save_string("192.168.1.1","ip");break;
case 2 :lr_save_string("192.168.1.2","ip");break;
case 0 :lr_save_string("192.168.1.0","ip");break;}
x=strcmp(lr_eval_string("{ip}"),oldip);
//lr_output_message("x=%d",x);
i++;
}
return 0;

}

没有评论:

发表评论