Juice Shop TAS
UI test automation solution for OWASP Juice Shop
- .NET
- C#
- Playwright
- gTAA
Overview
A end-to-end UI test automation solution built on NUnit and Playwright for .NET, structured as a four-layer gTAA test automation architecture, testing a Docker containerized instance of OWASP Juice Shop.
Outside of my TAS knowledge, this is also an opportunity to showcase my ability to orchistrate AI agents to deliver high quality code, per requirements, and ahead of schedule. I had the agents record and reference the architectural decision records (ADRs) based on the requirements and iterative directions given. Those can be found in the solution under the 'docs' directory.
What's here
- Layered architecture - Four .NET projects with a single-direction dependency graph enforced by the compiler.
- Architecture as tests - 6 NetArchTest rules that fail the build if a layer boundary is crossed.
- Deterministic SUT - Image pinned by digest, config overlay mounted, container healthcheck for a distroless image.
- Diagnosable failures - Playwright trace + screenshot on failure only, attached to the test result.
- Parallel-safe - Fixture-level parallelism, isolated browser context per test, self-provisioning test data.
- CI/CD - GitHub Actions with test reporting, artifact upload, and an Allure report published to Pages.
Why Juice Shop
As a consultant, it's difficult to reference and display my past projects without being subject to NDAs and client privacy clauses. Juice Shop is an comprehensive open-source ecommerce project, which allows to me to publicly showcase my craft over an application similar to the ecommerce applications I've developed over in the past. Feel free to explore the codebase, and/or run the Docker instance and the test scripts.