action #134840
closedcoordination #154768: [saga][epic][ux] State-of-art user experience for openQA
coordination #166556: [epic] Improved test reviewer user experience - Restart filtered jobs from /tests/overview
Show that an openQA job is busy in the early state of running instead of empty live view and log size:S
0%
Description
Motivation¶
If an openQA worker picked up a job but is busy in early stages, in particular asset caching, the job details might show an empty live view and empty live log with no good feedback what is going on, see screenshot
The user of the webUI can not see what the worker is doing and shows a lot of disturbing empty screen estate. The user experience can be improved by better reflecting that the job is still busy in early setup, potentially what it is currently doing and also not show big empty boxes. On the worker one can see that the job is already busy based on content in worker-log.txt and autoinst-log.txt
Errors can be seen in the developer console:
Establishing ws connection to wss://openqa.opensuse.org/liveviewhandler/tests/4570289/developer/ws-proxy/status
test_result.js:332 Received message via ws proxy: {"data":{"category":"cmdsrv-connection","reason":"URL to command server unknown"},"type":"error","what":"os-autoinst command server not available, job is likely not running"}
test_result.js:340 ignoring error from ws proxy: os-autoinst command server not available, job is likely not running
test_result.js:326 Connection to livehandler lost
Acceptance criteria¶
- AC1: The user of the webUI has a possibility to see the current state of the job in early stages, e.g. busy indicator as on index page, etc.
- AC2: No big blank frame with no content for a reasonable time
- AC3: The live view still shows up content as soon as the underlying SUT sends content, e.g. early bootloader frames
Suggestions¶
- Look into the errors reported by the websocket handler. Maybe there is a race condition here?
- Potentially this is also a regression
- Avoid showing a blank space where the image will be
- Do not show the image unless an actual image from the SUT is available
- Overlay a spinner that is hidden once an image is available
- Consider a manual test setup to reproduce that (one without and with)
Files
Updated by okurz about 2 months ago
- Assignee set to robert.richardson
- Target version changed from Tools - Next to Ready
Updated by okurz about 2 months ago
- Subject changed from Show that an openQA job is busy in the early state of running instead of empty live view and log to Show that an openQA job is busy in the early state of running instead of empty live view and log size:S
- Description updated (diff)
- Status changed from New to In Progress
Updated by openqa_review about 2 months ago
- Due date set to 2024-11-05
Setting due date based on mean cycle time of SUSE QE Tools
Updated by mkittler about 2 months ago
I'm currently running a job on my local machine and noticed that there's at least logs one can follow via the livelog panel, e.g.:
[2024-10-22T17:41:26.277880+02:00] [debug] [pid:45847] scheduling reboot_gnome tests/x11/reboot_gnome.pm
[2024-10-22T17:41:26.279221+02:00] [debug] [pid:45847] scheduling cleanup_before_shutdown tests/shutdown/cleanup_before_shutdown.pm
[2024-10-22T17:41:26.280209+02:00] [debug] [pid:45847] scheduling shutdown tests/shutdown/shutdown.pm
[2024-10-22T17:41:26.290531+02:00] [info] [pid:45860] cmdsrv: daemon reachable under http://*:20013/…/
[2024-10-22T17:41:26.292506+02:00] [info] [pid:45860] Listening at "http://[::]:20013"
Web application available at http://[::]:20013
[2024-10-22T17:41:26.295731+02:00] [debug] [pid:45847] git hash in 'sle/products/sle/needles': …
[2024-10-22T17:41:26.313487+02:00] [debug] [pid:45847] git url in 'sle/products/sle/needles': "gitlab@gitlab.suse.de:openqa/os-autoinst-needles-sles.git"
[2024-10-22T17:41:26.313690+02:00] [debug] [pid:45847] init needles from sle/products/sle/needles
Maybe it would make sense to simply show that panel in the expanded state by default and hide the empty image instead. Only if the image becomes available we'd change the state to what we currently have. This is just an idea to make the implementation simpler. Feel free to come up with something nicer :-)
Updated by robert.richardson about 2 months ago
Updated by robert.richardson about 2 months ago · Edited
I've added tests (see [this PR]), however they are not yet stable and fail sporadically with the following error:
t/ui/18-tests-details.t .. 19/? isElementEnabled: stale element reference: stale element not found in the current frame at /home/okurz/local/os-autoinst/openQA/t/ui/../lib/OpenQA/SeleniumTest.pm:78 at /home/okurz/local/os-autoinst/openQA/t/ui/../lib/OpenQA/SeleniumTest.pm line 81.
@okurz was able to reproduce the error.
I assume this happens due to tests-details:311
$driver->execute_script('window.enableStatusUpdates = false');
Any ideas on where i would have to move this line or how to modify it ?
Updated by livdywan about 2 months ago
- Status changed from In Progress to Feedback
Updated by robert.richardson about 1 month ago
- Status changed from Feedback to Resolved
https://github.com/os-autoinst/openQA/pull/6023 (merged) adds the actual loading indicator.