Let Your Team Run Playwright Tests from Allure TestOps — Without Touching Code

In most teams, automated UI tests live in a developer's terminal or buried deep in CI pipelines. But what if your Product Managers, Developers, and even Project Managers could run those same Playwright tests from a browser — without writing a line of code?
At Snap eHealth, we made that possible by integrating Allure TestOps with our Playwright + GitHub Actions setup. Now anyone on the team can:
✅ Search for tests by tag, title, or requirement
✅ Select and launch specific tests
✅ View video replays, traces, logs — all in one place
✅ Trigger runs in lower environments (QA, staging, prod-like)
✅ Get results in Slack, complete with links and pass/fail breakdowns
Here’s how we did it — and how you can too.
Why Let Non-Engineers Trigger Playwright Tests?
Before we dive into the how, let’s talk about the why.
Giving non-QA roles access to test execution creates:
Faster Feedback Loops
- PMs can validate bug fixes or feature behavior themselves
- Engineers can rerun failed tests before tagging QA
- Designers can visually inspect UI behaviors using video trace outputs
Shared Understanding
Everyone on the team starts to understand what’s automated, what’s not, and where test gaps live.
Reduced QA Bottlenecks
You don’t need to be the gatekeeper. Let others validate changes independently.
Our Stack
Here’s the ecosystem we used to make this work:
- Playwright (with Python + Pytest)
- GitHub Actions for CI
- Allure TestOps as our test case manager and orchestrator
- Zephyr Scale for manual test case management
- Jira for requirements tracking
Step-by-Step: Running Playwright Tests via Allure TestOps
1.Tag Tests in Playwright
We use @pytest.mark.allure_label
tags in our Playwright tests to map them cleanly to Allure.
@pytest.mark.allure_label("feature", "Login")
@pytest.mark.allure_label("story", "Reset Password")
@pytest.mark.zephyr("ZEPHYR-ID-1234")
def test_password_reset():
These labels let us filter and organize tests by feature, story, or requirement inside Allure TestOps.
2.Link Allure TestOps to GitHub
Inside Allure TestOps:
- Go to Administration → Integrations → GitHub
- Add your GitHub repository and grant a token with
repo
andworkflow
scopes - Enable repository_dispatch as the trigger mechanism
This allows Allure to trigger GitHub Actions directly with parameters like branch, environment, and test ID.
3.Create a Custom GitHub Actions Workflow
You’ll need a reusable GitHub Actions workflow that accepts parameters from Allure:
# .github/workflows/allure-run.yml
on:
repository_dispatch:
types: [allure-trigger]
jobs:
run-playwright:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install deps
run: pip install -r requirements.txt
- name: Run tests
run: |
pytest tests/ \
--allure-testplan=testplan.json \
--alluredir=allure-results
- name: Upload results
uses: actions/upload-artifact@v4
with:
name: allure-results
path: allure-results
This lets Allure control which tests to run via the testplan.json
.
4.Map Allure Test Cases to Playwright Tests
Inside Allure TestOps:
- Import your test results from a Playwright run (via
allure generate
) - Create test cases in Allure based on these
- Link each test case to the corresponding Playwright test file/function
Now Allure knows what each test is and can trigger it directly.
5.Allow Manual Test Launch from Allure UI
With the integration live, your team can:
- Navigate to the test case or test suite
- Click “Run”
- Select the environment (QA, staging, prod)
- Launch the run via GitHub Actions
All without touching a terminal.
6.Capture Artifacts: Video, Traces, Logs
Playwright makes it easy to record everything during test execution:
# In your conftest.py or fixture
browser = playwright.chromium.launch(headless=False)
context = browser.new_context(record_video_dir="videos/")
We upload the following after each run:
allure-results/
videos/
playwright-report/
- Any test logs or trace files
These get attached in Allure so anyone — not just QA — can explore test failures visually.
7.Slack Notifications with Run Links
We also wired up a Slack bot to notify our #quality channel when a run completes:
- name: Notify Slack
uses: slackapi/slack-github-action@v1.24.0
with:
payload: |
{
"text": "✅ Playwright tests completed: <${{ steps.run.outputs.url }}|View in Allure>"
}
This makes quality work more visible and invites curiosity from the rest of the team.
Bonus: Mapping Tests to Jira Requirements
Allure supports linking test cases to Jira stories and tickets. So our PMs can:
- Filter Allure test cases by Jira ticket
- See which requirements have automated test coverage
- Identify gaps and request new tests accordingly
What Changed for Us?
Here’s what happened when we rolled this out:
✅ Fewer back-and-forths about what’s tested
✅ Engineers re-running tests themselves pre-merge
✅ PMs validating fixes without pulling in QA
✅ Test visibility improved dramatically
✅ Our test coverage reports got used — not ignored
You Can Start Small
You don’t need to roll this out for the whole org at once.
Start by letting one or two PMs or developers use Allure to run a subset of smoke or regression tests. Get their feedback. Then scale it.
Final Thoughts
Test automation isn’t just for QA anymore. When you expose it through tools like Allure TestOps, you empower your entire team to engage with quality.
This is how we make quality a shared responsibility — not just a department.
Want help setting this up for your team?
Feel free to connect with me on LinkedIn and shoot me a message.
Comments ()