怎么随机取一个列表中的某一条数据
需求背景:在测试的时候,服务器端返回一个列表可能是多条数据,并且每次返回的数据了不一致,目前我每次能够取到数据的总量,由于自己不会怎么随机取,所以在脚本中写死了,始终取第一条数据,但是从实际中讲,这是不对的。问题:怎么能随机的取这些其中的一条。
新手求助,多谢! 自己顶下,怎么没人给帮助的! 可以录制到取系统某条数据的脚本吗,可以的话把这个条数参数化,取随机数字。。。 关联后用lr_paramarr_random()函数即可 lr_paramarr_random()
这个是啥函数?? 这个问题怎么没下文了?
回复 3# 的帖子
因为每次取的数据条数不一致,这里如果在参数里统一做的话,那可能存在访问的数据部存在的想象,这其实又造成了一种错误。回复 4# 的帖子
这个函数怎么用,随机值怎么设定;我这里要求随机值必须是0——我的列表数据的条数;
回复 7# 的帖子
那可以设置两个参数,一个参数是你的查询条件,一个是要取 的记录号,只要这个记录号不大于你的查询条件查出的最大记录就可以,这样不会出现访问不存在的记录的情况,呵呵,仅供参考。。。 lr_paramarr_random()函数作用是:随机取得关联回来的参数数组的值。附,何为参数数组:在使用web_reg_save_param函数时,当设置Ord=All时,关联返回的就是一个参数数组,在LR9.X的版本提供支持。参数数组中参数的名称变成了param_x (多了_x,x表示参数数组中的索引)
在8.X的版本中不提供该函数,所以要随机取得值需要使用到rand()函数和sprintf组合来构造出一个类似param_1的字符串作为参数的名称,例子如下:
以LR自带的webtours为例,启动后可练习如下代码:
web_reg_save_param("flightnumber",
"LB/DIG=##/##/####>",
"RB/ALNUMIC=<td align=^enter>",
"Ord=ALL",
LAST);
web_submit_data("reservations.pl",
"Action=http://localhost:1080/webtours/reservations.pl",
"Method=POST",
ITEMDATA,
"Name=advanceDiscount", "Value=0", ENDITEM,
"Name=depart", "Value=Denver", ENDITEM,
"Name=departDate", "Value=11/29/2009", ENDITEM,
"Name=arrive", "Value=London", ENDITEM,
"Name=returnDate", "Value=11/30/2009", ENDITEM,
"Name=numPassengers", "Value=1", ENDITEM,
"Name=seatPref", "Value=None", ENDITEM,
"Name=seatType", "Value=Coach", ENDITEM,
"Name=.cgifields", "Value=roundtrip", ENDITEM,
"Name=.cgifields", "Value=seatType", ENDITEM,
"Name=.cgifields", "Value=seatPref", ENDITEM,
"Name=findFlights.x", "Value=44", ENDITEM,
"Name=findFlights.y", "Value=15", ENDITEM,
LAST);
b = lr_paramarr_len("flightnumber");
for (w=0; w<b; w++) {
lr_output_message(lr_paramarr_idx("flightnumber", w+1));
}
lr_output_message(lr_paramarr_random("flightnumber"));
// lr 8.x 使用,无非就是用sprintf拼出flightnumber_x这样的参数名字.
for (w=0; w<atoi(lr_eval_string("{flightnumber_count}")); w++) {
sprintf(str, "{flightnumber_%d}", w+1);
lr_output_message(lr_eval_string(str));
}
页:
[1]