# FTSA-TJPB

Welcome to FTSA (Automation Software Tests Framework) from TJPB (Courte of Justice, State of Paraiba / Brazil), or simply FTSA-TJPB.

This *framework* provides libraries to perform automated acceptance tests through _**web**_ and _**mobile**_ interfaces or _**services**_, API rest and _**database**_ tests.

This page provides a brief documentation for installation and operations that are allowed to perform with this client command prompt. 

Project at all is composed by the following modules:

* **CLI:** or *client*, that make available commands to prompt or terminals.
* **CORE:** that provide extensions of the [*Robot API*](http://robotframework.org/) in a series of *customized keywords* to TJPB context of tests automation. 
* **Central:** (*unavailable*) *web* environment to manage project and products, BDD requirements specification, test suites selection and execution (manual or automated, by version and baselines), and tests metrics and consolidated reports.

# FTSA-TJPB-CLI

## Instalação

*Your host machine must be able and configured with python 3.8+ and Docker Engine 20+.*  

### Pre-Requirements

1. You must configure in your host machine Oracle 11+, MySQL 8+ or PostgreSQL 10+ clients in order to run correctly tests. Bellow you can see a linux Fedora list of command that enable configuration you need (execute in presented order):

```
dnf upgrade -y && dnf update -y
dnf install -y python39 pip docker wget
dnf module install -y nodejs:12
dnf install -y libpq-devel
wget https://dev.mysql.com/get/Downloads/Connector-Python/mysql-connector-python3-8.0.25-1.fc34.x86_64.rpm
dnf localinstall -y mysql-connector-python3-8.0.25-1.fc34.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/Connector-ODBC/8.0/mysql-connector-odbc-8.0.25-1.fc34.x86_64.rpm
dnf localinstall -y mysql-connector-odbc-8.0.25-1.fc34.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/Connector-ODBC/8.0/mysql-connector-odbc-setup-8.0.25-1.fc34.x86_64.rpm
dnf localinstall -y mysql-connector-odbc-setup-8.0.25-1.fc34.x86_64.rpm
dnf install -y libaio libnsl
wget https://download.oracle.com/otn_software/linux/instantclient/19600/oracle-instantclient19.6-basic-19.6.0.0.0-1.x86_64.rpm
dnf localinstall -y oracle-instantclient19.6-basic-19.6.0.0.0-1.x86_64.rpm
```

2. Then, install FTSA-CLI pre-requirements:

```
pip install docker setuptools wheel twine
```

3. Finally, install FTSA-CLI:

```
pip install ftsa-tjpb
```

## List of Commands

Here, follow the list of commands you can use with this client:

1. `ftsa install`: installs all framework dependencies.
2. `ftsa upgrade`: upgrades all framework dependencies.
3. `ftsa uninstall`: uninstalls all framework dependencies.
4. `ftsa report`: runs tests using Docker engine, recording (in case of *web* ui) execution videos and generating execution result report.
    - `-i <tag>` or `--include <tag>`: includes a tag to the execution. Ex: -i uc001 -i uc002
    - `-e <tag>` or `--exclude <tag>`: excludes a tag of the execution. Ex: -e fe
    - `-nd` of `--nodocker`: ignores Docker and performs tests using local browser.
5. `ftsa docker-report`: runs tests using an **external docker engine**
    - `-i <tag>` or `--include <tag>`: includes a tag to the execution. Ex: -i uc001 -i uc002
    - `-e <tag>` or `--exclude <tag>`: excludes a tag of the execution. Ex: -e fe
    - `-n <network_name>` or `--net <network_name`: informs docker network (grid) name. Default: yyyymmdd_grid (year, month, day)
    - `-c <container_name>` or `--container <container_name>`: informs the docker execution container name. Default: execution_robot
    - `-p` or `--pull`: pulls the container image from Docker Hub although creating it locally using Dockerfile.
    - `-dh` or `--dockerhost`: informs IP or docker host name address to docker client host machine. Default: localhost.
    - `-nd` of `--nodocker`: ignores Docker and performs tests using local browser.
  
## Contact and support

*Carlos Diego Quirino Lima*
- **Email:** diego.quirino@tjpb.jus.br

*Felipe Dias*
- **Email:** felipe.dias@tjpb.jus.br

*Rogerio Trevian Nibon*
- **Email:** rogerio.nibon@tjpb.jus.br
