Each tutorial teaches one Test Junkie concept with examples you can run, from core features to running in CI and a full Selenium WebDriver framework.
Concepts
The capabilities that set Test Junkie apart, each explained with working examples.
Parallel execution
Thread limits for suites and tests, opting out with parallelized=False, and running parameter variants side by side.
Multi-layer parametrization
Suite-level and test-level parameters= multiply into tracked variants: 2 environments × 3 browsers = 6 runs from one method.
Retrying flaky tests
retry_on and no_retry_on retry flaky infrastructure, never real bugs. With a real API example.
Metadata and targeting
Owner, feature, component, tags and priority, then run only the matching subset from Python or tj run.
Shared setup and teardown
Write setup, checks and cleanup once in a Rules subclass and attach it to any suite with rules=.
Test results and listeners
Read every result after a run, or react as each test finishes with a Listener: Slack alerts, a results database, custom reports.
Pipelines
Running Test Junkie where it matters: in your pipeline, with results you can act on.
Patterns
Short, focused patterns for everyday problems.
Series
Build a small UI test framework from scratch, then test a real website with it. Each part adds one layer to the framework.
src/ ├─ utils/Settings.py P1 └─ pages/ ├─ Browser.py P1 ├─ UiObject.py P2 ├─ BasePage.py P3 ├─ HomePage.py P3 ├─ DocumentationPage.py P3 └─ components/ ├─ PageHeader.py P3 └─ PageFooter.py P3 tests/ ├─ suites/NavigationSuite.py P4 ├─ suites/DocumentationSuite.py P4 └─ TestRules.py P5
Part 1 · 10 min
Managing browsers
A Browser class that gives every test thread its own WebDriver, so tests can run in parallel.
Part 2 · 10 min
Wrapping UI elements
A UiObject that waits, finds and acts, so tests never sleep.
Part 3 · 15 min
Page objects
Pages and shared header/footer components, with locators that survive a redesign.
Part 4 · 15 min
Writing tests
33 parameterized navigation checks from two methods, run in parallel with tj run.
Part 5 · 10 min
Catching JavaScript errors
One rule that fails any test that causes a JavaScript error.