I would have actually recommend STAF because I had pretty good
experience when I used it several years ago. Back then I used their
STAX language, but I've grown so allergic for using XML for scripting
that I'd nowadays just use the STAF services directly from Python (or
some other language they support).
STAF is good choice especially if you have machines with multiple
operating systems and some of them have Windows. If you only have
unixy machines, you can often do easy tasks like copying files and
starting processes simply using SSH and SCP.
One relatively new tool that might work in your case is Fabric
<http://fabfile.org/>. I've never used it myself, but it looks really
cool for all kind of deployment tasks. I'm sure there are other
possibilities too. What tools have others used? How did they work?
> I haven't decided whether I should do STAF in the start up batch file or do it inside RF - any
> suggestions?
This depends on the context, but typically I try to do this kind of
setup before starting the actual test execution.
> But I am not able to find solution to my second question - how to use
> more than one libraries from the remote system?
Currently you need to start multiple remote servers to different
ports. You can then take the libraries into use like this:
*** Settings ***
Library Remote http://1.2.3.4:1234 WITH NAME First Lib
Library Remote http://1.2.3.4:1235 WITH NAME Second Lib
We've discussed making it possible for one remote server to host
multiple libraries, but nobody has yet had time to implement this
support.
> I would like to use RF standard and external libraries from the remote system as well.
Basically you need to install the needed libraries into the remote
machine separately. With Python libraries that can only mean copying
the source files, and there's even an interesting enhancement idea to
make possible to upload libraries via the Remote interface:
http://code.google.com/p/robotframework/issues/detail?id=587
Some of the standard libraries require also Robot Framework itself to
be installed on the same machine, but you can try to remove those
dependencies if installing the framework to the remote machine isn't
easy. That has actually been done for the OperatingSystem to some
extend: http://code.google.com/p/robotframework/issues/detail?id=181
Cheers,
.peke
--
Agile Tester/Developer/Consultant :: http://eliga.fi
Lead Developer of Robot Framework :: http://robotframework.org
This should work. I'd probably create a separate script with this kind
of content:
import sys
from robot.libraries.OperatingSystem import OperatingSystem
from robotremoteserver import RobotRemoteServer
RobotRemoteServer(OperatingSystem(), *sys.argv[1:])
> Also, I think the idea discussed in http://code.google.com/p/robotframework/issues/detail?id=587
> will be very helpful in my scenario, so I am wondering about its
> release decision as well as if I can use it before it gets released?
I like the idea too. I'd like to see the implementation before
commenting can it be incorporated with the current remote
infrastructure, though.
This is very clever hack! The will be problems if libraries have
conflicting methods or other state, but in many cases this probably is
enough.