Twister Test Automation Framework
•
Quick introduction
•
Use cases
•
High Level Description
•
Bene
fi
ts
•
Next steps
Twister is an open source test automation framework.
The code, user guide and installation guidelines can be downloaded from:
Twister – How to get
Twister Test Automation Framework
Twister is an automated testing framework that
helps user in building functional, regression and
load test suites. It was developed taking in account
the speci
fi
c needs of the enterprise
telecommunication market to help in testing
telecommunication devices like switches, routers or
PBXs.
Key features of Twister:
•
Web based GUI intuitive & user friendly interface; easy to manage tests/suites
•
Multitenant architecture; multiple users can
fi
re the tests to di
ff
erent SUT’s simultaneously
•
Real time monitoring of execution
•
Distributed execution; SUT’s can be tested in parallel against same or di
ff
erent set of tests
•
Flexible reporting mechanism; DB schema is not
fi
xed and there is no need to change framework to
fi
t with a new DB
schema
•
Support for di
ff
erent scripting languages and for record & play GUI tools
•
Support for Continuous Integration, Source Revision Control, Bug tracking
•
Support for GUI plugins; speci
fi
c functionality loaded dynamically as plugin
•
OpenFlow 1.0 module available for conformance testing
Twister Test Automation Framework
•
Twister, tra
ffi
c generators and SUTs are in the same test lab;
•
Twister execute in parallel the test suites for di
ff
erent SUTs; completion time can be controlled by multiplying the SUTs or
protocol conformance tested simultaneously on multiple SUTs
•
Twister is a centralized management system for entire department/company
•
GUI and central engine in remote o
ffi
ce; di
ff
erent labs ( e.g. per project ) with SUTs, tra
ffi
c generators and execution
processes
Twister Test Automation Framework
•
GUI
‣ web based interface; no need to install and manage it on multiple machines, just configure the central server and it is available for multiple users
‣ user authentication; only authorized users can access the framework and configurations are isolated
‣ framework properties can be configured easily and are defined per user
‣ project files contain the testing suites and the details for execution; the user can define project files for different scenarios and he can select what type of test to execute by loading the project file
‣ includes support to edit the test cases in a visual editor and to do quick unit testing to make sure the changes are correct; user can save the changes for future usage
‣ support for different operations per test cases ( set as optional, set arguments, set as unit test, … )
‣ control the status of testing ( start/pause/resume/stop testing )
‣ live monitoring offers a clear overview about how the testing is progressing; every test is marked with it’s status and a live summary is displayed;
‣ live logging helps in understanding the root cause of failures
‣ reporting is based on a flexible mechanism that is not nailed to a fixed database schema; that allows db schema changes without changes in framework code
‣ plugins support allows user to load features on the fly into the framework
Twister Test Automation Framework
•
Central Engine
‣ Twister’s core developed in Python
‣ manages all the information from the configuration files
‣ picks the selected tests from repositories and deliver them to the correct execution engine as defined by user in GUI
‣ load modules with different functionality and deliver them to execution engines
‣ collects the output from the execution engines and aggregate it for GUI
‣ connects to DB and store the results when the testing is completed
‣ provides data from DB to GUI for reports and statistics
‣ send email with summary when the testing is completed; the email details are defined by user in GUI
‣ mechanism implemented for resource allocation; the GUI defines the devices present in a test bed and the central engine manages the request for resources received from execution engines; one resource can be allocated to a single execution engine at one time
‣ REST API allows user to get the framework’s internals; useful to help user understanding framework’s status and debugging issues
‣ support for source revision system ( GIT and SVN )
‣ support bug tracking (Jira)
‣ support for continuous integration system ( Jenkins )
•
Execution Engine
‣ point of contact for SUT
‣ executes the test cases and reports the status to central engine
‣ CLI logs from SUTs sent to central engine for aggregation
‣ Support for tests developed in different scripting languages ( Python/TCL/Perl )
‣ support for record and play tools ( Sikuli/Selenium/TestComplete )
‣ can be deployed remotely for distributed execution of testing so there is no need to install the framework in multiple places
•
Twister GUI o
ff
ers reports and statistics based on the information saved in DB; the reports can be customized based on
project, vendor, device type or any other criteria based on the DB schema. Twister o
ff
ers by default reports for summary,
details and history. Other type of reports can be de
fi
ned and implemented to be displayed in Twister GUI.
•
Twister can interact with external devices ( e.g. tra
ffi
c generators ) using specialized modules for them
Twister Test Automation Framework
•
Open source software
•
Support and expertize available from Luxoft
•
Shorter time to test – no need to spend time to develop a customized framework
•
Intuitive and user friendly GUI – short time to get familiar with the tool
•
Module for OpenFlow 1.0.1 conformance testing
•
Execution scheduler
•
Wireshark integration
•
Module for tra
ffi
c generator
•
OpenFlow related features
•
Plugins to help in tracing and debugging issues
Twister Test Automation Framework