如何在Karate中使用循环生成XML格式的请求体?
Karate框架循环生成重复XML节点方案
完全可以实现,你可以按照以下步骤动态生成包含重复节点的请求体:
步骤1:定义乘客数据源
首先将所有乘客信息存入JSON数组,后续遍历该数组生成对应节点:
* def paxList = [ { gender: 'Male', name: 'Mark' }, { gender: 'Female', name: 'Alice' }, { gender: 'Male', name: 'John' } // 可按需新增任意数量的乘客数据 ]
步骤2:初始化根节点并生成子节点
先创建空的根节点<PaxDetails>,再通过karate.map遍历数据源生成所有<PaxDetail>节点,最后批量插入根节点:
// 初始化XML根节点 * def PaxDetails = <PaxDetails></PaxDetails> // 遍历生成所有PaxDetail节点 * def paxNodes = karate.map(paxList, function(pax) { return <PaxDetail gender={pax.gender} name={pax.name}/> }) // 将所有子节点插入根节点 * karate.appendTo(PaxDetails, paxNodes)
步骤3:使用生成的请求体
生成的PaxDetails变量可直接作为请求体使用,你也可以打印验证结构是否符合预期:
* print PaxDetails * request PaxDetails * method post
生成的XML结构和你需要的目标结构完全一致,支持动态调整乘客数量,不需要硬编码重复节点。
内容的提问来源于stack exchange,提问作者madusanka
相关产品推荐
相关产品推荐

