By analysing a VNC session, we can create a draft of an openQA testcase (detecting keystroke, mouse click and generating fullscreen needles).
The project is to : - search for VNC protocol library existing - use (if possible) of the VNC protocol library to create a VNC to openQA testcase writer - integrate this in openQA - try to integrate a VNC HTML5 viewer in openQA (this would allow to bootstrap a openQA testcase mostly from webui
Looking for hackers with the skills:
Nothing? Add some keywords!
This project is part of:
Hack Week 13
Activity
Comments
-
almost 9 years ago by fcrozat | Reply
Incomplete and hit by roadblock: * worked initially on gtk-vnc and gvnccapture (screenshot code using gtk-vnc), which was crashing due to TLS/X509 authentication. * discovered using gtk-vnc was not a good idea, as you don't have access to VNC stream. * read extensive RFB protocol documentation: https://github.com/rfbproto/rfbproto * then research various VNC capture solutions: - vnc-reflector: http://sourceforge.net/projects/vnc-reflector/ - vnc2flv http://www.unixuser.org/~euske/python/vnc2flv/ - rfbproxy (and rfbplaymacro): http://rfbproxy.sourceforge.net/ and http://cyberelk.net/tim/rfbplaymacro/
- spend a lot of time to work on rfbproxy code (which is quite old) to get it to accept VNC session with recent server and client (due to some encoding / protocol evolution not supported by rfbproxy)
- played with wireshark and learned how to get it to decode VNC protocol (not fully automatic by default)
- fixed rfproxy to properly record key stroke and mouse button press, in VNC proxy mode
- couldn't get rfbproxy to export at the same time the screen frames, because it doesn't handle latest VNC encoding used by Tigervnc / Xvnc.
- the only way to have rfbproxy to handle decoding VNC stream into frames is to use it in "passive recording" mode (ie non proxy mode) but in that case, you miss all keystroke or mouse clics.
- roadblock, I don't see how to progress further with the current solution.
Current fixed code for rfbproxy is available at
https://github.com/fcrozat/rfbproxy/tree/tigervnc
Not sure if it is possible to continue any further with my choice. Maybe a better solution could be to re-implement rfbproxy with libvncserver/libvncclient ( https://libvnc.github.io/ )
Similar Projects
This project is one of its kind!