Shivam Thakur 516358d1b5 Wifi 7868 restructuring sanity suite to cover golden coverage of suites (#529)
* WIFI-7868: Added ow_sanity_lf suite for sanity restructuring

Added client connectivity tests under the ow_sanity_lf

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* [WIFI-7869] Fix: regression testing AWS variables placement

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* [WIFI-7779] Add: helm deploy support for mailer envs (#517)

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* Also pin kubectl version when destroying namespace

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* [WIFI-7604] Add workflows to test deployment upgrade paths (#471)

* Create and switch to composite action for Docker Compose in Kubernetes deployment

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Add missing inputs to composite action

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Add input for hashed password and adapt variable names

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix input variable names

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Add Docker Compose upgrade test workflow

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Get deploy script according to deployment_version input

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Hard-code branch for testing

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Re-add RTTY_TOKEN for testing previous release upgrades

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* [WIFI-7697] Move deploy related files from wlan-testing to wlan-cloud-ucentral-deploy (#472)

* Change composite actions and workflows to use wlan-cloud-ucentral-deploy repo

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Checkout target branch matching with deployment version

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Remove working-directory option

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Rename image version variables to enable search and replace in deploy script

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Remove defaults from action inputs

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Try removing owsub and owanalytics ports for 2.4 deployment

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Actually remove ports since commenting out doesn't work

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* [WIFI-7766] Switch Docker Compose testing workflow to deployment on EC2 (#499)

* Switch from Kubernetes pod to EC2 instance deployment

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix indentation

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Add VPC subnet ID to use existing security group

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Move env variable definition to executed SSH command

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Remove defaults from inputs to avoid overwriting deployment_version

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix syntax

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix variable syntax

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Add my own SSH key for debugging

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Revert "Add my own SSH key for debugging"

This reverts commit e4a9fee140.

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Increase AWS instance size

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Update package lists before installing

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Add curl insecure option and append self-signed REST API cert to AP cert trust store

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Pass FLAGS variable to clustersysteminfo Docker container

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Switch to github.run_number for uniqueness

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Start Docker manually on instance

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Install Docker using the repository

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Do not destroy created instances for debugging

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Quote selfsigned_restapi_ca

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Split SSH commands into multiple lines for better readability

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix syntax

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix typo

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Revert "Split SSH commands into multiple lines for better readability"

This reverts commit c08ec026cfe3915e36cef3215226b41dd0319ed8.

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Revert "Fix syntax"

This reverts commit f408cfd19f5cf01d6b1d1f78c930897f9442c7de.

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Add debugging output for REST API CA cert

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Add: RTTY_TOKEN env for older versions support

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* Download self-signed REST API CA cert directly to virtual AP

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Switch to self-signed certs

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix variable name

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix step name

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Change hostname and use sudo to add hosts entry

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix syntax

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Actually add IP to hosts entry

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix missing hostname in AP hosts entry

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Adapt Docker Compose upgrade workflow to EC2 instance deployment

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Configure Docker to log to logstash input

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix Docker daemon config

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Add missing EOF

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix indentation

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix syntax

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Try to fix syntax again

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Use different delimiter

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix conflict after rebase

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix workflow syntax

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Disable StrictHostKeyChecking in workflow

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

Co-authored-by: Dmitry Dunaev <dmitry@opsfleet.com>

* Remove obsolete inputs and add RTTY_TOKEN to other workflows as well

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix value file names

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Wifi 7858 (#518)

* Crated a new file for FMS related testcases

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Removed Fms system ifo test case from gateway service file

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added Location related test cases of Prov UI

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added Location related functions for support

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Changed the function name

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Changed the allure attachment names on edit functions

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* WIFI-7868: Added multivlan scenarios in ow_sanity and removed Some of the rate limiting as they take a long time to complete

Added few up, dw, up+dw in rate limit for ow_sanity_lf

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* WIFI-7868 : Added dvlan and rate limit from radius in sanity suite and reduced the rate limiting tests as they are taking alot of time

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* WIFI-7868 Adding some marker improvements to reduce number of test cases and increase coverage

optimised rate limiting, added dvlan, added rate limit with radius

Signed-off-by: shivam <shivam.thakur@candelatech.com>

Co-authored-by: Dmitry Dunaev <dmitry@opsfleet.com>
Co-authored-by: Dmitry Dunaev <83591011+dunaev-opsfleet@users.noreply.github.com>
Co-authored-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
Co-authored-by: Haricharan Jaka <87761091+haricharan-jaka@users.noreply.github.com>
2022-05-17 01:32:12 +05:30
2022-04-25 14:39:43 +05:30
2022-05-05 17:19:10 +02:00
2021-07-26 15:59:07 +05:30
2021-08-24 23:22:47 +05:30
2021-04-15 00:08:24 +05:30
2020-07-06 10:38:51 -04:00
2022-03-29 12:06:36 +05:30
2022-03-21 18:54:57 +05:30
2021-05-26 02:07:52 -05:00

TIP Open WiFi Test Automation

Overview

This repository contains the test automation framework and scripts for TIP Open WiFi. Test Framework is implemented in pytest

Automation Overview

The vision is to create an open test framework to ensure production grade Open Wifi Solution.

This test automation tied into our overall tooling at TIP as shown below:

Tools and Test Automation

General guidelines

This testing code adheres to generic pep8 style guidelines, most notably:

  1. Documentation strings
  2. Naming conventions
  3. Sphynx docstring format

Using pytest as the test execution framework.

Using pylint for code quality monitoring.

We are using the pylint package to do the linting. Documentation for it can be found here. In general, the customizations are possible via the .pylintrc file:

  1. Line length below 120 characters is fine (search for max-line-length)
  2. No new line at the end of file is fine (search for missing-final-newline)
  3. Multiple new lines at the end of file are fine (search for trailing-newlines)
  4. Indent using 4 spaces (search for indent-string)

In future we should enforce a policy, where we cannot merge a code where the pylint scoe goes below 7:

pylint --fail-under=7 *py

the command above would produce a non-zero exit code if the score drops below 7.

TIP Controller Integration

Using Swagger Autogenerated CloudSDK Library pypi package (implemented with swagger codegen).

Reporting

Currently we use the pytest allure integration to create visual reports for the test outcomes.

Additionally we generate overview pages, e.g. like this one to consolidate multiple test reports of the same test type.

These overview pages are being deployed by this workflow and their configuration is set in this file.

Miscellaneous

  1. Do not use old style string formatting: "Hello %s" % var; use f"Hello {var} instead
  2. use """ in Docstrings

https://docs.pytest.org/en/latest/example/markers.html
https://docs.pytest.org/en/latest/usage.html
http://pythontesting.net/framework/pytest/pytest-introduction/

Test status

total test count

R1.x sanity testing sanity test count

interop testing interop test count

performance testing performance test count

RF Testing Advance test count

regression testing Regression test count

interop performance testing Interop Performance test count

Best Practice

  1. Ensure to have a python version > 3
  2. We strongly recommend to use virtualenv to ensure that your dev environment sandbox is created.

Code style

All code must be written in python 3 and conform to PEP 8 style guide. The test framework is built using pytest.

made-with-python PEP8

Directory Structure

├── lanforge              - /* to be migrated */
├── libs
│   ├── controller_tests  -/* Library Support for controller_tests part  */
    ├── apnos             -/* Library Support for Access Points (uses AP SSH)  */
│   ├── lanforge          -/* Library Support for LanForge Traffic Generator */
│   ├── perfecto          -/* Library Support for Perfecto Systems */
│   ├── testrails         -/* Result Visualization (will be depreciated ) */
├── tests                 -/* Pytest cases Directory */
│   ├── _basic_test_setup
│   ├── access_point_tests
│   ├── controller_tests
│   ├── e2e
      ├── advanced
      ├── basic
      ├── interOp
      ├── mdu
      |── mesh
      |── scale
    |── README.md         -/* Pytest framework and testcases information */

Test Automation Setup Instructions

# Let's assume '~/automation' directory for setting wlan-testing
cd ~/
mkdir automation
cd automation
git clone https://github.com/Telecominfraproject/wlan-testing
git clone https://github.com/Telecominfraproject/wlan-lanforge-scripts
cd wlan-testing
./sync_repos.bash
mkdir ~/.pip
echo "[global]" > ~/.pip/pip.conf
echo "index-url = https://pypi.org/simple" >> ~/.pip/pip.conf
echo "extra-index-url = https://tip-read:tip-read@tip.jfrog.io/artifactory/api/pypi/tip-wlan-python-pypi-local/simple" >> ~/.pip/pip.conf
pip3 install -r requirements.txt

cd tests
vim configuration.py    # Setup your testbed data info here

# Check if everything is good 
pytest --collect-only 


# for visualizing allure reports, Install nodejs
# Set Java home

# install allure command
npm install -g allure-commandline --save-dev

Executing and Contributing new test cases

Follow instructions provided here to understand the Testing Framework, and How to run and write new tests

Issue Reporting

Please submit issues using our JIRA project here

Use the Test Automation backlog

Description
No description provided
Readme BSD-3-Clause 228 MiB
Languages
Python 99%
Shell 0.6%
Roff 0.4%