Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
154 lines (100 sloc) 5.85 KB


ExtensiveAutomation Python automation server
Copyright Copyright (c) 2010-2019 Denis Machard
License LGPL2.1
Docker Hub
Google Users

Table of contents


ExtensiveAutomation is a generic automation framework for integration, regression and end-to-end usages. The framework provided a rich and collaborative workspace environment. The server can run on both Python 2 and Python 3, and also run on Linux and Windows.


PyPI package

  1. Run the following command

     pip install extensiveautomation_server
  2. Type the following command on your shell to start the server

     extensiveautomation --start
  3. Finally, check if the server is running fine.

Docker image

  1. Downloading the image

     docker pull extensiveautomation/extensiveautomation-server:latest
  2. Start the container

     docker run -d -p 8081:8081 -p 8082:8082 -p 8083:8083 \
                --name=extensive-server extensiveautomation/extensiveautomation-server

    If you want to start the container with persistant tests data, go to Docker Hub page.

  3. Finally, check if the server is running fine.

Source code

  1. Clone this repository on your linux server

     git clone
  2. As precondition, install the additional python libraries with pip command:

    • Python3 environment

        pip install wrapt pycnic lxml jsonpath_ng
    • Python2 environment, the libxslt library must be installed

        pip install wrapt scandir pycnic lxml jsonpath_ng
  3. Start the server. On linux the server is running as daemon.

     cd src/
     python --start
  4. Finally, check if the server is running fine.

Testing if server running

  1. Please to take in consideration the following points:

    • The server is running on the following tcp ports (don't forget to open these ports on your firewall):
      • tcp/8081: REST API
      • tcp/8081: Websocket tunnel for app client
      • tcp/8082: Websocket tunnel for agents
    • The admin, tester and monitor users are available and the default passoword is password.
    • The Common project is created by default, attached to the previous users.
    • Swagger for the REST API is available in the scripts/swagger folder.
  2. Checking if the REST api working fine with curl or postman.

    curl -X POST \
         -H "Content-Type: application/json" \
         -d '{"login": "admin", "password": "password"}'

Adding plugins

Plugins allow to interact with the system to be controlled. But by default the server is provided without plugins. So you need to install them one by one according to your needs.

Adding reverse proxy

Adding a reverse proxy the from of server enables to expose only one tcp port (8080) and to have a tls link between the client and the server. Also, the default behaviour of the QT client and toolbox is to try to connect on the tcp/8080 port (can be modifed).

If you want to install a reverse proxy, please to follow this procedure.

  1. Install the example provided scripts\reverseproxy\extensiveautomation_api.conf in your apache instance. If you install the reverse proxy on a new server, don't forget to replace the address by the ip of your extensive server.

     Listen 8080
     <VirtualHost *:8080>
       SSLEngine on
       SSLCertificateFile /etc/pki/tls/certs/localhost.crt
       SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
       LogLevel warn
       ErrorLog  /var/log/extensiveautomation_api_error_ssl_rp.log
       CustomLog /var/log/extensiveautomation_api_access_ssl_rp.log combined
       Redirect 307 / /rest/session/login
       ProxyPass /rest/
       ProxyPassReverse /rest/
       ProxyPass /wss/client/ ws:// disablereuse=on
       ProxyPassReverse /wss/client/ ws:// disablereuse=on
       ProxyPass /wss/agent/ ws:// disablereuse=on
       ProxyPassReverse /wss/agent/ ws:// disablereuse=on

    With this configuration in apache, the REST API is now running on the port tcp/8080 (tls).

  2. Checking if the REST api working fine with curl command.

    curl -X POST --insecure \ 
      -H "Content-Type: application/json" \
      -d '{"login": "admin", "password": "password"}'
You can’t perform that action at this time.