如何在LoadRunner中利用ord=ALL关联实现全部航班预订?
批量预订所有抓取到的航班(LoadRunner脚本实现)
1. 确认关联参数结构
你用web_reg_save_param加ORD=ALL后,LoadRunner会自动生成3类参数:
outbond_flight:存储所有匹配到的航班值(如020;338;07/11/2023)outbond_flight_count:存储抓取到的航班总数(当前是4)outbond_flight_1、outbond_flight_2...:单个索引的参数,对应你拿到的格式
如果当前关联抓的是outbond_flight_1=xxx整串,需要调整边界直接提取值:
web_reg_save_param("outbond_flight", "LB=outbond_flight_\\d+=", // 匹配outbond_flight_1=、outbond_flight_2=这类前缀 "RB= ", // 匹配值后的空格 "ORD=ALL", LAST);
2. 用循环遍历执行批量预订
通过for循环基于航班总数遍历,每次取出对应航班参数执行预订请求:
int i, flight_count; // 把字符串类型的count转成整数 flight_count = atoi(lr_eval_string("{outbond_flight_count}")); for(i=1; i<=flight_count; i++){ char flight_param[50]; // 构造当前航班的参数名 sprintf(flight_param, "outbond_flight_%d", i); // 打印调试日志,确认当前处理的航班(可选) lr_output_message("处理航班:%s", lr_eval_string(flight_param)); // 替换成你实际的预订请求,把航班参数传入对应位置 web_submit_data("航班预订请求", "Action=http://your-booking-domain/book", "Method=POST", "EncType=application/x-www-form-urlencoded", ITEMDATA, "Name=flight_detail", "Value={flight_param}", ENDITEM, // 按需添加其他必填参数(如乘客ID、联系人信息等) LAST); }
3. 关键注意事项
- 确保会话有效:如果预订需要登录,脚本要保持会话(LoadRunner默认会维护Cookie,无需额外处理)
- 调整请求逻辑:如果预订后有确认页面或跳转,要把对应请求也放到循环内,保证流程完整
- 调试优先:用
lr_output_message打印参数值,确认每个航班都被正确提取和传递
内容的提问来源于stack exchange,提问作者pranay dwivedi
相关产品推荐
相关产品推荐

