# ExtensiveAutomation
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/extensiveautomation-server)
![](https://github.com/ExtensiveAutomation/extensiveautomation-server/workflows/Python%20Package/badge.svg)
![](https://github.com/ExtensiveAutomation/extensiveautomation-server/workflows/Docker%20Image/badge.svg)
**ExtensiveAutomation** enable you to create custom workflows to automate your project.
- a workflow is the combination of differents actions.
- an action is individual python code source with enriched parameters.
The architecture is composed of 3 parts:
- [automation server](https://github.com/ExtensiveAutomation/extensiveautomation-server)
- [web client (optional)](https://github.com/ExtensiveAutomation/extensiveautomation-webclient)
- [remote agent (optional)](https://github.com/ExtensiveAutomation/extensiveautomation-agent)
## Table of contents
* [Server Installation](#server-installation)
* [About the server](#about-the-server)
* [PyPI package](#pypi-package)
* [Docker image](#docker-image)
* [Source code](#source-code)
* [Install plugins](#install-plugins)
* [Server is running fine](#server-is-running-fine)
* [Testing using Curl](#testing-using-curl)
* [Understand the Data Storage](#understand-the-data-storage)
* [Get the location](#get-the-location)
* [Working with actions](#working-with-actions)
* [About actions](#about-actions)
* [HelloWorld action](#helloworld-action)
* [Working with workflows](#working-with-workflows)
* [About workflows](#about-workflows)
* [HelloWorld workflow](#helloworld-workflow)
* [SSH workflow](#ssh-workflow)
* [HTTP workflow](#http-workflow)
* [Selenium workflow](#selenium-workflow)
* [Sikulix workflow](#sikulix-workflow)
* [Automation using the Web Interface](#automation-using-the-web-interface)
* [About Web Client](#about-web-client)
* [Schedule a job](#schedule-a-job)
* [Get job logs](#get-job-logs)
* [Automation using the REST API](#automation-using-the-rest-api)
* [About API](#about-api)
* [Get api secret key](#get-api-secret-key)
* [Schedule a job](#schedule-a-job)
* [Get job logs](#get-job-logs)
* [More security](#more-security)
* [Adding ReverseProxy](#reverse-proxy)
* [LDAP users authentication](#ldap-users-authentication)
* [Migration from old version](#migration-from-old-version)
* [Tests convertion to YAML format](#tests-convertion-to-yaml-format)
* [About](#about)
## Server Installation
### About the server
The server is the main part of the **ExtensiveAutomation** project.
It's is running on the following tcp ports:
- tcp/8081: REST API
- tcp/8082: Websocket tunnel for app client
- tcp/8083: Websocket tunnel for agents
A user account is required, you can use the default ones or create your own account.
Default user accounts and passwords:
- admin/password
- tester/password
- monitor/password
YAML files storage can be split into different workspaces.
The `Common` workspace is available by default, attached to the previous users.
### PyPI package
1. Run the following command
```bash
python3 -m pip install extensiveautomation_server
```
2. Type the following command on your shell to start the server
```bash
extensiveautomation --start
```
3. Finally, check if the [server is running fine](#connection-to-server-with-curl).
### Docker image
1. Downloading the image
```bash
docker pull extensiveautomation/extensiveautomation-server:latest
```
2. Start the container
```bash
docker run -d -p 8081:8081 -p 8082:8082 -p 8083:8083 \
--name=extensive extensiveautomation
```
If you want to start the container with persistant tests data, go to [Docker Hub](https://hub.docker.com/r/extensiveautomation/extensiveautomation-server) page.
3. Finally, check if the [server is running fine](#connection-to-server-with-curl).
### Source code
1. Clone this repository on your linux server
```bash
git clone https://github.com/ExtensiveAutomation/extensiveautomation-server.git
cd extensiveautomation-server/
```
2. As precondition, install the additional python libraries with `pip` command:
```bash
python3 -m pip install wrapt pycnic lxml jsonpath_ng pyyaml
```
3. Start the server. On linux the server is running as daemon.
```bash
cd src/
python3 extensiveautomation.py --start
```
4. Finally, check if the [server is running fine](#connection-to-server-with-curl).
### Install plugins
You can add plugins to your extensive automation server to add more functionnalities like
make http requests, send ssh commands. By default the server comes without plugins so you need
to install them one by one according to your needs with `pip` commands.
Main plugins:
- [CLI](https://github.com/ExtensiveAutomation/extensiveautomation-plugin-cli)
- [WEB](https://github.com/ExtensiveAutomation/extensiveautomation-plugin-web)
- [GUI](https://github.com/ExtensiveAutomation/extensiveautomation-plugin-gui)
[And many others (old ones)...](https://github.com/ExtensiveAutomation/extensiveautomation-plugins-server)
## Server is running fine
### Testing using Curl
Checking if the REST api working fine using curl or postman.
```bash
curl -X POST http://127.0.0.1:8081/session/login \
-H "Content-Type: application/json" \
-d '{"login": "admin", "password": "password"}'
```
success response:
```json
{
"cmd": "/session/login",
"message": "Logged in",
"session_id": "MjA1OWI1OTc1MWM0NDU2NDg4MjQxMjRjNWFmN2FkNThhO",
"expires": 86400,
"user_id": 1,
"levels": ["Administrator"],
"project_id": 1,
"api_login": "admin",
"api_secret": "6977aa6a443bd3a6033ebb52557cf90d24c79857",
"client-available": false,
"version": "",
"name": ""
}
```
## Understand the Data Storage
### Get the location
All data necessary for the server is stored in a specific folder.
The location of the storage can be found with the following command:
```bash
extensiveautomation --show-data-path
/<install_project>/ea/var/
```
Data storage overview:
```bash
var/
tests/
<project_id>/
[...yaml files...]
testsresult/
<project_id>/
<result_id>/
logs/
output.log
data.db
```
## Working with actions
Action is individual python code source with parameters and must be defined with YAML file.
### About actions
You can create your own actions but some actions are available by default in the folder `/actions`
Actions must be defined with YAML file.
The default ones:
- [basic/helloworld.yml](https://github.com/ExtensiveAutomation/extensiveautomation-server/blob/master/README_actions.md#basichelloworldyml)
- [basic/wait.yml](https://github.com/ExtensiveAutomation/extensiveautomation-server/blob/master/README_actions.md#basicwaityml)
- [cache/log.yml](https://github.com/ExtensiveAutomation/extensiveautomation-server/blob/master/README_actions.md#cachelogyml)
- [generator/random_string.yml](https://github.com/ExtensiveAutomation/extensiveautomation-server/blob/master/README_actions.md#generatorrandom_stringyml)
- [generator/random_integer.yml](https://github.com/ExtensiveAutomation/extensiveautomation-server/blob/master/README_actions.md#generatorrandom_integeryml)
Additional actions are available with plugins:
- [WEB plugin actions](https://github.com/ExtensiveAutomation/extensiveautomation-plugin-web#about-actions)
- [CLI plugin actions](https://github.com/ExtensiveAutomation/extensiveautomation-plugin-cli#about-actions)
- [GUI plugin actions](https://github.com/ExtensiveAutomation/extensiveautomation-plugin-gui#about-actions)
### HelloWorld action
This following action is available in the data storage in "/actions/basic/" folder.
This basic action shows how to write python source code with parameters in YAML format.
```yaml
properties:
parameters:
- name: msg
value: hello world
python: |
class HelloWorld(Action):
def definition(self):
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 216 条
- 1
- 2
- 3
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/277f6345dca0446498fbbc03843436aa_qq_38161040.jpg!1)
挣扎的蓝藻
- 粉丝: 13w+
- 资源: 15万+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)