Dne 03. 10. 18 v 11:00 Ladislav Slezak napsal(a): > I have spent two hackweeks developing an automatic YaST UI testing > framework. It's based on a REST API (HTTP with JSON format), it can not only > send the user input actions but can also test the content of the > current dialog. > > The advantage is that the REST API is not bound to any programming language, > you can write a client driving an YaST installation in any language. With > help of > "curl" and "jq" it would be possible even in shell... (but I'd avoid it)
I'll definitely support THIS way of development. It solves more things at once. Not only automated testing. Can it run the "UI" actually WITHOUT the UI, just the libyui layer, but without qt/ncurses called? E.g., libyui-rest-api? > The YaST UI actions which can be done by user are quite limited (e.g. you can > press a button, select a checkbox, write something to an input field... and > that's basically it). So made a simple Cucumber wrapper which defines such > steps. Yes, select a radio button, edit (editable) combo-box, but in general, it's true. > Of course, if you do not like Cucumber you can use any other framework, you > could extend the current openQA or start something new from scratch. That's > a big advantage of the generic REST API, if the testing frontend does not > fit any more you can easily change it without affecting YaST itself. We could > even > use a different frontend in our CI (Travis/Jenkins) and different one in > openQA built on top of the same REST backend. I'm wondering why I haven't asked for continuing on the project out-of-hackweek? Probably bugs and features are the reason. > See more details about the REST API in my hackweek blog posts [1], [2]. > > If you want to give it a try I have prepared RPM packages for SLE15/Leap15 > in [3], how to install the packages is described in the Cucumber wrapper > at GitHub [4]. > > (Note: I built the packages several months ago, if something does not work > now just ping me.) > > > This project is far from complete, there are still some missing parts > like support for some specific widgets, security improvements (authentication > and encryption, isolating to a separate plugin so the REST API can be > installed > only when needed, not included in the default installation, etc...). And it can bring what people wanted long time ago: remote management, mass-management, ... it HAS TO BE a plugin only, though. > But the prototype is already able to test the default openSUSE/SLE > installation well, > (see the screencasts in the blog) so I think it would make sense to at least > think > about this possibility as an alternative to the UI macro player. > > If you have any questions about this project just ask me. When you can finish that :)? > Note: Because this REST API is available for any libyui application and is > not YaST > specific we could possibly cooperate with the Mageia (formerly Mandriva, > formerly > Mandrake) developers, their management tools also use the libyui [5] and > having a > testing framework would probably help them as well... Cool stuff, cool ideas, I must have been blind that I haven't seen the potential as I see it now :) Thanks! Lukas -- Lukas Ocilka, Systems Management Team Leader & YaST Product Owner SLE Department, SUSE Linux 🌲 Please consider the environment before printing this e-mail ☂ Handle with care - Your reply can be stored in the cloud ⚠IMPORTANT: The contents of this email and any attachments are confidential. They are intended for the named recipient(s) only. If you have received this email by mistake, please, notify the sender immediately and do not disclose the contents to anyone or make copies of thereof. -- To unsubscribe, e-mail: [email protected] To contact the owner, e-mail: [email protected]
