如何在Load runner中使用多个列?

时间:2017-06-22 15:30:21

标签: loadrunner

在HP Load Runner VU Gen中,我想白色一个脚本,该脚本从表中读取数据,具有多个列并使用数据来调用基于env的URL。

我有2个具有相同结构的表:mytable_dev和mytable_prod。这些是文件参数表。例如,在mytable_dev.dat中:     名字|姓氏|年龄     约翰|史密斯| 12     劳拉|克罗夫特| 24     ...

我可以做这样的事情来获得" dev"或" prod":

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。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

我有一个解决方案。

首先,我使用" table"参数类型,而不是"文件",命名为" 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;
}

享受: - )