-
Notifications
You must be signed in to change notification settings - Fork 86
Migrate Harbor UI E2E tests from Robot + Selenium to Playwright #268
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
7534034 to
10ae484
Compare
|
Hi @bupd , We may need more thoroughly mindful investigation on the harbor whole robot-case code base, especially on the UI part.
|
I don't get this. Why do we need a cross environment - what cross environment mean here ?? Please explain.
This makes no sense. The goal is clearly mentioned here https://github.com/goharbor/community/pull/268/files#diff-e9c149ab1ab59f390feca2254d8ccd8c76643c1016b5e6651c7dcd712341ada2R26 We are not removing Robot from areas where it might be the right tool. I am sure that for UI tests robot is a inadequate tool. We are eliminating XPath-dependent UI flakiness by shifting only those tests to Playwright. |
|
Hi @bupd , Generally, One of our key acceptance standards is do not decrease the current quality which would reflects in these criteria that you need to take it consideration:
Could you please help to demonstrate in your proposal how to achieve above goals or solutions for the potential issues? Best, |
|
I believe there're still disagreements about this proposal. Miner has expressed a lot of concerns in last week's community meeting. We should make sure the comments are resolved before this proposal can be merged. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @bupd
Please help to update the proposal per this comment and the discussion we had last month.
#268 (comment)
Best,
Miner
@reasonerjt I would like to clarify that the concerns have been addressed in the previous community meeting. I was in OSS summit for past week. currently getting back on this. Only thing pending on this is to update the proposal with screenshots of reports and add more info on the running this containerised, environments. as we discussed earlier I am currently recovering will update the proposal shortly. Thanks for understanding |
|
@MinerYang @stonezdj @reasonerjt All concerns have been addressed. |
|
|
||
| ### Portability & Containerization | ||
| - Playwright works consistently across Jenkins, GitHub Actions, GitLab, air-gapped networks, and plain shell environments. | ||
| - A single container image can include Playwright browsers + required CLIs (docker, helm, cosign, notation, oras, curl, jq). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the whole containerized process, I 'believe that you've had a PoC of all these criteria. Could you please help to adding more details , like:
- How''s the ready-to-use Dockerfile that build for our play-wright e2e-UI engine would looks like? ref to https://github.com/goharbor/harbor/blob/main/tests/test-engine-image/Dockerfile.ui_test
- How' s the running cmd should looks like.
- Does play-wright support key-word driven execution? How's the cmd should looks like?
e.g.
E2E_IMAGE=goharbor/harbor-e2e-engine:play-wright-ui
# Run tests by title
docker run -i -v <....> -e <....> -w <...> $E2E_IMAGE npx playwright test -g "add a todo item"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-
https://github.com/bupd/harbor/blob/87b9f9722d3113653aad792480a17fc11731d4f0/src/portal/e2e/Dockerfile this is the POC dockerfile
-
playwright do support key-word driven execution like robot-framework. They have an extensive official documentation around this here - https://playwright.dev/docs/running-tests#run-specific-tests
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i will update the proposal with details of these. also give a simple example
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, And all these details would be better to presents in the proposal.
| - It supports fixtures and helper modules. https://playwright.dev/docs/test-fixtures | ||
| - Skipping, tagging, grouping, and environment-driven execution are built-in https://playwright.dev/docs/test-annotations | ||
| - Playwright can run CLI operations via Node's `child_process` reliably (docker, helm, oras, cosign, notation). | ||
| - Reports, videos, traces, retries, and serial execution already meet & exceed current quality standards. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would like better to have a full-chain build and running process demo for several specific cases, and presents the demo in the proposal as a Poc.
These cases demo should have presents these criteria I have mentioned before.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- feat: Migrate Trivy.robot(Security Hub Testcase) to playwright harbor#22591 pr covering bigger testcase with securityhub interacting with harbor UI, trivy etc. this PR also showcases full build and test workflow.
88041b7 to
f3d3a2f
Compare
Signed-off-by: bupd <[email protected]>
Expand on the benefits and features of using Playwright for UI testing, including portability, containerization, and improved debugging capabilities. Outline goals and non-goals for the migration process from Robot tests to Playwright. Signed-off-by: Prasanth Baskar <[email protected]>
Signed-off-by: bupd <[email protected]>
Add Technical Considerations section covering: - Process orchestration and parallelism handling - Credential safety in CI environments - SSH operations support - Reporting comparison with Robot Framework Clarify proposal scope to UI E2E tests only, with infrastructure tests remaining in Robot Framework. Remove bold formatting per style guide. Signed-off-by: bupd <[email protected]>
Update Dockerfile to Ubuntu 20.04-based image matching Robot Framework structure. Add comprehensive Q&A section answering: - How running commands look like (Docker and direct execution) - Keyword-driven execution support with real examples Include references to PRs #22462 and #22591 showing actual implementation. Signed-off-by: bupd <[email protected]>
…hots Add three screenshots demonstrating Playwright reporting capabilities: - HTML test report showing all tests passing - Video recording feature in test reports - Interactive debug mode with Playwright Inspector Signed-off-by: bupd <[email protected]>
f3d3a2f to
0374737
Compare
|
@MinerYang @stonezdj @reasonerjt also added relevant screenshots of test reports, debugging, networking capabilities. please take a look. Thanks |
Tracking Issue: goharbor/harbor#22134