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

Podstawy Testów Automatycznych w Selenium i Python cz. 1
Podstawy Testów Automatycznych w Selenium i Python cz. 2
Podstawy Testów Automatycznych w Selenium i Python cz. 3

Wstęp

Potrafimy już pisać proste testy GUI w oparciu o interakcje z elementami na stronie. Teraz przyszedł czas na podsumowanie nabytych umiejętności oraz wzbogacenie ich o zupełnie nowe kompetencje. Pozwolą nam one na tworzenie bardziej kompleksowych rozwiązań, a same testy staną się pełniejsze i łatwiejsze w utrzymaniu.

Co Cię czeka

Zaczniemy intensywnie od zasymulowania zdarzenia, z którym na pewno spotkacie się w prawdziwej pracy w projekcie. Po uporaniu się ze wszystkimi zadaniami, przejdziemy do modułów i pakietów w Pythonie – poznamy czym one tak właściwie są oraz jak tworzyć własne. Następnie zapoznamy się z konsolą Pythona, która jest dostępna z IDE PyCharm, oraz poćwiczymy wspólnie pracę ze strukturami i instrukcjami. Usprawnimy także nasze testy – poznamy poprawne sposoby czekania na elementy, które powinny znaleźć się na stronie.
Dowiemy się również, jak w prosty i efektywny sposób zarządzać stworzonymi testami za pomocą Test Suite oraz jak stworzyć profesjonalny raport z testów automatycznych.

Podsumowując, czekają nas następujące rzeczy:

  • zapoznamy się z podstawowymi elementami języka Python jakimi są Moduły i Pakiety,
  • dowiemy się czym są testy typu Smoke i Sanity,
  • odrobina nowych konstrukcji języka Python – listy i struktury for,
  • opowiemy jak dobrze zarządzać dużą liczbą testów poprzez Test Suite,
  • zapoznamy się bliżej z konsolą dostępną w PyCharm,
  • zobaczymy jak w prosty sposób można przygotować raport z naszych testów za pomocą biblioteki Allure,
  • dowiemy się jak poprawnie czekać na elementy na stronie,
  • zrobimy duży refaktor i wprowadzimy obszerne zmiany – zasymulujemy rzeczy, jakie Cię spotkają w prawdziwym projekcie 😉

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

Będziemy używać wielu pojęć z poprzednich kursów z serii więc wiedza która tam została opisana będzie niezbędna, Pamiętaj aby samemu eksperymentować i modyfikować otrzymane rozwiązania dzięki czemu nabierzesz wprawy oraz natkniesz się na problemy których nie spotkasz u nas 🙂

Do dzieła!

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: 24 godzin

Trudność: Podstawowy

Instruktorzy kursu

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

Plan Podstawowy

Darmowa

Chcesz mieć dostęp do tego kursu?
Chcesz w prosty i przejrzysty sposób monitorować swoje postępy?
Kliknij Zapisz się! 🙂

Aby mieć darmowy dostęp do tego kursu wymagane jest posiadanie członkostwa Kursant Podstawy Testów Automatycznych w Selenium i Python (Early Bird).
Jeśli wciąż go nie posiadasz: Kliknij Zapisz się! a zostaniesz przeniesiony do strony zapisu do członkostwa

Plan Specjalny dla Starej Gwardii

Wyprzedaż 49.99 9.99
Opłaty członkowskie

Specjalny plan dla wszystkich którzy zapisali się do innych kursów na jaktestować.pl
przed publikacją obecnego kursu.

W ramach tego zakupu otrzymasz członkostwo Kursant Podstawy Testów Automatycznych w Selenium i Python (Early Bird) uprawniającego do korzystania z kolejnych częściach kursu Podstawy Testów Automatycznych w Selenium i Python oraz innych zamkniętych treści.

Jest to specjalny, promocyjny plan dostępowy, z racji, że jesteś z Nami od początku 🙂

Rewolucje w projekcie

Refactor i własne moduły

Zestaw konsola, lista i for

Listy i pętle w praktyce

Test Suite

Raport z testów

Instrukcja IF – stan ma znaczenie

Własna metoda do czekania na elementy

Wait w Pythonie

Podsumowanie wszystkiego, czego się nauczyliśmy

7 komentarzy

    1. Hej,
      Poproszę jeszcze o komendę, z jakiej korzystasz podczas generowania raportu 🙂 (albo najlepiej cały stacktrace wraz z komendą)
      Dodatkowo możesz także pokazać strukturę swoich katalogów, gdyż komenda do generowania dosyć mocno od tego zależy 🙂

      Krzysiek Kijas Krzysiek Kijas
      1. Komenda : python -m pytest testsuit_all_tests.py

        Traceback (most recent call last):
        File “C:\Python\lib\runpy.py”, line 193, in _run_module_as_main
        “__main__”, mod_spec)
        File “C:\Python\lib\runpy.py”, line 85, in _run_code
        exec(code, run_globals)
        File “C:\Python\lib\site-packages\pytest.py”, line 67, in
        raise SystemExit(pytest.main())
        File “C:\Python\lib\site-packages\_pytest\config\__init__.py”, line 55, in main
        config = _prepareconfig(args, plugins)
        File “C:\Python\lib\site-packages\_pytest\config\__init__.py”, line 180, in _prepareconfig
        pluginmanager=pluginmanager, args=args
        File “C:\Python\lib\site-packages\pluggy\__init__.py”, line 617, in __call__
        return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
        File “C:\Python\lib\site-packages\pluggy\__init__.py”, line 222, in _hookexec
        return self._inner_hookexec(hook, methods, kwargs)
        File “C:\Python\lib\site-packages\pluggy\__init__.py”, line 216, in
        firstresult=hook.spec_opts.get(‘firstresult’),
        File “C:\Python\lib\site-packages\pluggy\callers.py”, line 196, in _multicall
        gen.send(outcome)
        File “C:\Python\lib\site-packages\_pytest\helpconfig.py”, line 89, in pytest_cmdline_parse
        config = outcome.get_result()
        File “C:\Python\lib\site-packages\pluggy\callers.py”, line 76, in get_result
        raise ex[1].with_traceback(ex[2])
        File “C:\Python\lib\site-packages\pluggy\callers.py”, line 180, in _multicall
        res = hook_impl.function(*args)
        File “C:\Python\lib\site-packages\_pytest\config\__init__.py”, line 612, in pytest_cmdline_parse
        self.parse(args)
        File “C:\Python\lib\site-packages\_pytest\config\__init__.py”, line 777, in parse
        self._preparse(args, addopts=addopts)
        File “C:\Python\lib\site-packages\_pytest\config\__init__.py”, line 729, in _preparse
        self.pluginmanager.load_setuptools_entrypoints(“pytest11”)
        File “C:\Python\lib\site-packages\pluggy\__init__.py”, line 403, in load_setuptools_entrypoints
        self.register(plugin, name=ep.name)
        File “C:\Python\lib\site-packages\_pytest\config\__init__.py”, line 286, in register
        ret = super(PytestPluginManager, self).register(plugin, name)
        File “C:\Python\lib\site-packages\pluggy\__init__.py”, line 254, in register
        hook._maybe_apply_history(hookimpl)
        File “C:\Python\lib\site-packages\pluggy\__init__.py”, line 650, in _maybe_apply_history
        res = self._hookexec(self, [method], kwargs)
        File “C:\Python\lib\site-packages\pluggy\__init__.py”, line 222, in _hookexec
        return self._inner_hookexec(hook, methods, kwargs)
        File “C:\Python\lib\site-packages\pluggy\__init__.py”, line 216, in
        firstresult=hook.spec_opts.get(‘firstresult’),
        File “C:\Python\lib\site-packages\pluggy\callers.py”, line 201, in _multicall
        return outcome.get_result()
        File “C:\Python\lib\site-packages\pluggy\callers.py”, line 76, in get_result
        raise ex[1].with_traceback(ex[2])
        File “C:\Python\lib\site-packages\pluggy\callers.py”, line 180, in _multicall
        res = hook_impl.function(*args)
        File “C:\Python\lib\site-packages\allure_pytest\plugin.py”, line 20, in pytest_addoption
        help=”Generate Allure report in the specified directory (may not exist)”)
        File “C:\Python\lib\site-packages\_pytest\config\argparsing.py”, line 296, in addoption
        raise ValueError(“option names %s already added” % conflict)
        ValueError: option names {‘–alluredir’} already added

        Katarzyna Kusiak
      1. Zawartość pliku tree.txt

        C:.
        | debug.log
        | lost_hat_front_page_test.py
        | lost_hat_login_page_tests.py
        | lost_hat_product_page_tests.py
        | lost_hat_smoke_tests.py
        | testsuit_all_tests.py
        | tree.txt
        |
        +—.idea
        | jaktestowacDemoTests.iml
        | misc.xml
        | modules.xml
        | workspace.xml
        |
        +—.pytest_cache
        | \—v
        | \—cache
        | nodeids
        |
        +—helpers
        | | functional_helpers.py
        | |
        | \—__pycache__
        | functional_helpers.cpython-36.pyc
        |
        +—libs
        | \—allure-2.7.0
        | +—bin
        | | allure
        | | allure.bat
        | |
        | +—config
        | | allure-cucumber.yml
        | | allure-junit.yml
        | | allure.yml
        | |
        | +—lib
        | | | allure-commandline-2.7.0.jar
        | | | allure-generator-2.7.0.jar
        | | | allure-plugin-api-2.7.0.jar
        | | | allure1-model-1.0.jar
        | | | allure2-model-api-1.0.0.jar
        | | | allure2-model-jackson-1.0.0.jar
        | | | allure2-model-pojo-1.0.0.jar
        | | | commons-beanutils-1.9.3.jar
        | | | commons-codec-1.10.jar
        | | | commons-collections-3.2.2.jar
        | | | commons-collections4-4.1.jar
        | | | commons-io-2.6.jar
        | | | commons-lang3-3.7.jar
        | | | commons-logging-1.2.jar
        | | | commons-text-1.4.jar
        | | | flexmark-0.34.8.jar
        | | | flexmark-util-0.34.8.jar
        | | | freemarker-2.3.28.jar
        | | | httpclient-4.5.6.jar
        | | | httpcore-4.4.10.jar
        | | | jackson-annotations-2.9.0.jar
        | | | jackson-core-2.9.6.jar
        | | | jackson-databind-2.9.6.jar
        | | | jackson-dataformat-xml-2.9.6.jar
        | | | jackson-dataformat-yaml-2.9.6.jar
        | | | jackson-module-jaxb-annotations-2.9.6.jar
        | | | javax.servlet-api-3.1.0.jar
        | | | jaxb-api-2.3.0.jar
        | | | jaxb-utils-1.0.jar
        | | | jcommander-1.72.jar
        | | | jetty-http-9.4.11.v20180605.jar
        | | | jetty-io-9.4.11.v20180605.jar
        | | | jetty-server-9.4.11.v20180605.jar
        | | | jetty-util-9.4.11.v20180605.jar
        | | | log4j-1.2.17.jar
        | | | opencsv-4.2.jar
        | | | properties-2.0.RC5.jar
        | | | slf4j-api-1.7.25.jar
        | | | slf4j-log4j12-1.7.25.jar
        | | | snakeyaml-1.18.jar
        | | | stax2-api-3.1.4.jar
        | | | tika-core-1.18.jar
        | | | woodstox-core-5.0.3.jar
        | | |
        | | \—config
        | | jetty-logging.properties
        | | log4j.properties
        | |
        | \—plugins
        | | README.txt
        | |
        | +—behaviors-plugin
        | | | allure-plugin.yml
        | | | plugin.jar
        | | |
        | | \—static
        | | index.js
        | |
        | +—custom-logo-plugin
        | | | allure-plugin.yml
        | | |
        | | \—static
        | | custom-logo.svg
        | | styles.css
        | |
        | +—junit-xml-plugin
        | | allure-plugin.yml
        | | junit-xml-plugin-2.7.0.jar
        | |
        | +—packages-plugin
        | | | allure-plugin.yml
        | | | plugin.jar
        | | |
        | | \—static
        | | index.js
        | |
        | +—screen-diff-plugin
        | | | allure-plugin.yml
        | | |
        | | \—static
        | | index.js
        | | styles.css
        | |
        | +—trx-plugin
        | | allure-plugin.yml
        | | trx-plugin-2.7.0.jar
        | |
        | +—xctest-plugin
        | | | allure-plugin.yml
        | | | xctest-plugin-2.7.0.jar
        | | |
        | | \—lib
        | | xmlwise-1.2.11.jar
        | |
        | \—xunit-xml-plugin
        | allure-plugin.yml
        | xunit-xml-plugin-2.7.0.jar
        |
        \—__pycache__
        lost_hat_smoke_tests.cpython-36.pyc

        Katarzyna Kusiak
  1. Pingback: O serii - Podstawy Testów Automatycznych w Selenium i Python - Jak Testować?

Dodaj komentarz

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