Streamline GDS GUI test procedure
thomas-bc opened this issue · 5 comments
F´ Version | |
Affected Component |
Feature Description
The CI can test the fprime-cli
, but for the Flask GUI we need to manually test it before shipping a release. We need to create a test procedure with detailed steps to fully test the GDS GUI. This should make testing faster and more complete, easier to delegate, and is a better practice.
The test procedure can be a Markdown file, or any other appropriate format.
I know that there are some GUI testing automation tools out there, such as Squish which can programmatically test Qt GUIs. I don't think we need something like that for now - but I wonder if anyone knows of similar tools that could work in our case.
@thomas-bc I don't know much about it but the NASA's OpenMCT project uses Percy to do visual tests in their CI: openmct dashboard | Percy.
Could the OpenMCT
core team please share their opinion on this tool?
Let me ping the 4 most recent and major contributors to the project (sorry if they mind). @unlikelyzero @ozyx @shefalijoshi @akhenry
If I quickly browse the internet, there might be Lambdatest with a free version.
@ThibFrgsGmz thanks for reaching out!
We are using Percy as a simple image comparison library. The "driver" of our Percy implementation is Playwright.
Playwright allows a test to interact with a web application through a browser just as a user would. For more advanced tests, you can use playwright to manipulate the internals of a web browser or the web application under test. i.e. Simulating Web App behavior from a HTTP 500 error by manipulating network traffic
In our case, we're using playwright/test
as a JavaScript-based test framework, but Playwright also has native support for Python and the pytest framework.
A quick look at your flask implementation tells me that a good starting point might be the getting started with python playwright guide.
If you have any questions about our use of playwright, feel free to reach out to me. I've done some playwright demos for other JPL projects. For general questions about playwright, there's also a healthy community on the official channels.
Thank you both very much for the input! Seems very neat indeed. I'll definitely keep that in mind if/when we need to move forward with automated testing of our GUI.
Closing this issue as the manual procedure was added, which was the scope of this issue. We may revisit later if we need to add in automation to that.