# WEB plugin for ExtensiveAutomation server
This plugin enable to interact with remote web server through the HTTP protocol.
This plugin is based on the `curl` command.
## Table of contents
* [Installing from pypi](#installing-from-pypi)
* [Installing from source](#installing-from-source)
* [About actions](#about-actions)
* [http/curl.yml](#httpcurlyml)
* [About workflows](#about-workflows)
* [http/httpbin.yml](#httphttpbinyml)
* [http/jsonplaceholder.yml](#httpjsonplaceholderyml)
## Installing from pypi
1. Run the following command
pip install extensiveautomation_plugin_web
2. Execute the following command to take in account this new plugin
./extensiveautomation --reload
3. Samples are deployed on data storage
## Installing from source
1. Clone the following repository
git clone https://github.com/ExtensiveAutomation/extensiveautomation-plugin-web.git
cd extensiveautomation-plugin-web/src/ea/
2. Copy the folder `sutadapters` in the source code server and overwrite-it
cp -rf sutadapters/ /<install_path_project>/src/ea/
3. Copy the folder `var` in the source code server and overwrite-it
cp -rf var/ /<install_path_project>/src/ea/
4. Finally execute the following command to install depandencies
cd /<install_path_project>/src/
python3 extensiveautomation.py --install-adapter WEB
python3 extensiveautomation.py --reload
## About actions
### http/curl.yml
Send http requests and analysing responses.
Parameter(s):
- agent (text): agent name
- curl-body (text): http request body
- curl-headers (text): additional headers for the request
- curl-hosts (text): remote address
- curl-proxy (text): proxy url
- curl-method (text): http method
- curl-options (text): additional options for curl
- response-body-json (dict): expected json in http response with jsonpath expression
- response-body-text (text): expected string in http response
- response-body-xml (text): expected xml in http response with xpath expression
- response-body-xmlns (text): namespaces
- response-code (integer): reponse code expected
- response-headers (text): list of expected headers in response
- response-phrase (text): response phrase expected
- response-version (text): http version expected in response
## About workflows
### http/httpbin.yml
This worflow show how to use the `curl` action and
how to extract value from json response.
1. Reuse curl action
```yaml
- description: Get my origin IP
file: Common:actions/http/curl.yml
```
2. Configure parameters
```yaml
- name: curl-hosts
value: https://httpbin.org/ip
- name: response-body-json
value: |
origin -> [!CAPTURE:externalip:]
```
### http/jsonplaceholder.yml
This worflow show how to use the `curl` action and POST json data.
```yaml
- name: curl-hosts
value: https://jsonplaceholder.typicode.com/posts
- name: curl-method
value: POST
- name: curl-headers
value: |
Content-Type: application/json
- name: curl-body
value:
title: un exemple en français
body: bonjour
userId: 1
```
Raw data
{
"_id": null,
"home_page": "https://www.extensiveautomation.org/",
"name": "extensiveautomation-plugin-web",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "extensiveautomation automation testautomation testing plugin",
"author": "Denis MACHARD",
"author_email": "d.machard@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/c1/fc/a61484059f4410b8ab501a82142b4ee5373daae982b5ca36e1a82a1255f1/extensiveautomation_plugin_web-1.4.0.tar.gz",
"platform": "any",
"description": "# WEB plugin for ExtensiveAutomation server\n\nThis plugin enable to interact with remote web server through the HTTP protocol.\nThis plugin is based on the `curl` command.\n\n## Table of contents\n* [Installing from pypi](#installing-from-pypi)\n* [Installing from source](#installing-from-source)\n* [About actions](#about-actions)\n * [http/curl.yml](#httpcurlyml)\n* [About workflows](#about-workflows)\n * [http/httpbin.yml](#httphttpbinyml)\n * [http/jsonplaceholder.yml](#httpjsonplaceholderyml)\n \n## Installing from pypi\n\n1. Run the following command\n\n pip install extensiveautomation_plugin_web\n\n2. Execute the following command to take in account this new plugin\n\n ./extensiveautomation --reload\n \n3. Samples are deployed on data storage\n \n## Installing from source\n\n1. Clone the following repository \n\n git clone https://github.com/ExtensiveAutomation/extensiveautomation-plugin-web.git\n cd extensiveautomation-plugin-web/src/ea/\n \n2. Copy the folder `sutadapters` in the source code server and overwrite-it\n\n cp -rf sutadapters/ /<install_path_project>/src/ea/\n \n3. Copy the folder `var` in the source code server and overwrite-it\n\n cp -rf var/ /<install_path_project>/src/ea/\n \n4. Finally execute the following command to install depandencies\n\n cd /<install_path_project>/src/\n python3 extensiveautomation.py --install-adapter WEB\n python3 extensiveautomation.py --reload\n\n## About actions\n\n### http/curl.yml\n\nSend http requests and analysing responses.\n\nParameter(s):\n- agent (text): agent name\n\n- curl-body (text): http request body\n\n- curl-headers (text): additional headers for the request\n\n- curl-hosts (text): remote address\n\n- curl-proxy (text): proxy url \n\n- curl-method (text): http method\n\n- curl-options (text): additional options for curl\n\n- response-body-json (dict): expected json in http response with jsonpath expression\n\n- response-body-text (text): expected string in http response\n\n- response-body-xml (text): expected xml in http response with xpath expression\n\n- response-body-xmlns (text): namespaces \n\n- response-code (integer): reponse code expected\n\n- response-headers (text): list of expected headers in response\n\n- response-phrase (text): response phrase expected\n\n- response-version (text): http version expected in response\n\n## About workflows\n\n### http/httpbin.yml\n\nThis worflow show how to use the `curl` action and \nhow to extract value from json response.\n\n1. Reuse curl action\n\n```yaml\n- description: Get my origin IP\n file: Common:actions/http/curl.yml\n```\n\n2. Configure parameters\n\n```yaml\n- name: curl-hosts\n value: https://httpbin.org/ip\n- name: response-body-json\n value: |\n origin -> [!CAPTURE:externalip:]\n```\n\n### http/jsonplaceholder.yml\n\nThis worflow show how to use the `curl` action and POST json data.\n\n```yaml\n- name: curl-hosts\n value: https://jsonplaceholder.typicode.com/posts\n- name: curl-method\n value: POST\n- name: curl-headers\n value: |\n Content-Type: application/json\n- name: curl-body\n value:\n title: un exemple en fran\u00e7ais\n body: bonjour\n userId: 1\n```\n",
"bugtrack_url": null,
"license": "",
"summary": "WEB plugin for extensiveautomation server",
"version": "1.4.0",
"project_urls": {
"Homepage": "https://www.extensiveautomation.org/"
},
"split_keywords": [
"extensiveautomation",
"automation",
"testautomation",
"testing",
"plugin"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c1fca61484059f4410b8ab501a82142b4ee5373daae982b5ca36e1a82a1255f1",
"md5": "75de67394218ad20e8e59cce4aed5c1e",
"sha256": "f36fa8cd8c732bfb032f6306bfa0e2b4b3defe5ec47bff5d60961c49665cbf62"
},
"downloads": -1,
"filename": "extensiveautomation_plugin_web-1.4.0.tar.gz",
"has_sig": false,
"md5_digest": "75de67394218ad20e8e59cce4aed5c1e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15234,
"upload_time": "2023-08-18T08:49:38",
"upload_time_iso_8601": "2023-08-18T08:49:38.897836Z",
"url": "https://files.pythonhosted.org/packages/c1/fc/a61484059f4410b8ab501a82142b4ee5373daae982b5ca36e1a82a1255f1/extensiveautomation_plugin_web-1.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-18 08:49:38",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "extensiveautomation-plugin-web"
}