2017-06-22 69 views
0

在HP Load Runner VU Gen中,我想要创建一个脚本,该脚本从表中读取数据,具有多个列,并使用数据根据env调用某个url。如何在Load Runner中使用多列?

我确实有两个表具有相同的结构:mytable_dev和mytable_prod。这些是文件参数表。例如,在mytable_dev.dat中: 名字|姓氏|年龄 john |史密斯| 12 Lara | Croft | 24 ...

我可以做这样的事情来获得 “开发” 或 “刺”:

env = lr_get_attrib_string("env"); 

然后,我可以选择表(DEV或PROD)有:

sprintf (data_temp,"{url_imd_%s}", env); 
lr_save_string (lr_eval_string(data_temp), "data_env"); 

然后,我想打电话给一些网址,根据表中的值:

web_rest("Foo", 
    "URL=http://somesite.com/foo/{data_env['firstname']}/{data_env['lastname']}", 
    ... 

我怎么能这样做?

Th。

+0

只需更换数据文件,为您的环境,并与逻辑来完成。 K(eep)I(t)S(实施)S(*****) –

回答

2

这不是参数如何工作。每个参数引用数据表的单个列(请参阅选择列 - >按名称组合框)。 Parameter TestA is defined on the A column of the dataset in the file

0

我有一个解决方案。

首先,我使用“table”参数类型,而不是“file”,名为“date_dev”。这里“dev”是我的环境的名字。我也有“data_int”,“data_prod”等。

fw_save_format_eval_string("{ENV}", "{data_%s}", "DATAS_ENV"); 
temp = lr_eval_string("{DATAS_ENV}"); 
fw_splitlist_paramarr(temp, "PARAMETRE", ";"); 

这里“;”是我的CSV分隔符。

而任何工作中的作用:

int fw_splitlist_paramarr(char *in, char *out_param, char *sep) 
{ 
int i = 0; 
char *p, *t, paramName[PARAM_SIZE]; 

sprintf(paramName, "%s_count", out_param); 
lr_free_parameter(paramName); 
lr_save_int(i, paramName); 

if ((p = strdup(in)) == NULL) 
{ 
lr_free_parameter(paramName); 
return -1; 
} 
t = strtok(p, sep); 
while (t != NULL) 
{ 
i++; 
sprintf(paramName, "%s_%d", out_param, i); 
lr_save_string(t, paramName); 
t = strtok(NULL, sep); 
} 
free(p); 

sprintf(paramName, "%s_count", out_param); 
lr_free_parameter(paramName); 
lr_save_int(i, paramName); 
return 0; 
} 

享受:-)

相关问题