============================== atf: Automated Tests Framework Automated Tests Framework provides libraries for automating functional testcases. ============================== Usage:- ------- [automation]$ python atf.py --helpusage: atf [-h] --atfdir ATFDIR --testruninfo-file TESTRUNINFO_FILE [--summarylog-file SUMMARYLOG_FILE] [--summarylog-level SUMMARYLOG_LEVEL] [--detaillog-file DETAILLOG_FILE] [--detaillog-level DETAILLOG_LEVEL] [--stdout-dolog STDOUT_DOLOG] [--stdoutlog-level STDOUTLOG_LEVEL] Runs GlusterFS Functional/Regression Test Suite optional arguments: -h, --help show this help message and exit --atfdir ATFDIR Absolute path of directory where automation framework is installed --testruninfo-file TESTRUNINFO_FILE TestRunInfo FileName --summarylog-file SUMMARYLOG_FILE SummaryLog Filename --summarylog-level SUMMARYLOG_LEVEL SummaryLog LogLevel --detaillog-file DETAILLOG_FILE DetailLog Filename --detaillog-level DETAILLOG_LEVEL DetailLog LogLevel --stdout-dolog STDOUT_DOLOG Log to Stdout yes|no --stdoutlog-level STDOUTLOG_LEVEL StdoutLog LogLevel Report Bugs to dl-qa@gluster.com TestRunInfo File:- ------------------ [TestUnits] : Define what testunits to run. The relative path from "TestUnits" directory to the testunit has to be specified under this section Ex:- unit1 = xlators/cluster/afr/self_heal unit2 = xlators/cluster/arf/basic_ops [Keywords] : Type of run Ex:- keywords = art | sanity | bugs [GlusterVersion] : Glusterfs Version under test Ex:- version = 3.2.5 Prerun:- Execute the following command from the atf directory -------------------------------------------------------------- export PYTHONPATH=`./export.py` Dependencies:- -------------- 1) paramiko python package How to write testcases:- ------------------------ # Create a directory for the feature you want to automate under TestUnits. # Under TestUnits the directory structure has to be the same as source structure of glusterfs under Ex:- arf, self-heal functional testing TestUnits/xlators/cluster/afr/self_heal # Every TestUnit should contain the following files:- 1) testenv.cfg : Define the test environment 2) testcaseslist : List of testcases for the feature 3) testunit.py : Entry point for the TestUnit. For executing the testunit, the main function of this module is called 4) testcases.py : define the testcases here. # Create testunit.py (This is the entry point for the TestUnit). Define the following functions: 1) initialize : parse testenv.cfg, ssh_connect_allhosts 2) setup : setup the active volume 3) execute :parse testcaseslist to select the tests for execution, execute each testcase 4) cleanup : cleanup the test environment # testcases.py:- Define the testcase as a function. Use the framework libraries or define new functions to automate tests # testcaseslist:- This file should contain names of the testcases defined in testcases.py file. The testcase is associated with the version on which it has to be tested. # testenv.cfg :- Define the test environment for the unit. The Servers, Clients, Volume Info, Bricks, Exportdirs, MountPoints, MountDevice.