【问题标题】:Parse part of XML response to another request in Postman将部分 XML 响应解析为 Postman 中的另一个请求
【发布时间】:2021-07-21 16:26:50
【问题描述】:

我必须在 Postman 中测试一些响应为 XML 格式的 Web 服务(SOAP),并且我想使用从第一个请求到第二个请求正文的部分响应。
如果第一个请求响应具有相同的行数(IDK如何调用它们),这不会是一个大问题,但是每个响应的****数可能不同。
**第一个请求响应**
<ListResponse>
            <Response>
                <success>1</success>
                <callId>?</callId>
            </Response>
            <portfolio>
                <total>?</total>
                <Balance>?</Balance>
                <!-- The number of "List" may be different for each response -->
                <List>
                    <Text1>?</Text1>
                    <Text2>?</Text2>
                </List>
                <List>
                    <Text1>?</Text1>
                    <Text2>?</Text2>
                </List>
                <List>
                    <Text1>?</Text1>
                    <Text2>?</Text2>
                </List>
                <List>
                    <Text1>?</Text1>
                    <Text2>?</Text2>
                </List>
                <List>
                    <Text1>?</Text1>
                    <Text2>?</Text2>
                </List>
                <ticket>?</ticket>
            </portfolio>
    </ListResponse>

第二个请求正文

<Campaign>
     <Request>
        <Portfolio>
           <!--1 or more repetitions:-->
           <List>
              <Text1>?</Text2>
              <Text2>?</Text2>
           </List>
        </Portfolio>
     </Request>
  </Campaign>

我尝试使用 responseJson['ListResponse']['portfolio']['list'] 进行解析,然后将其保存在 Env 中。变量,然后在第二个请求正文中使用它,但我无法将 JSON 转换为 XML。
我尝试的另一件事是拆分响应,但我再次无法使用此解决方案,因为每个响应的列表数量可能不同。
我的想法已经用完了,如果你们有任何想法,我会很感激你的帮助

附:对不起我的英语:)

【问题讨论】:

    标签: javascript xml postman


    【解决方案1】:

    我实际上找到了一个解决方案,可能不是最好的,但它正在工作

     var ListJSON=responseJson['ListResponse']['portfolio']['list']
     var ListLength=responseJson['ListResponse']['portfolio']['list'].length
     var List='';
     for(var i=0;i<ListLength;i++){
        var eachList='';
        var Text1=ListJSON[i]['Text1'];
        var Text2=ListJSON[i]['Text2'];
        eachList=`<List>
             <Text1>`+Text1+`</Text1>                 
             <Text2>`+Text2+`</Text2>
                  </List>`;
        var List=List.concat(eachList);
    }
    
    pm.environment.set('List',List);
    

    然后我将使用存储在第二个请求中的变量,它看起来像这样:

    <Campaign>
         <Request>
            <Portfolio>
               <!--1 or more repetitions:-->
              {{List}}
            </Portfolio>
         </Request>
      </Campaign>
    

    【讨论】:

      猜你喜欢
      • 2017-08-06
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多