Giter Site home page Giter Site logo

Comments (2)

damies13 avatar damies13 commented on August 12, 2024

My thinking on this issue is that the best way to resolve it will be to use docker containers, there already exist windows, MacOS and Linux docker images, so I expect you could produce a docker template with the OS required, the application to be tested, robot framework + RF Libraries needed for the AUT and rfswarm-agent.

A docker container typically is assigned 2GB ram and 2 CPU's this means a typical 8GB desktop could run 4 containers, or if the ram is upgraded to 16GB could run about 8 containers.

I found a docker example template that had robotframework + robotframework-seleniumlibrary, I added rfswarm-agent to this template and was able to run several selenium browser sessions with it, it was a bit rough as I needed to install a newer python version. I need to spend more time investigating and documenting how to do this nicely, in the bean time if someone needs this functionality hopefully this info will help you to a solution.

from rfswarm.

damies13 avatar damies13 commented on August 12, 2024

I had some other ideas about this today:

  • Docker Containers typically don't have GUI's but I found I can run XVFB on a Linux docker, not sure what to do about Windows/MacOS docker containers yet
  • Virtual machines and containers (I know this works)
    • any virtual machine software will work, the disadvantage is you'll have the overhead of the full OS in each VM
    • Proxmox Containers work well (Linux only?) can run XVFB in a Proxmox Container
  • On Windows run the agent as a service with different user accounts
    • create n windows user accounts (local or domain accounts, domain accounts, are probably better)
    • use srvany from the windows resource kit to create n number of windows services (one per user account)
    • configure the services to run as a nominated account (not SYSTEM)
    • When configuring the command line for service you'll probably want to use some of these options:
      • -a %HOSTNAME%-%USERNAME% - so that each agent has a unique name
      • -i %USERPROFILE%\rfswarmAgent.ini- This will give each agent it's own ini file without having to hard code them
      • -m http://yourmanager:8138/ - this might make it easier to change the manager if needed, just edit the command line options on the service, but then it might be easier to edit the ini files in the user profile directories too
  • On Linux run the agent in multiple XVFB's
    • write a shell script that takes a number as an argument (e.g. variable might be called $AGENTNO)
    • script will first start XVFB on the display number $AGENTNO
    • script would then set the display variable for the display number $AGENTNO ( 0:$AGENTNO ?)
    • script would then start the agent with -a $HOSTNAME-$AGENTNO so that each agent has a unique name
  • On MacOS run the agent as multiple users

I think the approach chosen will need to vary depending on the OS the GUI app need to run on, I think the above gives a reasonable option for each OS.

from rfswarm.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.