diff options
Diffstat (limited to 'VisualNaCro/README')
-rw-r--r-- | VisualNaCro/README | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/VisualNaCro/README b/VisualNaCro/README deleted file mode 100644 index 8c92b32..0000000 --- a/VisualNaCro/README +++ /dev/null @@ -1,88 +0,0 @@ -This is VisualNaCro. - -DISCLAIMER: recorder.pl is not yet functional. - -What does it? - - It is a Perl module meant to remote control a VNC server. - - It includes a recorder (written in Perl) to make it easy to - record a macro, which is just a Perl script, and which you can - modify to your heart's content. - - The most important feature, however, is that you can mark a - rectangle which the Perl script will try to find again when you - run it. Thus when you play a game and want to hit a certain button, - you just hit the Ctrl key twice, mark the button, and from then on, - all mouse movements will be repeated relative to that button, even - if the button is somewhere else when you run the script the next - time. - - If you know Tcl Expect, you will recognize this approach. Only this - time, it is not text, but an image which is expected. - -How does it work? - - It acts as a VNC proxy: your Perl script starts its own VNC server. - The script now can intercept inputs and outputs, and act upon them. - In order to write a macro, start - - recorder.pl --script my-macro.pl --timing host:port - - connect with a vncviewer of your choice to <host2>:23, where <host2> - is the computer on which recorder.pl was started (not necessarily the - same as the VNC server!). Now your actions are recorded into - my_macro.pl, and the images you want to grep for will be saved as - my_macro-1.pnm, my_macro-2.pnm, ... - - In order to finish the script, hit Ctrl twice and say "q". - -Why did I do it? - - Because I could ;-) - - No really, I needed a way to write automated tests. While there - exist a lot of OpenSource programs for web testing, I found none - of them easy to use, and for GUI testing I found xautomation. - - Xautomation has this "visual grep" (or "graphical expect") feature: - given an image it tries to find it on the desktop and returns the - coordinates. Unfortunately, there is no easy way to record macros - with it, and it only works on X11. - - As I know VNC pretty well, and there are VNC servers for every OS - and gadget, I thought it might be cool to have this feature to - control a VNC server. - - Actually, it makes it even easier: with plain X11, for example, you - can not know where on the screen the action is if you don't check - the whole screen. This complex problem is beautifully addressed - in Karl Runge's x11vnc. - - My main purpose is to run regression tests on different browsers, - which I can easily do by starting Xvnc and using VisualNaCro. - -How did I do it? - - I wondered long about how to do it. I couldn't take the same approach - as xautomation: I cannot connect to the VNC server thousand times - per second. So I decided to create an interface of LibVNCServer/ - LibVNCClient for use in a script language. - - Fortunately, this task is made very, very easy by SWIG. As Perl - is one of my favorite script languages, I decided to use this. - But SWIG makes it easy to use the very same interface for other - popular languages, so you are welcome to port VisualNaCro to - the language of your choice! - -Isn't it pronounced "Visual Macro"? - - Yes. But I liked the Visual Na Cro play of acronyms. I'm sorry if - you don't find it funny. - -What's the license? - - GPL. It is based on LibVNCServer/LibVNCClient, so it has to be. - If you want to port this package to use vncreflector, which has a - BSD license, go ahead. - |