如何使用Postman从XML中提取变量?
我想从SOAP API返回的XML中提取SessionId。如何使用Postman从XML中提取变量?
我已经阅读了邮递员文档(几次以上),但它不是实现我的目标最有帮助的。
在一些博客中提出的建议是将XML转换为JSON,然后从中选择令牌和值,但这也没有帮助。
我曾经在我的测试如下:
var jsonObject = xml2Json(responseBody);
postman.setGlobalVariable("Session_Id", jsonObject.SessionID);
上面创建的变量“SESSION_ID”,但没有一个值实际上分配给它。我很难过。
我绝对从API中检索数据,并且可以在Postman的“Body”响应中查看。
要使用邮差从XML提取变量,第一你的XML转换成JSON,使用xml2Json转换器的方法:(其中 “responseBody” 是你的XML主体)
var responseJson = xml2Json(responseBody);
然后使用控制台。登录方法来输出JSON数据,因为这样的:
console.log(responseJson);
一定要遵循上Enabling Chrome Dev Tools in Postman
本教程里面你r运行测试程序,运行测试,然后在Runner中的任意位置右键单击并“检查”。一旦Chrome的Dev Tools启动,请选择“控制台”选项卡。展开“对象”部分。
然后深入(展开),直到您看到您需要其数据的属性。 此后,通过追加每个向下钻取级别的参数设置变量,你想:
postman.setGlobalVariable("Session_Id", responseJson.UserSessionToken.SessionID);
在这种情况下,“responseJson”是对象,“UserSessionToken”是在向下钻取一个新的水平, SessionId是我需要的参数。
如果您运行的是独立应用,则无需通过Chrome启用这些工具。只需从菜单栏中打开:查看 - >显示邮递员控制台 – sunil
我仍然在寻求这个答案,而且我向向我介绍该应用的人证实了这一点。如果我在接下来的几天里没有来,我会给邮递员发邮件。 –
什么是jsonObject的输出,是jsonObject.SessionID的一个字符串。根据邮差文档:postman.setGlobalVariable(variableName,variableValue):设置一个全局变量“variableName”,并为其分配字符串“variableValue”。注意:只能存储字符串。存储其他类型的数据将导致意外的行为。 – Shaughn
我通过电子邮件发送了邮递员@Shaughn和他们的创始人之一回答说,告诉我同样的事情。但他继续说,该应用程序会自动将任何其他类型转换为字符串。不管怎样,我发现了这个问题。我没有深入钻入JSON blob。我结束了使用: 'postman.setEnvironmentVariable(“Session_Id”,jsonObject.UserSessionToken.SessionId);' 我使用了Console.log,并一直检查输出,直到找到所需的东西。 –