Skip to main content
강홍재/ James
← Work
Live2025 · Solo Builder· Started(First Commit date)

QAlity - Playwright × Jira

Triggers Playwright automation from Jira issues and writes results back as comments.

  • Playwright
  • Python
  • Jira API

Setup

Problem

The manual regression-testing loop - file an issue → run → write results → move state - lives in separate places, which kills consistency. Runs happen locally, results live in memory, state transitions happen later, and records leak in between.

Context

A workflow-integration demo: it treats a Jira Cloud (QAlity) issue as the unit of a test scenario, then posts the pytest + Playwright result back as a Jira comment and transitions the issue status. Naver search scenarios (QAP-1..3) show the round trip of issue → run → report → status transition.

Users

Teams whose test runs and issue tracker live apart, and QA consulting situations that need to show, concretely, "how do you actually bring test automation into our workflow?"

Build

What I did
  • Treats a Jira (QAlity) issue as the scenario unit and runs pytest + Playwright
  • Posts the result back to Jira as an ADF (Atlassian Document Format) comment
  • Auto-transitions the Jira issue status by outcome
  • Logs failures separately to test_failures.log
Product decisions
  • Focus on showing the round trip, not the tool - keep the scenarios to three Naver searches and instead complete issue → run → report → status transition end-to-end
  • Results as a Jira comment, not a human-read log - a QA artifact has to live inside the issue tracker to connect to the team's work
  • Deliberately include a forced-failure case (QAP-2) to confirm the integration reports and transitions failures accurately too
QA considerations
  • Jira round-trip integrity - issue → run → comment reply → status transition runs end-to-end with nothing dropped in between
  • Re-run idempotency - re-running the same issue doesn't double up comments/status or leave them inconsistent
  • A forced-failure case (QAP-2) confirms that failures, not just successes, are reported and transitioned accurately
  • Success/failure outcomes map to the correct Jira status transition - no mis-transition where a pass lands in a failed state
  • The result comment conforms to the ADF (Atlassian Document Format) schema so it renders in Jira without breaking
  • Flaky tests - test_failures.log lets you tell a real regression from instability

Outcome

Metrics

Portfolio/demo scale (a single Python piece, three scenarios). No team-adoption metrics - the point is to show the Jira ↔ Playwright workflow round trip itself.

Retrospective
  • Using Naver search as the scenario is fine for a demo, but in a real engagement the value only lands once it's swapped for the client's own regression scenarios. The integration skeleton is reusable; the scenarios are not - and that is stated plainly.
Tech stack
  • Python 3.11+
  • Playwright
  • Jira REST API