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 mad skills in:

Nothing? Add some keywords!

This project is part of:

Hack Week 13


Comments

  • lnussel
    about 3 years ago by lnussel | Reply

    you don't need to implement html5 I think. openQA already has the live view with some javascript running. so you could grab keystrokes there and send it to the server

    • lnussel
      about 3 years ago by lnussel | Reply

      s/html5/vnc/

      • coolo
        about 3 years ago by coolo | Reply

        if you ever used the live view in a slow network, you realize we do need VNC :)

  • coolo
    about 3 years ago by coolo | Reply

    https://github.com/kanaka/noVNC/wiki/KeyEvents - having the keys handled by a library sounds like a good idea, it's a mess in javascript

  • fcrozat
    about 3 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!