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

  • almost 9 years ago: mlin7442 liked this project.
  • almost 9 years ago: RBrownSUSE liked this project.
  • almost 9 years ago: oholecek liked this project.
  • almost 9 years ago: zhangxiaofei liked this project.
  • almost 9 years ago: acho-novell liked this project.
  • almost 9 years ago: bchou liked this project.
  • almost 9 years ago: pgonin liked this project.
  • almost 9 years ago: fcrozat started this project.
  • almost 9 years ago: fcrozat originated this project.

  • Comments

    • lnussel
      almost 9 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
        almost 9 years ago by lnussel | Reply

        s/html5/vnc/

        • coolo
          almost 9 years ago by coolo | Reply

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

    • coolo
      almost 9 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
      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!