Zapisy otwarte! Dołącz do kursu Selenium w Javie lub Selenium w C#. Tylko do 23.09.2021 do godz. 21:00. Zapisz się tutaj.

Selenium w C# 55. Projekt testowy: testy płatności

„Projekt testowy: testy płatności” to drugie z trzech zadań w ramach projektu testowego, w którym samodzielnie stworzysz testy do naszego sklepu.

Projekt testowy: testy płatności – polecenie

Polecenie

Napisz poniższe testy.

  1. Dodaj wybrany produkt do koszyka i przejdź na stronę koszyka, a stamtąd na stronę płatności. Potwierdź, że po wypełnieniu danych karty ale nieuzupełnieniu pozostałych obligatoryjnych pól wyświetlają się odpowiednie komunikaty po kliknięciu „Kupuję i płacę”. Pomiń w tym teście wybór kraju i regionu, pól nieobowiązkowych i tworzenie konta podczas zakupu.
  2. Dodaj jakiś produkt do koszyka i przejdź na stronę koszyka, a stamtąd na stronę płatności. Potwierdź, że wszystkie kwoty (włącznie z VATem) się zgadzają.
  3. Dodaj dwa wybrane produkty do koszyka w ilości sztuk 2 i 3 i przejdź na stronę koszyka, a stamtąd na stronę płatności. Potwierdź, że wszystkie kwoty (włącznie z VATem) się zgadzają.
  4. Dodaj jakiś produkt do koszyka i przejdź na stronę koszyka. Zmień tam ilość sztuk produktu i zaktualizuj koszyk. Następnie przejdź na stronę płatności. Potwierdź, że wszystkie kwoty (włącznie z VATem) się zgadzają.
  5. Dodaj jakiś produkt do koszyka i przejdź na stronę koszyka, a stamtąd na stronę płatności. Wprowadź wszystkie wymagane dane i dokonaj zakupu jako nowy użytkownik (ale nie zakładaj konta). Potwierdź, że zakup się udał.
  6. Dodaj jakiś produkt do koszyka i przejdź na stronę koszyka, a stamtąd na stronę płatności. Dokonaj zakupu jako istniejący użytkownik, czyli zaloguj się w procesie zakupu (stwórz użytkownika wcześniej poza testem). Potwierdź, że zakup się udał.

Założenia:

  1. Pracujemy już na RemoteWebDriver (pamiętaj, że musisz zadbać o pliki driverów).
  2. Testy mają działać i na Firefox i na Chrome.
  3. Będziemy używać jawnego czekania (klasa WebDriverWait), a nie niejawnego (ImplicitlyWait).
  4. Staraj się używać jednej asercji na test albo asercji wielokrotnych.

Uwagi:

  1. Jest wiele metod na zbudowanie asercji do danego testu, tj. możesz się oprzeć na czymś zupełnie innym niż ja i to jest jak najbardziej ok.
  2. Umieszczaj elementy w ciele klasy testowej.

Dokumentacja dotycząca metody Format(), której użyliśmy do odpowiedniego zapisania ceny, znajdziesz tutaj.

Projekt testowy: testy płatności – rozwiązanie

Kod

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Wsparcie merytoryczne

Nie masz dostępu do wsparcia merytorycznego dla tego kursu. Wykup dostęp albo zaloguj się, by móc zadawać pytania.

  1. Hej,
    Mam pewną wątpliwość, którą chciałbym się podzielić. Analizując rozwiązanie, po puszczeniu testu napotkałem problem z ostatnią asercją z zadania 2.
    Assert.AreEqual(productsPricesText[0] + " (zawiera " + FormatNumber(tax) + " VAT)", OrderTotalElement.Text);

    Sypało mi błędem spowodowanym różnicą w formatowaniu. Wyliczony przeze mnie VAT oddziela części dziesiętne kropką, a pobierany VAT ze strony ma przecinek ...

    Expected: "5 399,00 zł (zawiera 1 009.57 zł VAT)" 
    But was:  "5 399,00 zł (zawiera 1 009,57 zł VAT)"

    Szukałem błędu w kodzie ale jestem niemal pewny, że mam to samo co jest powyżej w rozwiązaniu. Poradziłem sobie zmieniając asercję jak poniżej. Zastanawiam się tylko czy to rozwiązanie jest ok?
    Assert.AreEqual(productsPricesText[0] + " (zawiera " + FormatNumber(tax).Replace(".", ",") + " VAT)", OrderTotalElement.Text);

    Odpowiedz
      • Hmmm ... bez certolenia się skopiowałem sobie do osobnej klasy całe rozwiązanie, żeby nie było, że coś pominąłem i to samo ...

          Message: 
              String lengths are both 37. Strings differ at index 26.
              Expected: "5 399,00 zł (zawiera 1 009.57 zł VAT)"
              But was:  "5 399,00 zł (zawiera 1 009,57 zł VAT)"

        Co do mojego rozwiązania od początku czułem, że to bardziej work around niż coś dobrego 😀

        Odpowiedz
      • No dobra ... to mam winowajcę. Mam Windowsa po angielsku ... jak zmieniłem język na polski to test śmiga ...
        Zastanawiam się tylko jak taka sytuacja mogłaby zostać rozwiązana w projekcie, bo anglojęzyczny software jest np. u mnie w firmie powszechny.

        Odpowiedz