Ten kurs jest częścią Programu Podstawy Testów Automatycznych w Selenium i Python, o którym możesz poczytać tutaj Program Podstawy Testów Automatycznych w Selenium i Python.

Witaj w 4 części!

Wszystkie części Programu znajdziesz tutaj:

Wstęp

Potrafimy już pisać proste testy GUI w oparciu o interakcje z elementami na stronie. Teraz przyszedł czas na rewizję i sprawdzenie 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 oraz będziemy w stanie profesjonalnie przedstawić wynik ich działania.

Co Cię czeka?

Zaczniemy intensywnie od zasymulowania ciekawej sytuacji, z którą 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ę z nowymi strukturami i instrukcjami, które pozwolą ogarnąć grupy elementów.

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:

  • 👉 zrobimy duży refaktor i wprowadzimy obszerne zmiany – zasymulujemy rzeczy, jakie Cię spotkają w prawdziwym projekcie, przygotowaliśmy własne rozwiązanie specjalnie dla naszego kursu 😉
  • 👉 zapoznamy się z podstawowymi elementami języka Python jakimi są Moduły i Pakiety,
  • 👉 dowiemy się czym są testy typu Smoke i Sanity i przećwiczymy tworzenie takich testów,
  • 👉 skorzystamy produktywnie z nowych konstrukcji języka Python – struktura list i instrukcjafor oraz if,
  • 👉 opowiemy jak dobrze zarządzać dużą liczbą testów poprzez Test Suite,
  • 👉 zapoznamy się bliżej z konsolą dostępną w PyCharm aby przyspieszyć naszą pracę,
  • 👉 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, napiszemy własne rozwiązanie i porównamy je z dostępnymi w Selenium

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 (dostępny po zalogowaniu). Dzięki niemu w razie potrzeby będziemy mogli szybko przypomnieć sobie znaczenie różnych terminów 🙂

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 na stronie Q&A. Pełna informacja do czego uzyskasz dostęp po zakupie znajduje się na stronie Cennik.

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.
Jeśli wciąż go nie posiadasz: Kliknij Zapisz się! a zostaniesz przeniesiony do strony zapisu do członkostwa

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. Pingback: O serii - Podstawy Testów Automatycznych w Selenium i Python - Jak Testować?

    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

        Avatar 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

        Avatar Katarzyna Kusiak

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *