Poniżej znajduje się część odpowiedzi z interfejsu API, odpowiedź może zawierać około 10 bloków UserGroup. Muszę sprawdzić, czy odpowiedź zawiera określony typ UsergroupType, np. 6, a następnie sprawdzić również Users.User.Value to pewna wartość, próbowałem:

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

Ale ponieważ może być inny element o tej samej wartości, nie mogę być pewien, czy jest to poprawny blok UserGroup. Chyba muszę sprawdzić wiele wierszy i zadeklarować je w testach, ale nie jestem pewien, jak to zrobić, chyba że jest inny sposób? z góry dziękuję!!

<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>
1
Nelly 19 grudzień 2019, 14:53

1 odpowiedź

Mógłbyś spróbować czegoś takiego, ale ma to swoje ograniczenia, jeśli chodzi o sposób zwracania danych 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");
});

Więcej informacji na temat pracy z odpowiedziami XML znajdziesz tutaj: https://www.youtube.com/watch?v=xC4QQCQDDDk

0
Danny Dainton 19 grudzień 2019, 16:17
Doceń swoją odpowiedź. Otrzymuję Sprawdź dane grupy użytkowników | TypeError: Nie można odczytać właściwości „UserGroupType” niezdefiniowanej
 – 
Nelly
19 grudzień 2019, 16:26
Czy muszę podać pełną ścieżkę do UserGroupType?
 – 
Nelly
19 grudzień 2019, 16:32
Czy możesz zaktualizować/edytować oryginalne pytanie za pomocą rzeczy, które wypróbowałeś i rozwinąć wszelkie szczegóły, proszę o odpowiedź w komentarzach :)
 – 
Danny Dainton
19 grudzień 2019, 16:36
Ok, przepraszam Danny, otrzymuję błąd: „Sprawdź dane grupy użytkowników | Błąd typu: Nie można odczytać właściwości „UserGroupType” undefined” Nie byłem pewien, ponieważ musiałem dodać pełną ścieżkę do tego elementu, więc dodałem teraz pełna ścieżka, np. 1, więc mój test brzmi teraz: pm.expect(convertedData.xyzUserGroup.UserGroupType).to.equal("1") ; Teraz pojawia się błąd: Sprawdź dane grupy użytkowników | AssertionError: oczekiwany niezdefiniowany równy 1
 – 
Nelly
19 grudzień 2019, 16:45
1
Hej, nigdy nie korzystałem z console.log(), ale po jego użyciu widzę, gdzie muszę być, a teraz mam test działający, więc kciuki w górę ode mnie! Musiałem użyć tablicy, ponieważ bloki miały te same nazwy elementów, dziękuję za pomoc przy tym jednym Danny.
 – 
Nelly
19 grudzień 2019, 17:51