Ten kurs jest elementem serii Podstawy Testów Automatycznych w Selenium i Python – możesz poczytać o niej w poście O serii Podstawy Testów Automatycznych w Selenium i Python. Jak widzisz jest to część 2 więc jeśli nie ukończyłeś pierwszej części zobacz Podstawy Testów Automatycznych w Selenium i Python cz. 1.

Wstęp

Wzorując się na podstawowym teście stworzonym w poprzednim kursie można napisać kolejne. Zauważ, że pierwsza asercja, która zakończy się niepowodzeniem niestety przerwie cały test i kolejne nie będą już wykonywane. Dodatkowo w takim przypadku nie zostanie zamknięte okno przeglądarki, co jest bardzo dużym problemem, gdyż poprawny test automatyczny powinien sam przygotować wszystkie potrzebne dane a także po zakończeniu (poprawnym jak i niepoprawnym!) powinien posprzątać po sobie (zamknąć przeglądarkę, usunąć stworzone dane itp).

Co Cię czeka

W tym kursie:

  • stworzymy zestaw testów (klasę testową) wraz z poprawnym przygotowaniem testów i sprzątaniem po nich,
  • już nie będzie trzeba ręcznie zamykać przeglądarki po każdym teście, który zakończy się niepowodzeniem,
  • nauczymy się jak korzystać z jednej instancji Chroma we wszystkich testach.

Dodatkowo, aby ułatwić zaznajamianie się z nowymi pojęciami, wszystkie nowe terminy zebraliśmy w jednym skondensowanym miejscu – w Słowniku do kursu Podstawy Testów Automatycznych. Dzięki niemu w razie potrzeby będziemy mogli szybko przypomnieć sobie znaczenie różnych terminów 🙂 Słownik nie jest jeszcze w pełni kompletny, ale jest cały czas rozwijany – nieustannie dodajemy nowe pojęcia i ich definicje.

Wymagania

Do zbudowania fajnie wyglądającego przypadku testowego potrzebujemy opanować trochę wiedzy z programowania obiektowego – generalnie zostanie tu wszystko opisane. Zaprojektujemy klasę testową która będzie posiadać metody (warto zapamiętać, że metoda to funkcja znajdująca się w klasie) będące osobnymi przypadkami testowymi.

Jak czegoś nie rozumiesz to na razie się tym nie przejmuj – leć z tutkiem dalej i potem przejdź go drugi raz i wtedy zobaczysz co się rozjaśniło a czego trzeba się poduczyć.

Aktualizacja: PyCharm 2018.1: lekcje zawarte w tym kursie były przygotowywane dla wersji PyCharm 2017.2. Obecna wersja PyCharm 2018.1 zawiera kilka zmian i nowości – wynikające z tego różnice w lekcjach zostaną oznaczone oraz opisane.

TIP: Dokładny opis na temat płatności, członkostw i planów dostępowych znajdziesz w poście Członkostwa i Plany Dostępowe.

Informacje o kursie

Szacowany czas ukończenia: 2 godziny

Trudność: Podstawowy

Instruktorzy kursu

Krzysiek Kijas Krzysiek Kijas Autor
Przemek Barański Przemek Barański Autor

Plan dostępu do wszystkich lekcji w tym kursie (nie wymaga opłat)

Darmowa

Chcesz w prosty i przejrzysty sposób monitorować swoje postępy?
Zapisz się poprzez darmowy plan dostępowy 🙂
TIP: Aby się zapisać potrzebujesz konta oraz wymaganego członkostwa. Uzyskaj to wszystko klikając poniżej Zapisz się i dla darmowych treści wybierz członkostwo Kursant Darmowy. Po wykonaniu sugerowanych kroków, automatycznie i bez opłat uzyskasz dostęp do tego kursu. 🙂

2 komentarze

  1. Siema mistrzowie, mam pytanie do lekcji piątej, próbując dokonać refaktoryzacji kodu chciałem również przekazać w metodzie parametr ‘url’. W sumie zrobiłem to jak poniżej (zaraz wkleję kod, chwilę wcześniej, intuicyjnie). I teraz czemu metoda run_browser śmiga jak ta lala? A jak podmienię z run_browser() na setUp() w testach to dostaję:

    self.setUp()
    TypeError: setUp() missing 1 required positional argument: 'url'
    
    import unittest
    from selenium import webdriver
    
    expected_title = 'Eurobank - Bankowość Internetowa - Logowanie'
    expected_title2 = 'Eurobank - Bankowość Internetowa - Lista kont - wiele kont'
    expected_title3 = 'Eurobank - Bankowość Internetowa - Pulpit'
    
    class MainTests(unittest.TestCase) :
    
        # def setUp(self, url):
        #     self.browser = webdriver.Chrome(executable_path=r'driver\chromedriver.exe')
        #     self.browser.maximize_window()
        #     self.browser.get(url)
    
        def run_browser(self, url):
            self.browser = webdriver.Chrome(executable_path=r'driver\chromedriver.exe')
            self.browser.maximize_window()
            self.browser.get(url)
    
        def test_demo_login(self):
            MainTests.run_browser(self, url = 'http://demo.eurobank.pl/logowanie_etap_1.html')
            title = self.browser.title
            self.browser.implicitly_wait(20000)
            print(title, ' : ', expected_title)
            assert title == expected_title
            self.browser.close()
    
        def test_demo_accounts(self):
            MainTests.run_browser(self, url='http://demo.eurobank.pl/konta.html')
            title = self.browser.title;
            print(title)
            assert title == expected_title2
            self.browser.close()
    
        def test_demo_pulpit(self):
            MainTests.run_browser(self, url='http://demo.eurobank.pl/pulpit.html')
            title = self.browser.title
            print(title)
            assert title == expected_title3
            self.browser.close()
    
    
    Conan O'Connor
    1. Hej
      Na początek wybacz opóźnioną odpowiedź – właśnie usprawniliśmy sposób informowania nas o komentarzach w kursach.
      Po drugie przenoszę rozmowę na nasze forum, aby łatwiej było śledzić problemy, które zgłaszają użytkownicy – odpowiedź znajdziesz tu https://jaktestowac.pl/question/dodanie-parametru-do-metody-self-setup-zwraca-blad-podstawy-automatyzacji-cz2-lekcja-5-refaktoryzacja/

      Napisz proszę czy to rozwiało twoje wątpliwości 🙂

      Przemek Barański Przemek Barański

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *