邮递员检查 XML 响应包括多个元素和值



下面是来自 API 的响应的一部分,响应中可以有大约 10 个用户组块。我需要检查响应是否包含某个用户组类型,例如 6,然后还要检查 Users.User.Value 是否为某个值,我已经尝试过:

pm.test("Body includes UserGroupValue 1 ", function () {
pm.response.to.have.body("<UserGroupValue>1.00</UserGroupValue>");
});

但是因为可能有另一个具有相同值的元素,所以我不能确定它是正确的用户组块。 我想我需要检查多行并在测试中声明这些,但我不确定该怎么做,除非有其他方法?提前感谢!!

<UserGroup>
<UserGroupType>1</UserGroupType>
<UserGroupDescription>Users</UserGroupDescription>
<UserGroupValue>1.00</UserGroupValue>
<UserGroupCurrency>USD</UserGroupCurrency>
<UserGroupISOCurrency>150</UserGroupISOCurrency>
<UserGroupISOCurrencySymbol>$</UserGroupISOCurrencySymbol>
<Users>
<User>
<UserType>67</UserType>
<UserDescription>Test</UserDescription>
<UserValue>1.00</UserValue>
<UserCurrency>USD</UserCurrency>
<UserISOCurrency>150</UserISOCurrency>
</User>
<User>
<UserType>15</UserType>
<UserDescription>Test2</UserDescription>
<UserValue>1.00</UserValue>
<UserCurrency>USD</UserCurrency>
<UserISOCurrency>150</UserISOCurrency>
</User>
</Users>
</UserGroup>
<UserGroup>
<UserGroupType>6</UserGroupType>
<UserGroupDescription>Users2</UserGroupDescription>
<UserGroupValue>1.00</UserGroupValue>
<UserGroupCurrency>USD</UserGroupCurrency>
<UserGroupISOCurrency>150</UserGroupISOCurrency>
<UserGroupISOCurrencySymbol>$</UserGroupISOCurrencySymbol>
<Users>
<User>
<UserType>78</UserType>
<UserDescription>Test</UserDescription>
<UserValue>1.00</UserValue>
<UserCurrency>USD</UserCurrency>
<UserISOCurrency>150</UserISOCurrency>
</User>
<User>
<UserType>15</UserType>
<UserDescription>Test2</UserDescription>
<UserValue>1.00</UserValue>
<UserCurrency>USD</UserCurrency>
<UserISOCurrency>150</UserISOCurrency>
</User>
</Users>
</UserGroup>

您可以尝试这样的事情,但它在返回 XML 数据的方式方面有其局限性:

let convertedData = xml2Json(pm.response.text())
pm.test("Check UserGroup data", function () {
pm.expect(convertedData.UserGroup.UserGroupType).to.equal("1");
pm.expect(convertedData.UserGroup.UserGroupValue).to.equal("1.00");
});

此处提供了有关使用 XML 响应的更多信息: https://www.youtube.com/watch?v=xC4QQCQDDDk

最新更新