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