Add TVK-UI-Framework: UI automation suites for TVK backup and restore with feature integration test - #21
Open
trilio-nikita wants to merge 1 commit into
Open
Add TVK-UI-Framework: UI automation suites for TVK backup and restore with feature integration test#21trilio-nikita wants to merge 1 commit into
trilio-nikita wants to merge 1 commit into
Conversation
Adds a self-contained framework under TVK-UI-Framework/ covering the TVK
web console and the Kubernetes API, on OpenShift and non-OpenShift
(AKS/EKS/GKE) clusters.
Suites:
- tests/test_e2e_trilio.py Playwright end-to-end console lifecycle
- tests/test_feature_integration.py CR-driven backup types, policies,
scheduling and retention
- stress_tvk.py resource-aware repeated backup/restore
across a Helm release, an operator-managed
app and a KubeVirt VM
Supporting code:
- pages/ page objects, one per console screen; login strategy is
pluggable per cluster flavour (OCP OAuth vs kubeconfig upload)
- utils/ cluster client, CR builders, Helm and storage-class helpers
- restore_helm_only.py / restore_custom_only.py retry just the restore
against an existing backup
- explore_*.py diagnostics that dump live DOM and CR state
No credentials are committed. The pytest suites read them from a
git-ignored local config or the environment; the standalone *.spec.js /
*.spec.ts recordings ship with blank credential fields and the README
explains what to fill in. Test output and the oc client binary are
excluded, and the README documents how to obtain oc.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Collaborator
Author
|
@sachin-trilio could you review this when you get a chance? It adds a UI automation framework under Three suites: a Playwright end-to-end console lifecycle, a CR-driven feature-integration suite (backup types, policies, scheduling, retention), and a resource-aware stress suite that cycles backup/restore across a Helm release, an operator-managed app and a KubeVirt VM. Worth knowing while reviewing:
Validated against TVK 5.4.0-rc.5 on OpenShift and TVK 5.4.0 on AKS; the stress suite completed 18/18 backup and restore operations over 3 rounds. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a self-contained UI automation framework under
TVK-UI-Framework/. Nothing outside that directory is touched.What it covers
tests/test_e2e_trilio.pytests/test_feature_integration.pystress_tvk.pyAlso included:
pages/page objects,utils/cluster and CR helpers,restore_*_only.pyfor retrying just a restore against an existing backup, andexplore_*.pydiagnostics that dump live DOM/CR state.Cluster support
The login strategy is pluggable, so the same suites run on OpenShift (OAuth) and on AKS/EKS/GKE (kubeconfig upload). Adding another flavour means subclassing
BaseLoginPageand registering it - the target, policy, backup plan and restore page objects are not OpenShift-specific.Credentials
None are committed:
*.spec.js/*.spec.tsrecordings ship with blank credential fields, and the README explains what to fill inTest output (screenshots, logs, generated reports) is git-ignored, as is the
occlient binary - it exceeds GitHub's file-size limit, and the README documents how to obtain it.Validation
target_browsing,helm_transform,custom_transform