Wyszukaj / o blogu

JS - biblioteki/narzędzi do testowania

Opublikowano pon 14 lutego 2022 w qa • Tagi: cypress, jmeter, k6, backstopJS, pactum • 1 min read

js-testing-frameworks

Wprowadzenie

Ten artykuł jest jedynie spisem bibliotek powstałych z myślą o testowaniu automatycznym wykorzystujących JavaScript + ich alternatyw (docelowo ten spis ma stać się punktem wyjścia do tworzenia dalszych artykułów na ich temat - tak jak to się stało np. w przypadku Cypressa).

Integracja/e2e

Playwright

Nightwatch

Cypress


Testy wydajnościowe (performance)

K6 …


Czytaj dalej

Cypress - Page Objects

Opublikowano śro 09 lutego 2022 w qa • Tagi: cypress, page object model, page object • 3 min read

Page objects

Page object pattern - główne założenia: wprowadzenie modułowości w testach -> skupienie logiki testu w jednym miejscu a w innym stworzenie samego testu. 👉 pozwala na ograniczenie używania selektorów w testach (✌️ pozytywnie wpływa na czytelność kodu) 🤌 niewielkie zmiany dokonane w testowanej aplikacji powinny mieć wpływ na zmianę Page Objectu, unikając zmian …


Czytaj dalej

Cypress: test studio

Opublikowano śro 09 lutego 2022 w qa • Tagi: testing, cypress, test studio • 1 min read

cypress-test-studio

Cypress Test studio

Cypress Test Studio - jest narzędziem (w wersji Beta w momencie pisania tego artykułu) pozwalającym na tworzenie testów w Cypressie (tryb Open) bez pisania kodu... Ponieważ ta funkcjonalność jest jedynie w wersji beta jest ograniczona do zaledwie paru funkcji (check, select,click,type,uncheck - ).

Po skonfigurowaniu właściwości Cypress …


Czytaj dalej

Cypress: cy.intercept() - przechwytywanie zapytań HTTP

Opublikowano śro 02 lutego 2022 w qa • Tagi: cypress, testy, intercept • 2 min read

cypress

Wprowadzenie stubbing vs mocking

Oba pojęcia odnoszą się do podstawiania danych w celu przeprowadzenia testów - mockowanie odnosi się jednak do podstawiania danych w celu testowania funkcjonalności, podczas gdy stubowanie w celu zmiany stanu komponentu/strony/aplikacji.

Mocks vs Stubs = Testowanie funkcjonalne vs testowanie stanu => oznacza to że może w teście …


Czytaj dalej

Cypress - Fixtures

Opublikowano wto 01 lutego 2022 w qa • Tagi: cypress, fixtures, alias, this • 2 min read

cypress

Fixtures są plikami przechowującymi dane w ramach środowiska testowego - pozwala na jego modułową budowę. Przechowywanie danych po za plikiem testu a) pozwala na ich reużywalność (dostępność dla wielu testów) b) ma pozytywny wpływ na czytelność testów

Plik należy umieścić w folderze fixture a w testach należy odwołać się do niego …


Czytaj dalej

Cypress: przechodzenie pomiędzy elementami drzewa DOM

Opublikowano ndz 30 stycznia 2022 w qa • Tagi: testing, cypress • 1 min read

dom-html

Cypress i trawersowanie pomiędzy elementami drzewa DOM

children() - wydobywa dzieci wybranego elementu drzewa DOM / pozwala na przekazanie selektora w celu wybrania konkretnego dziecka np.

cy.get('#parent').children().should('have.length', 3)

cy.get('#parent').children('.active').should('have.class', 'child')

closest() - wydobywa najbliższego rodzica elementu DOM // również pozwala na …


Czytaj dalej

Cypress - Commands

Opublikowano sob 29 stycznia 2022 w qa • Tagi: cypress • 1 min read

cypress-commands

Wprowadzenie

Cypress jako taki zawiera różnego rodzaju komendy odpowiadający za konkretne przeprowadzanie testów mających wpływ na zachowanie się aplikacji, pozwala również na dodanie własnych komend tzw. custom commands - które nie są niczym innym niż funkcją które w łatwy sposób można łączyć z obiektami cypressowymi - to pozwala na zamknięcie pewnej powtarzalnej …


Czytaj dalej

Cypress: wprowadzenie cz. 2

Opublikowano ndz 16 stycznia 2022 w qa • Tagi: testing, cypress, wprowadzenie, then, promise, chaining, variables, zmienne • 3 min read

cypress

Cypress i tworzenie ciągów

Cypress oparty jest o tworzenie ciągów (łączeniu ze sobą funkcji w celu stworzenia testu). Cypress sam zajmuje się Promisami.

cy.get('textarea.post-body')
    .type('{enter}')

cy.get('textarea.post-body')
    .contains('xyz')
    .click()

cy.get('textarea.post-body')
    .find('.productname')
    .eq(1)
    .click()

cy.find() - szuka dziecka w …


Czytaj dalej

Cypress wprowadzenie

Opublikowano ndz 09 stycznia 2022 w qa • Tagi: testing, cypress, wprowadzenie, asercje, js, qa • 2 min read

cypress

Cypress wprowadzenie

Cypress jest oparty o bibl. Mocha (struktura test) oraz Chai (asercje, funkcje, wywołania).

Mocha 🥤

describe - opis testu / grupowanie serii tekstu / przyjmuje 2 argumenty - nazwę testu i funkcję (call back function)

it - test / pojedynczy test / przyjmuje 2 argumenty - nazwę testu i funkcję (call back function)

.only - wyłącza wszystkie inne …


Czytaj dalej

Appium wprowadzenie

Opublikowano ndz 19 grudnia 2021 w qa • Tagi: testing, wprowadzenie, tests, qa • 2 min read

appium

Instalacja:

    > brew install node      # get node.js
    > npm install -g appium  # get appium
    > npm install wd         # get appium client
    > appium &                # start appium
    > node your-appium-test.js # run your test

Pierwsze uruchomienie być może będzie wymagało -> Edit configurations -> podanie Android_Home (u mnie: /Users/user_name/Library/Android/sdk) + Java_Home (wpisz w terminal: /usr …


Czytaj dalej

Dobre zasady testowania

Opublikowano ptk 25 czerwca 2021 w qa • Tagi: cypress, testing, good practices, tests, qa • 2 min read

testing

Niedawno odbyła się zdalna konferencja prowadzona przez Applitools oraz Cypress nazwana Front-End Test Fest 2021. Jedeno z wystąpień było poświęcone dobrym praktykom pisania testów (link w źródłach) i dzisiejszy wpis jest ekstraktem z tego wystąpienia

Główna zasada: testy powinny być proste - "flat test desing"

Pisanie testów nie powinno być realizowane …


Czytaj dalej